OpenGL
若泣
若不离,何泣------超越自己,只是为了能看清自己~
展开
-
在VS2013中配置Opengl
首先我们需要关于Opengl的一系列文件。传送门:http://pan.baidu.com/s/1i3tgmkH下载解压之后会出现3种后缀为.dll、.lib、.h的文件。我们需要把这些不同类型的文件放在不同的地方。所有把.H结尾的文件全部放在VS安装目录下的\VC\include\GL中,如果没有GL文件夹,则自己新建一个。把.LIB结尾的文件全部放在VS安装目录下的\V原创 2015-05-12 21:41:26 · 9638 阅读 · 2 评论 -
第一个OpenGL程序
刚开始学习OpenGL,感觉这个挺有趣的(在绘制三维模型时,空间想象能力要求比较高,不然很头疼的)。新东西,新心情。。。来一发红色三角形。我就是要通过OpenGL来绘制一个红色的三角形。现在我们来看一下代码:#include void display(){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深原创 2015-05-20 20:17:36 · 731 阅读 · 0 评论 -
OpenGL三角形的双面不同颜色的绘制
对于一个三角形,我要给它正反面不同的颜色。然后通过旋转,看出它的效果。我只想到了2种方法,下面我来写一下这两种方法。第一种方法,通过角度的判断重设glColor3f的参数(这种方法局限性很大,不推荐,不喜欢的可以直接跳过看第二种)。对于一个平面,我们知道,当它旋转到一定角度的时候,它就变成了一条线,那么,我们只要对这个角度进行一下判断就可以了。下面是我的测试代码:#includ原创 2015-05-26 20:50:12 · 4044 阅读 · 0 评论 -
OpenGL二十面体及多次细分成球体
绘制一个规则的二十面体,通过多边形近似模拟法来构建表面。在绘制前,我们需要初始化一些数据:#define X .525731112119133606 //使原点到每个顶点的距离均为1.0#define Z .850650808352039932//顶点坐标static GLfloat vdata[12][3] = { { -X, 0.0, Z }, { X, 0.0, Z },原创 2015-05-30 13:24:50 · 6165 阅读 · 2 评论 -
OpenGL之gluPerspective浅析
gluPerspective是OpenGL中的一个函数。函数的原型gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);fovy:视角的大小。什么是视角?视景体到视线原点之间所成的上下角度。aspect:宽和高的比例。zNear:视景体与视线原点的最小距离(必须为正数)。z原创 2015-05-22 15:54:32 · 5516 阅读 · 0 评论 -
OpenGL之裁剪平面
在OpenGL中,除了视景体的6个裁剪面(左、右、顶、底、远和近)外,我们还可以指定最多6个裁剪面。我们知道,一个平面,它是由Ax+By+Cz+D = 0这个三元一次函数构成。是怎么样一个平面,就由这个函数的系数决定。那么,有这样一个函数:void glClipPlane(GLenum plane, const GLdouble* equation);这个函数就是用来指定裁剪面的。原创 2015-06-01 20:25:37 · 9014 阅读 · 0 评论 -
OpenGL中的深度缓存
在说深度缓存前先来了解一下什么是深度?深度,在日常生活中,这个词可以用来形容比如说一口井有多少深,即是一个距离,在OpenGL中也是一样的,不过它是用z坐标来描述的。一般地,z轴的坐标原点在屏幕上,屏幕里为负轴,向外为正轴。我们通过眼睛可以看井的里面,那么在OpenGL中眼睛描述为摄像机。一般地,摄像机的初始位置在OpenGL窗口的正中心。说了什么是深度,接下来就来说一下什么是深度缓存(区原创 2015-05-25 20:57:42 · 4271 阅读 · 0 评论