# [D3D10] Fixed function is gone but...

## Recommended Posts

resle    129
...having ported most of my engine to D3D10 I was wondering how would I deal with alpha channels and such, and found out - as I expected - that I need to code my own alpha functions in the pixel shader. So goodbye BLEND_FUNCs, ONE_MINUS, SRC_DEST etc. etc. Then I wondered: What about culling? And the depth test? And I found this:
typedef struct D3D10_RASTERIZER_DESC {
D3D10_FILL_MODE FillMode;
D3D10_CULL_MODE CullMode;
BOOL FrontCounterClockwise;
INT DepthBias;
FLOAT DepthBiasClamp;
FLOAT SlopeScaledDepthBias;
BOOL DepthClipEnable;
BOOL ScissorEnable;
BOOL MultisampleEnable;
BOOL AntialiasedLineEnable;
} D3D10_RASTERIZER_DESC;


So in the end some stage of the pipeline IS still "fixed", or am I wrong? I thought that finally I could have grouped renderings by shader technique only, but it seems I have to take into account different rasterizer states too. Am I right? And by the way: what about Depth test and Z-writes? How should I deal with those? Plese help me shedding some light on my confusion and... thanks again.

##### Share on other sites
Sneftel    1788
When one speaks of a "fixed function pipeline", one is generally referring to the vertex processing and fragment shading stages. Certain portions of the pipeline are still implemented with dedicated circuitry, or otherwise are not exposed in a text-programmable manner by the API. See the description of the "Output merger" in the paper covering the design of D3D10.