第一章:向量代数
1、向量计算的时候,使用XMVECTOR(可以利用SIMD优点);类成员变量使用XMFLOAT2 (2D),XMFLOAT3 (3D),和XMFLOAT4 (4D) 。
2、向函数传递参数的时候(XMVECTOR可以直接传递到SSE/SSE2)前三个参数类型要定义为FXMVECTOR; 第四个要定义为GXMVECTOR; 第五个和第六个要定义为HXMVECTOR; 其他参数要定义为CXMVECTOR。
第二章:矩阵代数
1、用以计算的时候使用XMMATRIX类型;类的成员变量使用XMFLOAT4X4;
2、向函数传递参数时,规则和XMVECTOR一样;
3、上述规则对于构造函数是例外,构造函数一直使用CXMMATRIX,并且不要添加XM_CALLCONV。
第三章:变换
1、正交矩阵的逆矩阵和它的转置矩阵相等,所以计算起来更高效;
2、根据矩阵的乘法结合律,我们可以将多个变换矩阵合成为一个变化矩阵。
第四章:Direct 3D初始化
1、为了优化全屏模式下的性能,准确匹配显示模式就很重要,比如刷新频率。
第五章:渲染流水线
1、类成员变量XMCOLOR,计算时使用XMVECTOR;
2、128位颜色用来进行高精度的计算,这样算法上的错误积累就少很多;最终颜色一般保存为32位(在back buffer中也通常是32位),当前的物理显示设备无法体现128位颜色的好处;
第六章:在Direct3D中绘制
1、如果PS上裁切像素,尽可能早clip掉,因为这样像素不会进行后面的PS计算;
2、对于硬件优化,一个像素片段是有可能直接跳过像素着色器,比如(early-z rejection),但是在有些情况