随笔分类 -  OpenGL

摘要:有的时候我们想要实现这么一个效果:想要透过某个事物,看过背后的场景,而被事物掩盖的部分无法被看见。这时候可能会想当然的认为,只要设置好相应的深度就可以了。愿望是美好的,现实的残酷的,如果仅是单纯地设置深度,你看到的图片会是以下情景:如上所见,最后看到的画面中,两种图片看起来没有鲜明的区分,有颜色的地方重叠在一起,而没有看到我们希望的:图片分明,一张图片掩盖在另一张图片上。这时候我们需要的就是利用掩模(masking)技术。所谓的掩模技术,就是运用混色原理,先用一张黑白图片,盖住背景图片,然后在真正画上彩色图片,让彩色的部分真正鲜明的表示出来。具体方法:1.生成背景图片2.启用混合方式,禁用深度 阅读全文
posted @ 2013-04-01 14:57 のんきネコ 阅读(454) 评论(0) 推荐(0) 编辑
摘要:今天在NEHE粒子效果的基础上写了一个8字循环体,果然算法什么的真是太恶心了。关于粒子效果我就不多说了,大家可以参照NEHE的教程,写得很详细,只要有心,肯定能学会。链接如下:http://www.owlei.com/DancingWind/所谓的8字循环体,就是蜜蜂跳的那种8字舞蹈,上下两个圆圈绕着转。因此,要实现8字循环体,首先得要实现如何画圆圈。其实很简单,我们先在文件顶头定义一些所需的变量。//圆圈的角度float degree;//圆周率float pi = 3.14159;//圆的半径int r = 5;//上下圆圈的判断符bool flg = true;然后在绘制图像的那个方法. 阅读全文
posted @ 2013-03-29 19:06 のんきネコ 阅读(1190) 评论(0) 推荐(0) 编辑
摘要:说是二次曲面图,其实从视觉效果上看还是三维图。通过glu实用库,我们可以轻松的画出球形、锥形、扇面、圆柱形,而不用像画立方体或立体三角形一样一个面一个面的去画。要画二次曲面图形,首先我们要创建一个GLUquadricObj(二次曲面声明类型)。具体如下://声明对象GLUquadricObj *uquadric;//初始化二次曲面并创建一个指向二次曲面的指针uquadric = gluNewQuadric();//在二次曲面的表面创建平滑的法向量gluQuadricNormals(uquadric,GL_SMOOTH);//允许二次曲面使用纹理gluQuadricTexture(uquadri 阅读全文
posted @ 2013-03-28 17:07 のんきネコ 阅读(6352) 评论(1) 推荐(1) 编辑