关于opengl混合的一些道道
来源:互联网 发布:数控切割机编程软 编辑:程序博客网 时间:2024/04/28 12:04
首先,不需要混合的,也就是那些不透明的,咱先放在最前面渲染;
接着,咱用以下语句来开始混合操作:
//////////////////////////////////////绘制半透明物件//////////////////////////////////////////////::glEnable(GL_BLEND);//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);//亮度是不变//::glBlendFunc(GL_DST_COLOR , GL_ONE_MINUS_SRC_ALPHA);glBlendFunc(GL_SRC_ALPHA, GL_ONE); //光亮效果//glBlendFunc( GL_SRC_ALPHA,GL_DST_ALPHA); //perferct//glBlendFunc(GL_ONE, GL_ONE); //简单的颜色叠加//glBlendFunc( GL_ONE,GL_ONE_MINUS_SRC_ALPHA);//源颜色完全的参与混合,目标颜色//glBlendFunc( GL_ONE,GL_DST_ALPHA); //比较明亮//::glEnable(GL_ALPHA_TEST);//::glAlphaFunc(GL_GREATER, 0.5); //alpha大于0.5的显示,其余透明::glDepthMask(GL_FALSE); // 下面将绘制半透明物件了,因此将深度缓冲设置为只读::glEnable(GL_DEPTH_TEST); //打开深度测试::glClear(GL_DEPTH_BUFFER_BIT); //清深度缓存区这里插入要渲染的东东。。。
最后别忘了
glDepthMask(GL_TRUE); //半透明物体绘制完毕后,将深度缓存设置为可读可写
来一点总结吧,glBlendFunc(s,d);其中s代表源因子,d代表目的因子,源因子是即将绘上去的物体,目的因子是已经绘上去的物体,so,这两个因子的值不同组合时,会产生不同的混合效果。所以,绘制的先后顺序,还是会影响效果的。。。不信,你试试这个组合glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);//亮度是不变
就看你是想突出哪个物体的颜色了。。。光照当然很重要,立体的效果都是它给照的嘛。。。
- 关于opengl混合的一些道道
- 关于sql server复制的一些小道道
- 关于opengl的混合
- 关于OpenGL混合的基本知识
- 关于OpenGL混合的基本知识
- 一些关于opengl的记忆
- OpenGL 记录 -- 关于“混合”渲染
- OpenGL关于纹理和基本图形的混合问题
- OpenGL混合的基本知识
- “拿来主义”里面的道道
- 关于openGL纹理贴图的一些函数
- openGL关于圆柱的一些问题?
- 关于混合应用开发的未来的一些思考
- 重新设计的道道指令
- HashMap和Map的道道
- OpenGL:混合
- OpenGL混合
- OPENGL混合
- 搜索hdu1241 这可能是最基础的搜索题目
- android 系统基于wifi 定位的实现
- ARM9(S3C2440) Touch Screen
- 建立索引失败,删除索引报错ora-08104错误,测试
- oracle切换archive模式
- 关于opengl混合的一些道道
- java.util.zip.ZipException: error in opening zip file
- POJ1511 SPFA经典题目
- json 转成对象
- SQL注入
- Android之基于HTTP协议的下载
- php curl用法
- nyoj 91 阶乘之和
- Android 为PopupWindow设置动画效果