Frame Buffer包括color buffer、Z-Buffer、Stencil Buffer和accumulation buffer WII可能是最后一个只支持固定渲染管道的机器 硬件加速早期功能主要包括三角形的栅格化等Shader Model 4.0 use a common shader core。The common-shader core is the API; having unified shaders is a GPU feature. 无法直接编写汇编指令,只能作为输出显示,
GPU processor has 4-way SIMD (single instruction multiple data). 每个shader阶段都有两种变量:uniform和varying。unifor变量在绘制过程中不能更改,但可在Application Stage阶段修改。gradient Information无法在shader的动态分支中使用,即使是离线渲染引擎也如此。MRT要求所有RenderTarget是同样高宽,有些系统甚至要求同样的位宽(但格式可以不一致)。DirectX10.1可以对MRT采取不同的Blend Operation。TranslationMatrix的逆矩阵为T-1 (t) = T(-t), The negated vector t。绕三个轴的旋转矩阵都是正交矩阵,且其迹为tr(R) = 1 + 2cosA, 逆矩阵为Ri -1 (A) = Ri (-A). 如果ScaleMatrix里对角线上为负值,则成为mirror Matrix如果要沿任意向量scale,计算方式如下图
法线不能直接乘以object的偏移矩阵,因为法线无需Scale,只需要旋转,所以其只需要Object Matrix的3*3左上角矩阵,具体计算方法看书原文。如图所示
欧拉角的万向节锁( gimbal lock ):比如现绕y轴旋转90度,这时现在的z轴即为原来的x轴,所以绕z轴的旋转已经无效。
欧拉角完整公式,可从公式中获取h,p,r角度(需注意特殊情况)
OpenGL的标准化设备空间(Normalized device coordinate)坐标系的取值范围为(-1,-1,-1)到(1,1,1),而DirectX为(-1,-1,0)到(1,1,1)