D3D中的渲染状态简介

摘要:
Jpg到rar

1). 设置着色模式:                                                         

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

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

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

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

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

SetRenderStateD3DRS_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_MIPFILTER, D3DTEXF_POINT);

  //各向异性纹理过滤

SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC)

SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_ ANISOTROPIC);

8)

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

9)

SetRenderState( D3DRS_POINTSCALE_A , FtoDW( 1.00f ));//设置因子,下同

SetRenderState( D3DRS_POINTSCALE_B , FtoDW( 1.00F ));

SetRenderState( D3DRS_POINTSCALE_C , FtoDW( 1.00f ));

10)

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

SetRenderState( D3DRS_POINTSIZE_MAX, FtoDW( 5.00f ));

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

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

11)设置混合因子:

源:SetRenderState( D3DRS_SRCBLEND , D3DBLEND_SRCALPHA );

目的:SetRenderState( D3DRS_DESTBLEND , D3DBLEND_INVSRCALPHA);

第二个参数是 D3DBLEND的枚举结构。

D3D中的渲染状态简介第1张jpg改rar
 

免责声明:文章转载自《D3D中的渲染状态简介》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python dataframe astype 字段类型转换Mac idea激活下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows桌面共享中一些常见的抓屏技术

1. BitBlt 我想做Windows开发应该都知道这个API, 它能实现DC间的内容拷贝, 如果我们把源DC指定成Monitor DC或是桌面DC, 它就能实现抓屏功能。 对于通过这种方式的抓屏, 有2点需要特别提醒: a. 在XP下我们可以通过最后的拷贝标志来控制是否拷贝layered window, 只有SRCCPY表示拷贝内容不包含layer...

shader 的 nounroll

刚刚解决了一个特别坑的问题。 客户有个需求 需要shader里面 loop 的iterator数量 在运行时确定。z 这样对于里面存在  sample的loop就会被force unroll但因为count不确定 就没法unroll就编译不过了 我发现只有一个方法就是 关掉unroll  我试验了各种 在shader里面用预编译指令 关unroll 的方法...

Unreal Engine is exiting due to D3D device being lost

先保证显卡驱动最新,然后打开显卡控制面板,关掉“优化以提高计算性能”: 参考的是游戏玩家的经验总结:黄卡驱动“优化以提升计算性能”疑问,附简单测试 其他常规解决方案: 1.[Solved] Unreal Engine is exiting due to D3D device being lost 2.由于D3D设备丢失,如何解决虚幻引擎闪退问题?...

FPS 游戏实现D3D透视 (API Hook)

FPS游戏可以说一直都比较热门,典型的代表有反恐精英,穿越火线,绝地求生等,基本上只要是FPS游戏都会有透视挂的存在,而透视挂还分为很多种类型,常见的有D3D透视,方框透视,还有一些比较高端的显卡透视,本教程将学习D3D透视的实现原理,并通过DLL注入的方式实现透视。 反恐精英下载地址:链接:https://pan.baidu.com/s/1U4-E9-x...