Just making these notes to consolidate a lot of the things I wish I knew, or I wish were documented in a more appropriate and/or accessible place, and which I got burned by during the course of developing this engine.
D3DCREATE_FPUPRESERVE is needed for everything aside from kiddies games that don't depend on high resolution timers.
32 bit index buffers are not available on all hardware, and even if available don't always have the full 32 bits of resolution available (try finding that in the documentation... it's there all right, but just try finding it...)
Some cards run faster with anisotropic filtering enabled; try around 4 x and adjust up or down from there.
Don't use the Direct3D gamma interfaces: use GDI instead; they're well known, documented better, and work in both windowed and fullscreen modes.
There's virtually nothing in perf difference between DrawPrimitive and DrawPrimitiveUP when drawing strips or fans.
Using a viewport smaller than the full resolution can hurt performance.
Direct3D supports the full vertex shader interface in software very efficiently.
There must be a good reason somewhere, somehow for supporting every common (and a few uncommon) image format aside from TGA.
Tuesday, June 16, 2009
Random Direct3D Notes - Part of an ongoing series
Posted by
mhquake
at
4:56 PM
Labels: Random Direct3D Notes
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment