1st, what's the best way to do model to world transforms, with d3d world matrix or software? My polys are all organized in objects, so in software i would just need to use one matrix and send the whole object through it, but with d3d, the vertices would have to be organized in lists by texture/material/other effects, so i would have to change the matrix alot... anyway to get around that?
2nd, what's the best way to organize the vertex lists? From previous discussions i gather texture changes are at the top... then material.. and other effects i still have to look into...
3rd, what's the best way to organize polys for d3d if they are separated by a BSP tree (that is, not in an object format anymore)? Just looking for ideas.
Forgot to add, 4th) are strided vertex buffers faster then normal d3d vbs?
Thanks in advance!
Edited by - AlexM on 1/19/00 5:04:18 PM
They''re not dumb, it''s probably just that no one knows the answer. I have no idea =), or maybe its just that school has dulled my senses so much that I am but a sponge. And I''m referring to high school in case you''re wondering
1) Use D3D. Matrix changes tend to cost little, texture and render state changes have a _much_ higher cost.
2) Try to batch by the following: FVF/VB/TEXTURE Renderstate/texture stage state Material/matrix
From the D3D API/driver side, an FVF and VB change requires a driver transition (which would cause a transition to kernel mode in Win2K.) From the hardware side, texture changes are probably more expensive. Try and see.
3)Haven''t done much with BSP''s.
4) I''d say generally, strided vertex buffers are not faster than normal vertex buffers. No hardware can accept strided vertex formats, so before transferring to the card, the strided data must be reconstituded into a normal VB.