# [DX10] Predicate drawing doesn't work

## Recommended Posts

Hello, I can't get predication to work, as all geometry is always being rendered. Did I make some mistake in my code? Does it matter how states are set when I'm rendering the occluder mesh?

// At init-------------------------
D3D10_QUERY_DESC dq;
dq.MiscFlags=D3D10_QUERY_MISC_PREDICATEHINT;
dq.Query=D3D10_QUERY_OCCLUSION_PREDICATE;

// Create one occlusiion query
HR(device->CreatePredicate(&dq,&pred));

// At frame render-----------------
// Occluder
pred->Begin();
// I render occluder here
pred->End();

// Render some spheres with DrawIndexedInstanced so the predication
// will be more obvious
device->SetPredication(pred,false);
// Render many sphere here at the same place
device->SetPredication(NULL,false);


All spheres are at the same position, the occluder mesh is a box in which the high poly sphere mesh fits

##### Share on other sites
I figured it out-the order of drawing objects was incorrect:

I first drew the occluder and only then the object that served as an obstacle to prevent viewing the occluder, but now I changed it so that the obstacle gets rendered 1st and the occluder afterwards and it works :D

## Create an account

Register a new account

• ### Forum Statistics

• Total Topics
628275
• Total Posts
2981760

• 10
• 11
• 17
• 10
• 9