OpenGL中的颜色混合功能(一)
// 清空颜色缓冲区和深度缓冲区glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// ----------------------- 首先绘制地板下方的球体 --------------------// 保存矩阵状态glPushMatrix();// 将光源0的位置摆放到地板下方glLightfv(GL_LIGHT0, GL_POSITION, fLightPosMirror);// 保存矩阵状态glPushMatrix();// 设置顺时针环绕的一面为多边形的正面,对多边形进行镜像glFrontFace(GL_CW);// 在Y轴使用-1的缩放因子来反转Y轴glScalef(1.0f, -1.0f, 1.0f);// 绘制地板下方的球体DrawSphere();// 设置逆时针环绕的一面为多边形的正面glFrontFace(GL_CCW);// 恢复矩阵状态glPopMatrix();// ----------------- 通过对地板设置透明的颜色混合效果,来实现反射的幻觉 -----------------// 关闭光照计算glDisable(GL_LIGHTING);// 打开颜色混合glEnable(GL_BLEND);// 设置混合因子glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);// 绘制地板DrawGround();// 关闭颜色混合glDisable(GL_BLEND);// 打开光照计算glEnable(GL_LIGHTING);// -------------------- 最后绘制地板上方的球体 ---------------------------// 将光源0的位置摆放到地板上面glLightfv(GL_LIGHT0, GL_POSITION, fLightPos);// 绘制地板上方的球体DrawSphere();// 恢复矩阵状态glPopMatrix();// 执行缓冲区的交换glutSwapBuffers();
OpenGL中的颜色混合功能(一)相关推荐
- 在OpenGL中实现Extrude 造型
在Opengl中实现Extrude功能,通过glu库实现,当前问题在启用材质的存在缺陷.继续努力中 <code begin> /* Text3d by Robert J. Doyle, J ...
- OpenGL中的混色问题(Alpha通道)
混合是一种常用的技巧,通常可以用来实现半透明.但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象. 混合是什么呢?混合就是把两种颜色混在一起.具体一点,就是把某 ...
- OPenGL中的缓冲区对象
引自:http://blog.csdn.net/mzyang272/article/details/7655464 在许多OpenGL操作中,我们都向OpenGL发送一大块数据,例如向它传递需要处理的 ...
- Boost:在OpenCL并将图像渲染为OpenGL中的纹理
Boost:在OpenCL并将图像渲染为OpenGL中的纹理 实现功能 C++实现代码 实现功能 Boost的compute模块,在OpenCL并将图像渲染为OpenGL中的纹理 C++实现代码 #i ...
- (转)OpenGL中位图的操作(glReadPixels,glDrawPixels和glCopyPixels应用举例)
(一)BMP文件格式简单介绍 BMP文件是一种像素文件,它保存了一幅图象中所有的像素.这种文件格式可以保存单色位图.16色或256色索引模式像素图.24位真彩色图象,每种模式种单一像素的大小分别为1/ ...
- OpenGL中的上下文 理解整理
OpenGL中的上下文(Context) OpenGL状态机与上下文 OpenGL是一个状态机,它拥有非常多的状态变量,并且每个状态变量都有默认值. OpenGL在渲染的时候需要一个Context来记 ...
- 【GPU编程】The Cg Runtime:OpenGL中调用Cg程序
原文:<The Cg Tutorial>(Cg手册):Appendix B:The Cg Runtime,Page195 很多地方可能翻译得不好,还请大家见谅.指教! 注意:我省略了其中的 ...
- (zt)OpenGL中的Alpha测试,深度测试,模板测试,裁减测试
转自http://www.cppblog.com/flashboy/archive/2009/09/01/94974.html 大家好.现在因为参加工作的关系,又是长时间没有更新.趁着国庆的空闲,总算 ...
- Learn OpenGL(七)——OpenGL中使用着色器的基本步骤及GLSL渲染简单示例
OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是 ...
最新文章
- watch TV online for free
- 删除ctrl alt del更改密码
- Java网络编程——9.服务器Socket
- 芯灵思Sinlinx A64开发板 Linux内核等待队列p
- 软件官网与memcached介绍
- EM算法和GMM(下)
- 2017年8个最流行的Web编程趋势
- recovery编译问题汇总
- oracle建库及plsql建表空间的用法
- 实战手记:让百万级数据瞬间导入SQL Server
- 从土地利用规划到国土空间规划的一些思考
- 审车按月还是日期_大额存单,应该选择按月付息还是到期一次性还本付息?
- 【linux】常用网络操作
- 怎样用eclipse新建一个android项目?用eclipse新建android项目出错?请看下面
- 组态王bitset用法_组态王使用问题解答6
- echarts 曲线面积对比图
- Windows内核原理与实现之Windows设备驱动程序
- 2010Excel分列操作的一些问题进行分享
- 汇编实现数字的输入与输出
- 网络安全初创企业Illumio融资1.25亿美元 摩根领投
热门文章
- NFV落地开花,CT厂商渐获运营商青睐
- Intel SGX开发者参考书(四)—— Enclave开发基础(三)
- Android中TextView的SetText()方法注意事项
- 云堡垒机和传统堡垒机对比
- 知乎热议!谷歌员工,在家办工要降薪25%?
- Java实现图片上传到服务器
- mysql查询条件为不等于某个值时,null 查询不到?
- TQ2440 mifi驱动及开机自动连接wifi全过程
- linux内核Kmalloc - GFP_ATOMIC - GFP_KERNEL - GFP_USER
- 将波旁威士忌的整洁Mixins提升到新的水平