opengl学习笔记
文章平均质量分 67
hacson
这个作者很懒,什么都没留下…
展开
-
一个简单的粒子系统的实现
看了下相关的资料,把粒子写了下,下面记录下学习的心得 要实现一个粒子系统,我们要先把粒子的属性都定义到一个结构当中,然后用这个结构来定义一个数组来实现。结构如下:typedef struct tagPARTICLE{ bool active; //粒子是否活跃 GLfloat life; //粒子的生命 GLfloat fade; //粒子的衰减速度 GLf原创 2010-05-14 16:35:00 · 788 阅读 · 0 评论 -
opengl镜面反射
<br />其实镜面效果在很多地方都有应用,比如光滑的物品表面,或是水面的倒影等。但做镜面的反射不是让opengl自己去计算一个镜面的反射画面,而是把物件和反射面画出来后,再在反射面的那块区域把物件的倒影画出来。听起来不算简单,但难点却不是怎么画倒影,而是怎么把倒影限定在某块区域。要实现这个效果,就要使用opengl的模板测试。关于模板,这里转载一段关于模板的教程,我觉得这段教程对于新手来说很容易理解。<br />3、模板测试<br />模板测试是所有OpenGL测试中比较复杂的一种。<br /><br /原创 2010-07-25 18:05:00 · 6553 阅读 · 1 评论 -
如何在自己的opengl程序中使用GLSL
GLSL,即GL Shading Language,用自己写的程序取代opengl的固定渲染管线的一种语言。之前看了下RenderMonkey,虽然功能不算弱,但使用RenderMonkey却不知道在里面怎么用自己的shader去渲染自己的opengl程序,所以就去找下了关于把shader链接到自己的程序里的方法。因为Microsoft仅支持到opengl1.1,所以使用了glew扩展。测试用的vertex shader和fragment shader非常简单,即把物体显示为红色,代码如下://filena原创 2010-06-03 19:37:00 · 1888 阅读 · 0 评论 -
opengl上的billboard使用
<br />最近几天看了lighthouse3d上的billboard教程,照着写了下,运行效果如下:<br /> <br /><br /> <br />缺点是没有直接在函数内计算坐标,而是使用函数通过glRotatef来渲染使平面朝向摄像机,当粒子数多时调用glBegin的次数也多(因为glBegin内调用glRotatef没有作用),优化方法是使用函数计算x,y,z坐标,然后在glBegin一次画出,不过暂时还没写出来,等有时间再重新写下。<br /> <br />资料参考:<br />http://w原创 2010-08-06 16:11:00 · 2423 阅读 · 0 评论 -
一个非飞行类游戏的Camera类
一般游戏都有一个对摄像机进行移动控制的方法,大型的3D游戏更是如此,但我看了NEHE和一些其他的场景漫游方法,都是通过旋转或移动整个场景,这样的话必然使物体在世界坐标系中的坐标发生变化,虽然在效果上来讲没什么影响,但总体给我感觉是控制不太灵活——摄像机总在某一点而只有场景的物体转动。基于这些,我自己去写了个算摄像机位置的camera类,虽然有点属于舍近求远的做法,但控制摄像机的位置和朝向比较符合我心意……嗯,然后说下算法思路。虽然没打算做飞行游戏的camera类,但还是要引入飞机的3个方向角度来说明算法,因原创 2010-08-13 00:52:00 · 559 阅读 · 0 评论 -
【转】BSP树
这篇BSP树入门应该是网上流传比较多的,但我发现网上的很多版本都在排版方面把这些字符组成图形弄得乱七八糟,而这写图形刚好是这篇文章的理解点,所以特地找了篇正确的转过来-------------------------------------------------------BSP 树------解释BSP树的运用,最好是从一个例子开始.设想一个很简单的DOOM关卡的例子. A---------------------------------a----------------------------转载 2011-02-13 07:03:00 · 664 阅读 · 0 评论