OpenGL
文章平均质量分 73
xiaochun91103
亲亲子衿,悠悠我心。
展开
-
OpenGL多边形的绘制(多个三角形连接)
上一篇博客介绍怎么画三角形,这篇文章介绍怎么样画连续的三角形。使用图元GL_TRIANGLE_STRIP可以绘制连续的三角形。废话不多说了,直接上代码了。#include void RenderScene(void){ glClear(GL_COLOR_BUFFER_BIT); //清除颜色 glBegin(GL_TRIANGLE_STRIP); //划线原创 2012-05-31 20:04:23 · 5316 阅读 · 0 评论 -
OpenGL多边形的绘制(三角形)
画个三角形吧,OpenGL中最简单的多边形。今天就使用GL_TRIANGLES图元绘制三角形。直接上代码了:#include void RenderScene(void){ glClear(GL_COLOR_BUFFER_BIT); //清除颜色 glBegin(GL_TRIANGLES); //划线 glVertex2f(0.0f,0.0f);原创 2012-05-27 22:10:41 · 1986 阅读 · 0 评论 -
OpenGL几何图元和缓冲区(二)
我们在空间中绘制点时可以指定点的大小。默认情况下点的大小是一个像素,我们可以使用void glPointSize(GLfloat size)。但是点的大小是有限制的,我们可以使用下面的代码点大小的范围以及他们之间的间隔值。GLfloat size[2]; //存储点大小的最小和最大值GLfloat step; //存储点大小增量glGetFloatv(GL_POINT_SIZE_RAN原创 2012-01-05 22:13:45 · 1247 阅读 · 0 评论 -
OpenGL几何图元和缓冲区(一)
图元:组成图形的基本单元。下面记录如何在3D空间中绘制图形。1.设置3D画布我们可以把计算机屏幕的宽看做X轴,高看做Y轴,计算机屏幕正对我们的方向看成Z轴。下图绘制的就是一张空间坐标系:3D空间中的点:我们会使用OpenGL函数glVertex进行顶点的绘制。例如:glVertex3f(50.0f,50.0f,50.0f);//三个参数分别表示x,y,z轴的原创 2012-01-04 23:02:55 · 1810 阅读 · 0 评论 -
OpenGL基础知识(五)
OpenGL状态机在OpenGL中使用状态机的机制去存储OpengL当前的状态。所谓的OpenGL状态机也就是一组OpenGL的状态集合。有一些状态可以打开或关闭,可以通过glEnable(GLenum capability)函数进行打开,glDisable(GLenum capability)对状态进行关闭。如果要获取某个状态是否被打开,可以使用Glboolean glIsEnabled(G原创 2012-01-02 22:01:31 · 9008 阅读 · 0 评论 -
OpenGL基础知识(四)
今天将继续修改OpenGL基础知识(三)中的例子,并进行了一些简单的动画绘制。在编写代码之前先介绍一下函数glutTimerFunc(unsigned int msecs,void (*func) (int value),int value); 这个函数是GLUT库中的函数,主要功能是再等待msecs秒之后,执行func函数,并且可以通过value向这个函数传递参数。程序代码如下:#inc原创 2011-12-31 00:09:53 · 1297 阅读 · 0 评论 -
OpenGL基础知识(三)
今天讲一下如何在OpenGL中绘制一些简单的图形。现在把OpenGL基础知识(二)中编写的程序做一下简单的修改,源代码如下:#include void RenderScene(void){glClear(GL_COLOR_BUFFER_BIT); //清除颜色glColor3f(0.0f,1.0f,0.0f); //设置颜色为绿色glRectf(-25.0f,25原创 2011-12-30 00:28:19 · 1360 阅读 · 2 评论 -
OpenGL几何图元和缓冲区(五)
在OpenGL中绘制直线的时候,可以通过glLineWidth(GLfloat width)函数来设置直线的宽度。参数指定了直线的宽度,单位是像素。直线的宽度也有一个范围和相邻两个宽度之间的间隔,我们可以通过以下代码来获取直线的宽度:GLfloat size[2];GLfloat step;GLGetFloatv(GL_LINE_WIDTH_RANGE,size);GLGetFlo原创 2012-01-13 00:09:22 · 1338 阅读 · 0 评论 -
OpenGL几何图元和缓冲区(四)
线段和闭合线段图元GL_LINE_STRIP会连接起所有的点,但是首尾两点不连接。以下代码段将演示:glBegin(GL_LINE_STRIP); glVertex3f(0.0f,0.0f,0.0f); glVertex3f(10.0f,15.0f,0.0f); glVertex3f(100.0f,0.0f,0.0);glEnd();另外一个图元GL_原创 2012-01-11 23:36:03 · 938 阅读 · 0 评论 -
OpenGL几何图元和缓冲区(三)
今天学习一下在3D空间中如何画直线。通过指定图元GL_LINES可以再空间中画一条直线。下面的代码段将画一条直线:glBegin(GL_LINES); glVertex3f(0.0f, 0.0f, 0.0f); glVertex3f(30.0f, 30.0f, 30.0f);glEnd();这里有一点需要注意,空间中每两个顶点确定一条直线。如果有奇数个点,最后一原创 2012-01-11 00:02:08 · 1005 阅读 · 0 评论 -
OpenGL基础知识(二)
今天就看一个世界上最简单的OpenGL程序。#include void RenderScene(void){glClear(GL_COLOR_BUFFER_BIT); //清除颜色glFlush(); //刷新}//设置渲染void SetupRC(void) {glClearColor(0.0f,0.0f原创 2011-12-28 23:00:22 · 1089 阅读 · 0 评论 -
OpenGL基础知识(一)
OpenGL的基本数据类型为了使OpenGL能够更好的从一个平台移植到另一个平台,OpenGL定义了它自己的数据类型。但是这些类型都可以映射到正常的C/C++数据类型。尽管如此,各种不同的编译器和操作系统可能会使用自己平台相关的数据类型的大小和占用的存储空间。使用OpenGL定义的类型可以避免因为类型的不一致所造成的影响。下图是OpengL中定义的数据类型:以下表格是OpenG原创 2011-12-27 22:37:15 · 1614 阅读 · 1 评论 -
OpenGL基础知识扫盲
最近想研究一下OpenGL相关技术。现在把图形程序开发过程中用到的一些术语记录下来,方便查阅。我们平时在计算机屏幕上看到的一些3D图形其实都是伪3D的。计算机屏幕是2D的,OpenGL所做的工作就是通过一系列的透视和着色等技巧在2D的计算机屏幕上绘制出模拟的3D图形。在OpenGL中用到比较多的一个术语叫渲染(Render).渲染(Render)就是对一个3D的物体通过几何的角度进原创 2011-12-24 21:17:10 · 1124 阅读 · 1 评论 -
OpenGL几何图元和缓冲区(六)
前一阵子项目太忙了,Arabic的Bidi问题搞的头大。这阵子闲一点了,继续OpenGL的学习吧。今天学习一下OpenGL中点划线的绘制。要想用OpengL画点划线必须先开启点划线功能。函数如下:glEnable(GL_LINE_STIPPLE)//开启点划线支持glDisable(GL_LINE_STIPPLE)//关闭点划线功能点划线功能打开之后就可以画点划线了,函数如下:原创 2012-05-27 00:24:42 · 2530 阅读 · 0 评论