**

device->SetRenderState()

** D3D9的视频卡设备的渲染状态设置方法
下面是一部分可设置的渲染状态:
D3DRS_FILLMODE 绘制模式设置,可设置为点,线与面模式3种分别是:(D3DFILL_POINT , D3DFILL_WIREFRAME, D3DFILL_SOLID)

D3DRS_CULLMODE 消隐模式,按照三角形单元的顶点绕序进行背面消隐,可设置为(禁用背面消隐D3DCULL_NONE,对顺时针绕序消隐D3DCULL_CW,对逆时针绕序消隐D3DCULL_CCW)

D3DRS_LIGHTING 光照开关,可设置为true与false,开启光照或禁用光照

D3DRS_SHADEMODE 着色模式 对顶点的着色模式分2种(平面着色,一个面的颜色根据第一个顶点的颜色值决定D3DSHADE_FLAT,平滑着色,一个面中根据各个顶点的颜色值计算线性插值着色D3DSHADE_GOURAUD,D3DSHADE_PHONG这个不知道是啥子,请指教,好像跟平滑着色一样效果)

D3DRS_ZWRITEENABLE 深度缓存是否可写入设置 默认为true,设为false为不应许写入,设为false后渲染几个模型时将随渲染的时间决定哪个模型在最前(可见)

D3DRS_NORMALIZENORMALS 规范化法向量,默认为不打开,设true为开启,false为关闭,使用了自定义的顶点格式中有使用法向量的需要开启

D3DRS_SPECULARENABLE 启用镜面光,true为开,false为关闭,默认为关闭,因为镜面光为反射光,其计算成本高

D3DRS_ALPHABLENDENABLE 打开融合,true为开,false为关闭,默认为关闭,使用融合能做出隐身的效果

D3DRS_SRCBLEND 设定融合因子,使用不同的融合因子和目标融合因子可以做出很多有趣的事情

D3DRS_DESTBLEND 设定目标融合因子,同上面的组合才能做出很多有趣的事情

device->SetTransform()设置渲染状态之矩阵

下面是我用过的一些状态字:
D3DTS_PROJECTION :设置投影矩阵,将一个透视投影矩阵设置为当前的可观察到的范围,形状及可见度,例如:

 D3DXMATRIX touying;D3DXMatrixPerspectiveFovLH(&touying, D3DX_PI * 0.5f, dm.Width / dm.Height, 1.0f, 1000.0f);//将投影数据写入矩阵proj  D3DX_PI*0.5fdevice->SetTransform(D3DTS_PROJECTION, &touying);          //设置投影矩阵

D3DTS_VIEW :设置观察坐标系,告诉视频卡设备,摄像机在哪个位置,摄像机以哪个点为观察中心,世界坐标系中哪个方向是向上(世界正方向),例如:摄像机在世界坐标系中Z轴的负9点,以世界坐标系0,0,0的点为观察中心,y轴的正方向是世界正方向,代码如下

 D3DXVECTOR3 SXJx{ 0,0,-9 }, SXJy{ 0,0,0 }, SXJz{ 0,1,0 };   //摄像机位置,观察点,世界正方向D3DXMATRIX SXJZD;                                            //摄像机矩阵D3DXMatrixLookAtLH(&shexiangji, &SXJx, &SXJy, &SXJz);        //合并成一个摄像机矩阵device->SetTransform(D3DTS_VIEW, &shexiangji);               //告诉D3D9使用这个观察坐标系

D3DTS_WORLD :设置世界变换矩阵,告诉视频卡设备,把接下来要渲染的模型按照当前设置的矩阵位移,例如在渲染一个物体前,设置一个向x轴的正方向移动5个单位,在接下来渲染的模型都将移动到这个位置,代码如下:

 D3DXMATRIX ss;D3DXMatrixTranslation(&ss, 5.0f, 0.0f, 0.0f);             //创建一个平移矩阵device->SetTransform(D3DTS_WORLD, &ss);                        //世界变化

目前我就知道这些可设置的渲染状态,还有很多不知道的,我是不会使用SDK的苦逼

