今天亲自实践了下,终于搞清楚了.

  多边形都有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

  图中箭头表示顺时针绕序.

DX9三角形顶点绕序的判断-LMLPHP

05-11 15:54