转 关于 D3D的 SetRenderState 以及AlphaBlend 和AlphaTest
改变D3D中的渲染状态
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的枚举结构
D3DCMP_NEVER
|
总是返回FALSE
|
D3DCMP_LESS (常用)
|
小于深度缓冲区的相应值时返回TRUE
|
D3DCMP_EQUAL
|
等于
|
D3DCMP_LESSEQUAL
|
小于等于
|
D3DCMP_GREATER
|
大于
|
D3DCMP_NOTEQUAL
|
不等于
|
D3DCMP_GREATEREQUAL
|
大于等于
|
D3DCMP_ALWAYS
|
总是返回TRUE
|
Blend mode factor
|
Description
|
D3DBLEND_ZERO
|
(0, 0, 0, 0)
|
D3DBLEND_ONE
|
(1, 1, 1, 1)
|
D3DBLEND_SRCCOLOR
|
(Rs, Gs, Bs, As)
|
D3DBLEND_INVSRCCOLOR
|
(1-Rs, 1-Gs, 1-Bs, 1-As)
|
D3DBLEND_SRCALPHA
|
(As, As, As, As)
|
D3DBLEND_INVSRCALPHA
|
(1-As, 1-As, 1-As, 1-As)
|
D3DBLEND_DESTALPHA
|
(Ad, Ad, Ad, Ad)
|
D3DBLEND_INVDESTALPHA
|
(1-Ad, 1-Ad, 1-Ad, 1-Ad)
|
D3DBLEND_DESTCOLOR
|
(Rd, Gd, Bd, Ad)
|
D3DBLEND_INVDESTCOLOR
|
(1-Rd, 1-Gd, 1-Bd, 1-Ad)
|
D3DBLEND_SRCALPHASAT
|
(f, f, f, 1); f = min(As, 1-Ad)
|
D3DBLENDOP_ADD
|
源计算结果与颜色缓冲区计算结果相加
|
D3DBLENDOP_SUBTRACT
|
源计算结果减去颜色缓冲区计算结果
|
D3DBLENDOP_REVSUBTRACT
|
颜色缓冲区计算结果减去源计算结果
|
D3DBLENDOP_MIN
|
MIN(源计算结果, 颜色缓冲区计算结果)
|
D3DBLENDOP_MAX
|
MAX(源计算结果, 颜色缓冲区计算结果)
|
转载于:https://www.cnblogs.com/SHGF/archive/2013/05/10/3070360.html
转 关于 D3D的 SetRenderState 以及AlphaBlend 和AlphaTest相关推荐
- 新版“峡谷第一美”妲己尾巴毛发制作分享
关于作者:梁家斌,腾讯互动娱乐天美工作室群高级游戏美术师. 之前有很多人来询问新版妲己宝宝 毛茸茸的尾巴 做法, 先谢谢大家对这个毛发效果的认可, 我在这里就简单的分享一下, 毛发的实现思路和制作方法 ...
- 游戏中的drawcalls值
Drawcalls:这个东西值越小,你的游戏性能越好 介绍:在游戏中每一个被展示的独立的部分都被放在了一个特别的包中,我们称之为"描绘指令"(drawcall),然后这个包传递到3 ...
- D3D中的粒子系统(1)
许多自然现象是由很多小的小颗粒组成的,它们有相似的行为.(例如,雪花落下,闪烁的火焰,冲出枪管的"子弹"),粒子系统用来模拟这种现象. 14.1 粒子和点精灵(Point Spri ...
- (转)跨越Opengl和D3D的鸿沟
原帖地址: http://www.cnblogs.com/gongminmin/archive/2011/07/15/2107290.html 多年来,在论坛和各个网站上不断能看到拿OpenGL和D3 ...
- [转] Carmack 谈 d3d 与 ogl,定位专业应用的OpenGL,专注娱乐应用的DirectX,未来:OpenGL、DirectX并行发展
http://blog.csdn.net/xieyuquan/archive/2006/10/05/1321801.aspx 我找不到一个理由不让这篇文章多一份Copy 原地址:http://bbs. ...
- [转] Carmack 谈 d3d 与 ogl, 定位专业应用的OpenGL, 专注娱乐应用的DirectX, 未来:OpenGL、DirectX并行发展...
我找不到一个理由不让这篇文章多一份Copy 原地址:http://bbs.emu-zone.org/forums/archive/index.php/t-70.html 在经过这段时间的积累和沉淀 再 ...
- FPS 游戏实现D3D透视
FPS游戏可以说一直都比较热门,典型的代表有反恐精英,穿越火线,绝地求生等,基本上只要是FPS游戏都会有透视挂的存在,而透视挂还分为很多种类型,常见的有D3D透视,方框透视,还有一些比较高端的显卡透视 ...
- FPS游戏:实现D3D劫持透视 (API Hook)
FPS游戏可以说一直都比较热门,典型的代表有反恐精英,穿越火线,绝地求生等,基本上只要是FPS游戏都会有透视挂的存在,而透视挂还分为很多种类型,常见的有D3D透视,方框透视,还有一些比较高端的显卡透视 ...
- 在D3D中绘制一个三角形的一个完整过程(学习3D游戏笔记一)
本笔记是基于Microsfot DirectX 9.0 SDK Update的SimpleSample生成的框架. 在3D场景中,所有的对象和模型均由三角形构成;而三角形由三个顶点构成;每个顶点不仅包 ...
最新文章
- 从「林」开始: imx51-linux-rt3070ap-dhcpd
- jstat 内存泄漏_一次Java内存泄漏的排查!要了自己的老命!
- Linux学习系列之Mount
- python遍历文件_python遍历目录文件脚本的示例
- Spring4基础 学习笔记(5) ---- Spring与Dao
- EasyExcel导出excel(写)
- 记录一次自己的前端面试心得
- 自动驾驶仿真(一)—— 基于CarSim与Simulink的ABS系统仿真
- windows设置路径Path
- UFS UIC Layer: MIPI UNIPRO
- Jeff Dean的神话
- 自动光圈及P-IRIS原理
- “做真实的自己”是个坑
- Google网盘 百度网盘文件互传-Multcloud
- 各台平台电商API接口吊桶,API接口分类
- redies 须知小结
- 怎样按照STAR法则制作简历
- Python Pandas读取文件
- 本次操作由于这台计算机的限制而被取消u盘,u盘显示但打不开提示“本次操作由于这台计算机的限制而被取消请与你的系统管理员联系”...
- Android 如何批量改变字体颜色