1). 设置着色模式:

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

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_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的枚举结构。

jpg改rar
 

D3D中的渲染状态简介的更多相关文章

  1. Java线程池中线程的状态简介

    首先明确一下线程在JVM中的各个状态(JavaCore文件中) 1.死锁,Deadlock(重点关注) 2.执行中,Runnable(重点关注) 3.等待资源,Waiting on condition ...

  2. [ZZ] D3D中的模板缓存(3)

    http://www.cppblog.com/lovedday/archive/2008/03/25/45334.html http://www.cppblog.com/lovedday/ D3D中的 ...

  3. D3D中深度测试和Alpha混合的关系

    我在学习D3D的深度测试和Alpha混合的时候,有一些遗憾.书上提供的例子里说一定要先渲染不透明物体,再渲染透明物体,对渲染状态的设置也有特殊要求.我看的很晕.自己查图形学的书,上网找资料,结果还是糊 ...

  4. OSG中的示例程序简介

    OSG中的示例程序简介 转自:http://www.cnblogs.com/indif/archive/2011/05/13/2045136.html 1.example_osganimate一)演示 ...

  5. OSG中的示例程序简介(转)

    OSG中的示例程序简介 1.example_osganimate一)演示了路径动画的使用 (AnimationPath.AnimationPathCallback),路径动画回调可以作用在Camera ...

  6. 【转载】D3D中的Texture应用示例

    原文:D3D中的texture应用示例 本文列举了Direct3D中各种纹理应用实现:黑暗贴图,发光贴图,漫反射映射贴图,细节纹理,纹理混合,有较详尽的注解.其中黑暗贴图,发光贴图,细节纹理都是采用多 ...

  7. 【转载】OLE控件在Direct3D中的渲染方法

    原文:OLE控件在Direct3D中的渲染方法 Windows上的图形绘制是基于GDI的, 而Direct3D并不是, 所以, 要在3D窗口中显示一些Windows中的控件会有很多问题 那么, 有什么 ...

  8. Unity Shader入门精要学习笔记 - 第16章 Unity中的渲染优化技术

    转自冯乐乐的 <Unity Shader 入门精要> 移动平台的特点 为了尽可能一处那些隐藏的表面,减少overdraw(即一个像素被绘制多次),PowerVR芯片(通常用于ios设备和某 ...

  9. ArcGIS AO中控制图层中要素可见状态的总结

    一.DefinitionExpression 实现新建查询图层,查询结果要素为选中状态 该接口可以通过两种方法来控制要素的可见状态. 思路1 通过该接口的 DefinitionExpression 方 ...

随机推荐

  1. linux下开发C语言需要安装的manpages手册

    linux下开发C代码需要安装的manpages: $ sudo apt-get install manpages$ sudo apt-get install manpages-dev$ sudo a ...

  2. 安卓API首页

    http://developer.android.com/reference/packages.html

  3. Atitit.解决org.hibernate.DuplicateMappingException: Duplicate class/entity mapping

    Atitit.解决org.hibernate.DuplicateMappingException: Duplicate class/entity mapping 1. 排除流程::: @Depreca ...

  4. svn move (mv,rename,ren)

    svn 重命名文件: [root@NGINX-APACHE-SVN pro]# svn move 20160624新建数据库表.txt 201.txt A 201.txt D 20160624新建数据 ...

  5. doc转docx以及type对应的类型

    https://blog.csdn.net/flagang/article/details/51454665 // 作为type格式保存到临时文件 // *Variant(0):doc // *Var ...

  6. linux查看匹配内容的前后几行(转)

    linux系统中,利用grep打印匹配的上下几行   如果在只是想匹配模式的上下几行,grep可以实现.   $grep -5 'parttern' inputfile //打印匹配行的前后5行   ...

  7. Java callback

    Java中的回调(callback)是很重要的一个概念,spring整合hibernate大量使用了这种技术. 究竟怎样才是回调呢? 这是网上最多见到的说明:     1.class   A,clas ...

  8. 插入节点insertBefore()

    http://www.imooc.com/code/1699 插入节点insertBefore() insertBefore() 方法可在已有的子节点前插入一个新的子节点. 语法: insertBef ...

  9. IIS 与 Apache共存

    http://support.microsoft.com/kb/813368 http://www.blueidea.com/computer/system/2006/3585.asp 操作其实也很简 ...

  10. Python高级编程之生成器(Generator)与coroutine(三):coroutine与pipeline(管道)和Dataflow(数据流_

    原创作品,转载请注明出处:点我 在前两篇文章中,我们介绍了什么是Generator和coroutine,在这一篇文章中,我们会介绍coroutine在模拟pipeline(管道 )和控制Dataflo ...