UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS D3DX introduction and math
Goals 1. Introduction to the D3DX library 2. Review the math functions offered by D3DX
D3DX utilities library Useful stuff that doesn’t relate directly to the GPU 3D math functions Higher-level geometry representations Shader compiler/assembler Text rendering Animation Various helper functions Generally not used in high-performance games Some functions still very useful
D3DX portability issue Not generally portable Other target platforms might not have these utilities! For multi-platform games you’ll need an alternative Use a portable all-in-one engine For instance Unreal Engine or CryENGINE Develop your own common wrapper Develop your own utilities
D3DX vector math D3DXCOLOR – float RGBA (D3DXColorXXX) Add, subtract, multiply (modulate, scale), lerp… D3DXVECTOR# – 2D to 4D vectors (D3DXVecXXX) Add, subtract, multiply (dot, cross, scale), min, max Interpolate (lerp, hermite, catmull-rom) Length, normalize, project, transform D3DXMATRIX – 4x4 matrices (D3DXMatrixXXX) Add, subtract, multiply, scale, inverse, transpose Creation functions: transformation, projection, euler…
D3DX more math D3DXQUATERNION – Quaternions (rotations) Multiply, inverse, conjugate, dot, exponential, logarithm Length, normalize, rotation, slerp D3DXPLANE – infinite 3D dividers Dot, scale, normalize, transform, intersect Spherical harmonics – Direction-dependent functions Add, multiply, dot, scale, eval, rotate, project Other functions 16-bit float, fresnel formula