D3D9学习笔记之渲染状态关键字相关推荐

  1. 区块链学习笔记15——ETH状态树

    区块链学习笔记15--ETH状态树 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 引入 要实现的功 ...

  2. linux系统学习笔记9——CANOpen状态转换

    CANopen CANopen状态转换 CANopen状态转换 从节点上电和内部初始化之后自动进入预损作状太(Pre-operational State),在进入预操作之前,发送标准的启动对象(Boo ...

  3. 学习笔记07渲染路径+阴影

    写的超牛逼! unity shader base pass and additional pass - rexzhao - 博客园 (cnblogs.com) 总的来说就是光照计算方式有很多,有的可以 ...

  4. Unity3D学习笔记12——渲染纹理

    文章目录 1. 概述 2. 详论 3. 问题 1. 概述 在文章<Unity3D学习笔记11--后处理>中论述了后处理是帧缓存(Framebuffer)技术实现之一:而另外一个帧缓存技术实 ...

  5. D3D9学习笔记(三) Device

    2.1架构 2.2类型 基本的device类型:hal:硬件渲染(发布).这也不是直接访问硬件驱动,而是访问在上一层的hal.(在顶点处理过程中,如果硬件处理失败,可尝试混合处理及纯软处理,设定标志D ...

  6. java继承关键字super_java学习笔记-继承中super关键字

    背景: 在java继承的概念中我们得知,被声明为私有的类成员对所属的类来说仍然是私有的.类之外的任何代码都不能访问,包括子类. super关键字的两种用法: 1.用于调用超类的构造函数: 2.用于访问 ...

  7. D3D9学习笔记之模板

    学习目标: 理解模板缓存的工作原理,如何创建模板缓存以及如何对模板缓存进行控制 了解如何实现镜面效果,以及如何使用模板缓存阻止物体映像在非镜面区域中的绘制 掌握如何绘制阴影,以及如何借助模板缓存阻止& ...

  8. Java并发编程学习笔记——volatile与synchronized关键字原理及使用

    Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令. 一.vo ...

  9. 多线程学习笔记——判断线程状态

    一. C#多线程状态判断http://blog.csdn.net/deandingding/article/details/39762489 C#多线程有很多值得学习的地方,这里我们主要介绍C# Th ...

  10. D3D9学习笔记(四) 绘制

    1直接使用vertex buffer绘制 使用IDirect3DDevice9::DrawPrimitive绘制 HRESULT DrawPrimitive( [in]  D3DPRIMITIVETY ...

最新文章

  1. 6264:走出迷宫(DFS和BFS)
  2. getclass方法 给属性赋值_反射给没有set方法的属性赋值
  3. Ubuntu下安装Pycharm及相关设置
  4. 【记录】CentOS 安装 gitlab社区版
  5. 【script】python中的函数式编程
  6. php 获取子类的方法名,php获取分类下的所有子类方法
  7. 协同过滤算法(天池竞赛试题)
  8. 转《js闭包与内存泄漏》
  9. linux实现文本方式与图形方式的转换_Linux下的6款最好用的PDF文档阅览工具
  10. ARM base instruction -- lsl asl lsr asr ror rrx
  11. 听风的插件-集成到设置中
  12. 子域名收集 -- teemo
  13. 移动端web app自适应布局探索与总结
  14. centos 7 | 安装和使用cpan
  15. 小米 Redmi G Pro 游戏本锐龙版 评测
  16. 去你的35岁危机|ONES 人物
  17. 英语练习day2 一般,否定疑问句,现表将来
  18. 2019腾讯区块链白皮书(附完整版下载)
  19. Redis数据结构底层设计
  20. web安全的一句话木马

热门文章

  1. Python课程设计《网络爬虫-中国大学排名课程设计》
  2. Jetseon TX2 IntelRealsense D435i Python
  3. 群晖 Docker Gitlab 安装 及 https配置
  4. 人体检测模块的——微波雷达的推荐和使用
  5. SFDC Lightning Performance Tuning
  6. layim之初始化配置
  7. Centbrowser网页显示不正常的解决方法
  8. android 炫酷背景,纯css3自动背景变换背景颜色,很炫酷
  9. Edit plus | ecli pse配色方案
  10. MPB:使用QIIME 2分析微生物组16S rRNA基因扩增子测序数据(视频)