【DirectX3D】Blending Colors for Special Effects
2015-09-10 09:10
211 查看
本文系 学习 DirectX tutorial 笔记 ,原文及代码参考 directxtutorial.com/Lesson.aspx?lessonid=9-4-6
//------------------------------------------------------------------------------------------------------------------------------------------
本节讲诉的是颜色混合技术,还可以制作半透明,透明效果
Blend Operations
混合操作有5部分:源色,操作,目标色,目标因子。可表示如下
Final Color = (Source Color * Source Factor)Operation (Dest Color * Dest Factor)
![](http://img.blog.csdn.net/20150909220456743)
颜色混合在写入后台缓存的时候进行。源色是正在画的像素颜色,目标色是画的像素后面的颜色,如上图
Source Factor and Dest Factor
因子常为0~1 之间的浮点数,在颜色混合时,初始颜色乘以混合因子。例如,做半透明效果,可以使用模型的alpha通道(0~255),这时
值会被转换为0~1,比如192即设置为0.75,即表示75%的brightness,加上25%的后面的颜色。
D3DBLENDOP_ADD 目标色会被加到 原色
D3DBLENDOP_SUBTRACT 目标色从原色中减去
D3DBLENDOP_REVSUBTRACT 原色从目标色中减去
D3DBLENDOP_MIN 使用参考值小的颜色
D3DBLENDOP_MAX 使用参考值大的颜色
下面是分别使用 ADD, SUBTRACT 的效果, 用subtract后,颜色会变暗,add颜色变亮丽些了
![](http://img.blog.csdn.net/20150909220459584)
![](http://img.blog.csdn.net/20150910090722226)
//------------------------------------------------------------------------------------------------------------------------------------------
本节讲诉的是颜色混合技术,还可以制作半透明,透明效果
Blend Operations
混合操作有5部分:源色,操作,目标色,目标因子。可表示如下
Final Color = (Source Color * Source Factor)Operation (Dest Color * Dest Factor)
颜色混合在写入后台缓存的时候进行。源色是正在画的像素颜色,目标色是画的像素后面的颜色,如上图
Source Factor and Dest Factor
因子常为0~1 之间的浮点数,在颜色混合时,初始颜色乘以混合因子。例如,做半透明效果,可以使用模型的alpha通道(0~255),这时
值会被转换为0~1,比如192即设置为0.75,即表示75%的brightness,加上25%的后面的颜色。
d3ddev->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE); // turn on the color blending d3ddev->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); // set source factor d3ddev->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); // set dest factor d3ddev->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD); // set the operation
D3DBLENDOP_ADD 目标色会被加到 原色
D3DBLENDOP_SUBTRACT 目标色从原色中减去
D3DBLENDOP_REVSUBTRACT 原色从目标色中减去
D3DBLENDOP_MIN 使用参考值小的颜色
D3DBLENDOP_MAX 使用参考值大的颜色
下面是分别使用 ADD, SUBTRACT 的效果, 用subtract后,颜色会变暗,add颜色变亮丽些了
相关文章推荐
- 关于如何将form表单中的元素转为JSON字符串
- 《剑指offer》替换空格
- thinkphp 异步=登陆+注册+注销 jquery+ajax+thinkphp
- 剑指Offer系列---(14)数值的整数次方
- domino漂亮登陆界面
- javascript 中的 this 关键字详解
- CSS table-layout 属性
- error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
- 《剑指offer》二维数组中的查找
- 【前端也要学点算法】 归并排序的JavaScript实现
- js 设计模式
- js冲突 解决的办法
- js的StringBuffer实施和使用类
- JS 联接函数(链式函数)
- javascript验证
- Javascript邮件管理
- 201509010 javascript事件-多物体运动
- 检测 HTML5\CSS3\JAVASCRIPT 在浏览器的适应情况
- [LeetCode#276] Paint Fence
- 清理网页中的HTML