Rendering Textures behind Three Dimensional Objects?

Started by
3 comments, last by slicer4ever 11 years, 1 month ago

Hello again,

My question is how would one go about rendering a texture on a quad that sit's behind a 3D object. Im sure Z-ordering is invloved in some way but I have yet to come across a structure that explicitly lets you set such a parameter

Maybe Multiple Render targets?

I am using D3D11 and C++, any help will be appreciated, thanks!

-Marcus Hansen

Advertisement

I'm not well versed in DX specifically, but in theory, this should be a very simple task.

If you're trying to draw it in 3d (using a textured quad) you'd just draw the quad first with a Z position behind everything else.

My Games -- My Music 

Come join us for some friendly game dev discussions over in XNA Chat!

You need to make sure you draw the textured quad first, as Jutaris mentioned, or in a more common scenario, make sure you have created a depth buffer, its write flag is "less" or "less or equal" and depth testing (a.k.a. z-testing or reading from the depth buffer) is enabled*. This will allow you to draw non-transparent objects in random order in your scene.

* the same applies to depth masking (eg the flag that tells the API whether it should write into the depth buffer or not)

If you're drawing non-transparent objects, you should draw them with depth testing enabled. You do this by creating a depth-stencil state object and binding it to the pipeline.

http://msdn.microsoft.com/en-us/library/windows/desktop/bb205074(v=vs.85).aspx

Make sure you draw objects front to back (so first the 3D object and then the quad) to avoid overdraw. Because the first object's z-buffer value makes the quad's depth test fail, you don't have to run the pixel shader twice.

if the quad is a full-screen image(basically a background). i'd draw it first, and turn off depth writes(not sure what it is in DX, but in openGL it's called glDepthMask) and depth testing. if it's something else, it'd be best to just position it behind all your objects.
Check out https://www.facebook.com/LiquidGames for some great games made by me on the Playstation Mobile market.

This topic is closed to new replies.

Advertisement