hlee

Members
  • Content count

    11
  • Joined

  • Last visited

Community Reputation

115 Neutral

About hlee

  • Rank
    Member
  1. That works!  I thought D3DXSaveSurfaceToFile requires the source being OffscreenPlainSurface.   That's one step saved.  I still think it is unnecessarily cumbersome.  Maybe D3D11 provide a more efficient method?   Just noticed a side effect of skipping the step: the maximum resolution is reduced !   Somehow, by copying RT2 to an OffscreenPlainSurface before D3DXSaveSurfaceToFile, I can save a frame with higher resolution.  Does anyone have an explanation?   Since efficiency is not a concern for my purpose, I will add the step back.
  2. That works!  I thought D3DXSaveSurfaceToFile requires the source being OffscreenPlainSurface.   That's one step saved.  I still think it is unnecessarily cumbersome.  Maybe D3D11 provide a more efficient method?
  3. D3DXSaveTextureToFile complains that RT2 is not a texture.  If I'd created RT2 as a texture then StrectRec would complain that RT2 is not a IDirect3DSurface9.  How can I make it to work?
  4. That's it!  This is what works: 1. Create a large multisampled RT, called it RT1, along with a depth buffer 2. Render the scene to RT1 3. Create a non-multisampled RT, called it RT2, the same size as RT1 4. StretchRect RT1 to RT2 5. Use GetRenderTargetData to copy RT2 to an OffscreenPlainSurce 6. Use D3DXSaveSurfaceToFile to save the OffscreenPlainSurce   Now I get a high resolution, multiampled scene.  Thanks so much, Adam!   But why does it have to be so cumbersome?  Why can't D3DXSaveSurfaceToFile save a mutisampled RT directly?
  5. Great.  Let me know how you do it and if you can turn on anti-aliasing in the high resolution screenshot.
  6. You are absolutely right about the depth buffer.  After creating a depth stencil surface that matches the render target I can now get the full frame.  Thank you so much!   However, MultiSampleType must be set to D3DMULTISAMPLE_NONE for the render target, otherwise the GetRenderTargetData would return D3DERR_INVALIDCALL.  Without multisample I might as well just capture the screen with a lower resolution but with anti-aliasing.  Is there a way to use multisample in this method?
  7.   Yes.  I get the whole scene if the render target is smaller than the adapter limit.  Larger, then the scene is clipped.
  8. DX11 Picking triangle

    I use the method described in http://www.graphics.cornell.edu/pubs/1997/MT97.pdf
  9. @Ravyne,  I've tried your suggestions and created a temporary render target with larger surface, but it does not work.  The rendered scene is clipped to the same size as the backbuffer.   @Medo3337, how can I change the backbuffer size?  I use DXUTCreateDevice to create the D3D device, which limits the width/height to the maximums of the display adapter.  SetViewport does not change the backbuffer either.
  10. Migi0027, thanks for the suggestion, but how do you resize the display beyond the capability of the harware?  Which resizing function should I call?
  11. I am trying to make posters for secens from my program.  I can grab the screen by using IDirect3DDevice9:: GetBackBuffer.  However it is limited to the screen resolutions of my display, 2560x1600.  The new 4K displays can go up to 3840x2160, but even that is not good enough for large posters.  I would like to have images of 6000x4000 or higher.   Is this possible?  Do I need to use a software device to render in a higher resolution than the display?  If so, how?