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 )
// 目的
本文介绍了DirectX中关于渲染状态的设置,包括着色模式(平面与格劳德着色)、多边形填充模式(点、线、面)、抗锯齿、剔除模式、光照、深度测试、纹理过滤器、缩放功能以及混合因子的详细配置方法。
7422

被折叠的 条评论
为什么被折叠?



