opengl基础学习<二> ----混合因子
2014-04-16 16:13
274 查看
混合因子
混合因子的公式是Cf = (Cs*S) + (Cd * D)
Cf是最终产生的颜色,Cs是目标颜色,就是你正在绘制的颜色,Cd是目标颜色,就是你要混合(叠加)的那个颜色
S和D分别为混合因子
用一个例子来表示就是
GLfloat vMycolor[] = { 0.5f, 0.5f, 0.0f, 1.0f };//源颜色
GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
//目标颜色
glBlendFunc(GL_ONE, GL_SRC_COLOR);
GL_ONE的混合因子是(1, 1, 1, 1)
GL_SRC_COLOR的混合因子是(Rs,Gs,Bs, As)
Rs,Gs,Bs,As表示的是源颜色的值,在这里就是0.5, 0.5 , 0, 1(注:是未乘于混合因子之前的色值)
Cs * S 就是 {0.5f * 1, 0.5f * 1, 0.0f * 1, 1.0f *1} = {0.5f, 0.5f, 0.0f, 1.0f}
Cd * D 就是{1.0 * 0.5f, 0.0f * 0.5f, 0.0f * 0.0f, 1.0f * 1.0f} = {0.5f, 0.0f, 0.0f, 1.0f}
最终的Cf = {0.5f + 0.5f, 0.5f + 0.0f, 0.0f + 0.0f , 1.0f + 1.0f}
因为色值的范围是0 - 1,所以最后的色值 = {1.0f, 0.5f, 0.0f, 1.0f}
混合因子的公式是Cf = (Cs*S) + (Cd * D)
Cf是最终产生的颜色,Cs是目标颜色,就是你正在绘制的颜色,Cd是目标颜色,就是你要混合(叠加)的那个颜色
S和D分别为混合因子
用一个例子来表示就是
GLfloat vMycolor[] = { 0.5f, 0.5f, 0.0f, 1.0f };//源颜色
GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
//目标颜色
glBlendFunc(GL_ONE, GL_SRC_COLOR);
GL_ONE的混合因子是(1, 1, 1, 1)
GL_SRC_COLOR的混合因子是(Rs,Gs,Bs, As)
Rs,Gs,Bs,As表示的是源颜色的值,在这里就是0.5, 0.5 , 0, 1(注:是未乘于混合因子之前的色值)
Cs * S 就是 {0.5f * 1, 0.5f * 1, 0.0f * 1, 1.0f *1} = {0.5f, 0.5f, 0.0f, 1.0f}
Cd * D 就是{1.0 * 0.5f, 0.0f * 0.5f, 0.0f * 0.0f, 1.0f * 1.0f} = {0.5f, 0.0f, 0.0f, 1.0f}
最终的Cf = {0.5f + 0.5f, 0.5f + 0.0f, 0.0f + 0.0f , 1.0f + 1.0f}
因为色值的范围是0 - 1,所以最后的色值 = {1.0f, 0.5f, 0.0f, 1.0f}
相关文章推荐
- Windows学习笔记10——图形基础<二>
- opengl基础学习<一>
- 黑马程序员:基础学习<二>
- opengl 学习<二>
- Android React-Native系列之<二>零基础学习React-Native控件之View
- 学习UNITY3D网络插件photon pun和PhotonServer<二>
- HTML学习记录<二>:标签的 target 属性中的_blank _self _parent _top
- <Python基础教程>学习心得_第一章
- <<Python基础教程>>学习笔记 | 第11章 | 文件和素材
- android学习记录<二>
- python基础学习笔记<面向对象编程>
- 黑马程序员:IO 学习<二>
- Celery 的学习笔记--tornado异步开发的好朋友<二>
- SQL Server XML基础学习之<7>--XML modify() 方法对 XML 数据中插入、更新或删除
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<SQL_Server>(二十一)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<DOM解析>(三十二)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<tomcat>(二十五)
- _Java基础<二>_Java语言基础组成(上)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<正则表达式>(三十一)
- <<Python基础教程>>学习笔记 | 第14章 | 网络编程