今天亲自实践了下,终于搞清楚了.
多边形都有2个侧面,观察坐标系中正面朝向摄像机的为多边形为正面朝向多边形,正面偏离摄像机的为多边形为背面朝向多边形,d3d会把背面朝向多边形剔除,即背面消隐.
使用
Device->SetRenderState(D3DRS_CULLMODE, Value);
来更改消隐方式,Value可取
D3DCULL_NONE //完全禁用背面消隐
D3DCULL_CW //只对顺时针绕序的三角形进行消隐
D3DCULL_CCW //只对逆时针绕序的三角形进行消隐(默认)
对下图,指定顶点时若v0为第一个,观察v0相对的边v1v2可得出绕序方向,v0 v1 v2为顺时针绕序,v0 v2 v1为逆时针.
同理得顺时针绕序: v1 v2 v0, v2 v0 v1 逆时针绕序: v1 v0 v2, v2 v1 v0
图中箭头表示顺时针绕序.