DIRECT3D状态详解

DIRECT3D状态详解

ID:37709816

大小:32.27 KB

页数:12页

时间:2019-05-29

DIRECT3D状态详解_第1页
DIRECT3D状态详解_第2页
DIRECT3D状态详解_第3页
DIRECT3D状态详解_第4页
DIRECT3D状态详解_第5页
资源描述:

《DIRECT3D状态详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DIRECT3D状态详解Microsoft®Direct3D®设备是一个状态机。应用程序设置光照、渲染和变换模块的状态,然后在渲染时传递数据给它们。本节描述图形流水线用到的所有不同类型的状态。·渲染状态·取样器状态·纹理层状态·状态块渲染状态设备渲染状态控制Microsoft®Direct3D®设备光栅化模块的行为,它们通过改变渲染状态的属性,使用何种类型的着色算法,雾属性和其它光栅化器操作来达到这个目的。C++应用程序通过调用IDirect3DDevice9::SetRenderState方法控制渲染状态的属性。

2、D3DRENDERSTATETYPE枚举类型指定所有可能的渲染状态,应用程序把一个枚举类型值作为第一个参数传递给IDirect3DDevice9::SetRenderState方法。固定功能顶点处理由IDirect3DDevice9::SetRenderState方法和以下设备渲染状态控制。这些控制中的大多数在使用可编程顶点着色器时没有任何作用。·D3DRS_SPECULARENABLE·D3DRS_FOGSTART·D3DRS_FOGEND·D3DRS_FOGDENSITY·D3DRS_RANGEFOGENABL

3、E·D3DRS_LIGHTING·D3DRS_AMBIENT·D3DRS_FOGVERTEXMODE·D3DRS_COLORVERTEX·D3DRS_LOCALVIEWER·D3DRS_NORMALIZENORMALS·D3DRS_DIFFUSEMATERIALSOURCE·D3DRS_SPECULARMATERIALSOURCE·D3DRS_AMBIENTMATERIALSOURCE·D3DRS_EMISSIVEMATERIALSOURCE·D3DRS_VERTEXBLEND另外,固定功能顶点处理流水线使用以下方

4、法设置变换、材质和光照。·IDirect3DDevice9::SetTransform·IDirect3DDevice9::SetMaterial·IDirect3DDevice9::SetLight·IDirect3DDevice9::LightEnable注意    D3DRS_SPECULARENABLE控制像素流水线中镜面反射色的加法。D3DRS_FOGSTART,D3DRS_FOGEND和D3DRS_FOGDENSITY控制如何计算雾的起点、终点和像素雾的密度。更多的信息包含在以下主题中。概述阿尔法混合状

5、态阿尔法测试状态环境光状态抗锯齿状态剔除状态深度缓存状态雾状态光照状态轮廓和填充状态每顶点颜色状态图元裁剪状态着色状态模板缓存状态纹理环绕状态阿尔法混合状态一个颜色的阿尔法值控制它的透明度。启用阿尔法混合允许把一个表面上的颜色、材质和纹理根据透明度混合到另一个表面上。更多信息请参阅阿尔法纹理混合和纹理混合。C++应用程序使用D3DRS_ALPHABLENDENABLE渲染状态启用阿尔法透明混合。Microsoft®Direct3D®API允许多种类型的阿尔法混合。但是,重要的是要注意用户的三维硬件可能不完全支持所有

6、Direct3D提供的混合状态。已完成的阿尔法混合的类型取决于D3DRS_SRCBLEND和D3DRS_DESTBLEND渲染状态。源和目的混合状态须成对使用。以下示例代码显示了如何将源混合状态设置为D3DBLEND_SRCCOLOR并将目的混合状态设置为D3DBLEND_INVSRCCOLOR。// 本例假设d3dDevice为指向IDirect3DDevice9接口的有效指针。 // 设置源混合状态。d3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCCOL

7、OR); // 设置目的混合状态。//设置目的混合状态。d3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCCOLOR);改变源和目的混合状态可以使物体在雾很浓或灰尘很多的环境中看起来像发光物体。例如,若应用程序在雾很浓的环境中建模了火焰,能量场,离子束或类似的发光体,则可把源和目的混合状态都设置为D3DBLEND_ONE。阿尔法混合的另一种应用是控制三维场景中的光照,也称为光照贴图。将源混合状态设置为D3DBLEND_ZERO并将目的混合状态设置为D3

8、DBLEND_SRCALPHA,会根据源的阿尔法信息使场景变暗。源图元被用作光照贴图,对帧缓存中的内容进行缩放,并在适当的时候使之变暗,这就是单色光照贴图。应用程序可以生成彩色光照贴图,只要把源阿尔法混合状态设置为D3DBLEND_ZERO,并把目的混合状态设置为D3DBLEND_SRCCOLOR。阿尔法测试状态C++应用程序可以用阿尔法测试控制何时把像素被

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。