帮帮忙~DirectX画三角形
我看书上的代码和光盘附带的代码,D3D画三角形是逆时针画,OpenGL用顺时针画
但是我自己画的时候 D3D中 我逆时针死活画不出三角形,然后急了,我用顺时针
三角形出现了~ 我汗~~~
大家帮帮忙~还是我哪里设置错了
我没错有用D3DFVF_XYZ|D3DFVF_DIFFUSE
[解决办法]
这个是应为opengl和d3d的参考坐标系不一样的原因,opengl用的是右手坐标系,而d3d则用的左手坐标系,
所以在opengl中,逆时针指定三角形顶点的时候,三角形的正面就是面向我们的,所以可以看到它。而在d3d中,由于左手坐标系的原因,顺时针设置三角形的顶点我们才能看到三角形的正面。
[解决办法]
所谓顺时针能看到逆时针看不到是由于d3d 的背面剔出模式CULL,opengl也一样
d3d的cull设置在这里SetRenderState(D3DRS_CULLMODE,cullmode);
共有3个选项
D3DCULL_NONE 表示没有剔除,顺时针逆时针都画
D3DCULL_CW 剔除顺时针
D3DCULL_CCW 剔除逆时针