Hello
After reading http://www.two-kings.de/tutorials/dxgraphics/dxgraphics18.html I have implemented a Vertex Shader and a Pixel shader without using the ID3DXEffect interface. Shortly after finishing this tutorial with my project I was plagued with culling and zbuffering glitches.
Aren't Techniques and Passes a part of the ID3DXEffect interface? If so, how do I implement culling and z buffering etc without the effect interface?
Culling and Z buffering without using the ID3DXEffect interface
Started by Tispe, Mar 16 2012 04:07 AM
4 replies to this topic
Sponsor:
#5 Members - Reputation: 3830
Posted 16 March 2012 - 09:05 AM
SetRenderState is still needed in the programmable pipeline. Effects hides some of this for you, but it's still there.
SetSamplerState may be still used, although it may also be superseded by sampler options set in your shader code.
SetTextureStageState is removed.
Some SetRenderState calls - like lighting - are however obsoleted; most are not. You need to understand the various pipeline stages, where each state applies to each stage, and whether or not each state is superseded by the programmable pipeline (and where this is optional or mandatory).
The effects framework actually provides a wrapper around the standard Set*State calls (with the exception of SetTextureStageState) - you can see this in action (and confirm it for yourself) by creating an ID3DXEffectStateManager and examining what it does in your debugger of choice (or by using PIX).
SetSamplerState may be still used, although it may also be superseded by sampler options set in your shader code.
SetTextureStageState is removed.
Some SetRenderState calls - like lighting - are however obsoleted; most are not. You need to understand the various pipeline stages, where each state applies to each stage, and whether or not each state is superseded by the programmable pipeline (and where this is optional or mandatory).
The effects framework actually provides a wrapper around the standard Set*State calls (with the exception of SetTextureStageState) - you can see this in action (and confirm it for yourself) by creating an ID3DXEffectStateManager and examining what it does in your debugger of choice (or by using PIX).
It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.






