DirectX渲染状态设置

来源:互联网 发布:php array 遍历 编辑:程序博客网 时间:2024/06/10 09:03

1)设置着色模式:

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

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 ) // 启用深度测试

7)设置纹理过滤器

// 线性纹理

SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR )

SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR )

// 最近点采样

SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT )

SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT )

// 各向异性纹理过滤

SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC )

SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_ANISOTROPIC )

8)设置缩放功能

SetRenderState( D3DRS_POINTSCALEENABLE, TRUE ) // 打开缩放功能

SetRenderState( D3DRS_POINTSCALE_A, FtoDW( 1.00f ) )// 设置缩放因子

SetRenderState( D3DRS_POINTSCALE_B, FtoDW( 1.00f ) ) // 设置缩放因子

SetRenderState( D3DRS_POINTSCALE_C, FtoDW( 1.00f ) ) // 设置缩放因子

SetRenderState( D3DRS_POINTSIZE_MAX, FtoDW( 5.00f ) )// 设置点大小上限

SetRenderState( D3DRS_POINTSIZE_MAX, FtoDW( 5.00f ) ) // 设置点大小上限

SetRenderState( D3DRS_POINTSPRITEENABLE, TRUE ) // 打开点精灵

SetRenderState( D3DRS_AMBIENT, 0xffffffff ); // 设置环境光颜色开启ALPHA混合效果

9)设置混合因子

SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA )// 源

SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA )// 目的


原创粉丝点击