DX9固定管线中的默认值(1)

DX9固定管线中的默认值(1)

 

1.没有设置World/View/Projection变换坐标系的时候,屏幕四角对应着的顶点是左上(-1.0f,1.0f,0.0f),右上(1.0f,1.0f,0.0f),左下(-1.0f,-1.0f,0.0f),右下(1.0f,-1.0f,0.0f),而且摄像机的位置貌似应该是在(0.0f,0.0f,-1.0f),而且俯仰角应该是90度。

2.Direct3D9默认会启动“隐藏面消除”功能,即距离镜头较远的三角形并不会将距离镜头较近的三角形覆盖;而OpenGL默认是没有打开这个功能的。而且,Direct3D9默认会将逆时针的顶点组成的面作为背面而不予显示,就是说在DX9中,D3DRS_CULLMODE默认值为D3DCULL_CCW。(由于DX9默认使用的是左手坐标系,所以它规定顶点顺时针排列为正面,这跟左手握拳时手指所形成的方向相同--注意,此时“左手握拳”指的是大拇指指向自己,而不是像在屏幕上定义左手坐标系时将大拇指指向屏幕里面)。如果要关闭“隐藏面消除”,只需要设置D3DRS_CULLMODE为D3DCULL_NONE即可。

3.当对顶点进行着色的时候(FVF格式有D3DFVF_DIFFUSE声明),D3DRS_SHADEMODE的默认值是D3DSHADE_GOURAUD,即开启了着色的内插功能。如果想关闭内插功能,可以将D3DRS_SHADEMODE设置为D3DSHADE_FLAT。

4.同样是在对顶点进行着色的时候,Direct3D9默认是对整个三角面进行着色的,即D3DRS_FILLMODE为D3DFILL_SOLID。如果不想对整个面进行着色,那么可以设置D3DRS_FILLMODE为D3DFILL_WIREFRAME只进行线框模式的着色。

5.当使用光源的时候,需要设置模型表面的材质属性才能正确的反射光线。但是物体表面材质的反光能力,有两个不同的数据源:一是使用SetMaterial函数来设置,这种方法会让整个模型都具有相同的反光能力;另外一个是把数据放在顶点的颜色字段中,这样就可以对每个顶点设置不同的反光能力。在DX9中,对Diffuse类型和Specular类型的光来说,默认设置值分别是D3DMCS_COLOR1和D3DMCS_COLOR2;但是Ambient和Emissive类型的光的默认值却是D3DMCS_MATERIAL。

 

To be continued...

posted @ 2009-12-27 19:56  芈希有  阅读(520)  评论(0编辑  收藏  举报