D3D显示正四面体

           今天用D3D画一个正四面体,旋转后有些面没显示出来,后来想想好景见过书上说顺时针一般默认不会背面消隐,想想是不是顶点索引的顺序出错了!

但是我还有些没搞清楚,顺逆时针如果是在二维坐标系下可以判断顺逆时针,但是如果是在三维坐标系下,面是斜的,这个顺逆时针到底是相对什么而言的?

        想想估计是这里出错了,于是修改SetRenderState函数中参数,果然得到了我想要的结果。

       上网查了这个函数的用法如下,记录着,好以后用:       

 

1. 设置着色模式:                                                         

SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT)        //设置平面着色模式

SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD)     //设置格劳德着色模式

 

2. 设置多边形填充模式:

SetRenderState(D3DRS_FILLMODE, D3DFILL_POINT)         //点填充模式,D3D在多边形的每个顶点绘制一个像素

SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME)     //线填充模式,D3D在多边形的每个边绘制一条线

SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID)         //面模式,D3D默认模式,对多边形的面进行填充

 

3. 设置全景图形抗锯齿:

SetRenderState(D3DRS_MUTISAMPLEANTIALIAS, TRUE)       //抗锯齿

SetRenderState(D3DRS_MUTISAMPLEANTIALIAS, FALSE)      //不抗锯齿

 

4. 设置剔除模式:
SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE)          //不剔除任何面

 

5. 设置光照模式:
SetRenderState(D3DRS_AMBIENT, D3DCOLOR ambientColor); //为整个场景设置环境光
SetRenderState(D3DRS_SPECULARENABLE, TRUE);           //激活镜面反射计算(D3D默认情况下关闭)

 

6. 启动/关闭深度测试:
SetRenderState( D3DRS_ZENABLE, TRUE );                //启用深度测试

 

 

你可能感兴趣的:(学习—知识类)