Opengl
jena_wy
这个作者很懒,什么都没留下…
展开
-
透视函数glFrustum(), gluPerspective()函数用法和glOrtho()函数用法.
在OpenGL中,如果想对模型进行操作,就要对这个模型的状态(当前的矩阵)乘上这个操作对应的一个矩阵.如果乘以变换矩阵(平移, 缩放, 旋转), 那相乘之后, 模型的位置被变换;如果乘以投影矩阵(将3D物体投影到2D平面), 相乘后, 模型的投影方式被设置;如果乘以纹理矩阵(), 模型的纹理方式被设置.而用来指定乘以什么类型的矩阵, 就是glMatriMode(GLenum mod转载 2017-11-03 16:19:31 · 546 阅读 · 0 评论 -
光源设置
1、控制光源glEnable(GL_LIGHT0);可以开启第0号光源glLight*函数具有三个参数,第一个参数指明是设置哪一个光源的属性,第二个参数指明是设置该光源的哪一个属性,第三个参数则是指明把该属性值设置成多少每一个光源都可以设置其属性,这一动作是通过glLight*函数完成的。glLight*函数具有三个参数,第一个参数指明是设置哪一个光源的属性,第二个参数指明是设置该转载 2017-11-04 16:34:42 · 740 阅读 · 0 评论 -
Opengl---gluLookAt函数详解
下面的一段摘自百度百科:视点转换函数原型void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz);该函数定义一个视图矩阵,并与当前矩阵相乘。第转载 2017-11-04 15:28:09 · 406 阅读 · 0 评论 -
opengl 图像缩放和只画线
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);//设置只画线,前后都设置成线。void glPolygonMode(GLenum face,GLenum mode);face这个参数确定显示模式将适用于物体的哪些部分,控制多边形的正面和背面的绘图模式:GL_FRONT表示显示模式将适用于物体的前向面(也就是物体能看到的面)GL_BAC转载 2017-10-14 11:04:15 · 825 阅读 · 0 评论 -
opengl帧率的计算
int frame=0,time=0,timebase=0; void ShowFrameRate(){ char s[100]={0}; frame++; time=glutGet(GLUT_ELAPSED_TIME); if (time - timebase > 1000) { sprintf(s,"FPS:%4.2f",原创 2017-10-14 16:14:16 · 4150 阅读 · 2 评论 -
第一个Opengl
#include #pragma comment(lib,"glut.lib")void display(){glClear(GL_COLOR_BUFFER_BIT );glClearColor(0,0,0,0);glBegin(GL_LINES);glVertex2f (0, 0);glVertex2f (0.1, 0.1);glEnd();原创 2017-10-31 10:03:15 · 174 阅读 · 0 评论 -
画五角星
#include #pragma comment(lib,"glut.lib")#include#define PI 3.14//进行绘制void DrawGLScene(GLvoid){ glClear(GL_COLOR_BUFFER_BIT); glClearColor(0,0,0,0); double point[5][2];原创 2017-11-02 11:27:34 · 436 阅读 · 0 评论 -
画圆
glBegin(GL_LINES); for (i = 0; i { glVertex2f(R*cos(2*pi/n*i), R*sin(2*pi/n*i)); } glEnd();原创 2017-11-02 11:36:18 · 212 阅读 · 0 评论 -
虚线设置
虚线glLineStipple(1, 0xf0);glEnable(GL_LINE_STIPPLE);原创 2017-11-02 12:02:23 · 225 阅读 · 0 评论 -
画正方体
#include #pragma comment(lib,"glut.lib")#includevoid draw(){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINES); //正面 glVertex3d(0,0,0); glVertex3d(0,0.5,0); g原创 2017-11-02 15:11:39 · 304 阅读 · 0 评论 -
画球体
#include #pragma comment(lib,"glut.lib")#include#define MAX_NUM 50#define MAX_Z 50#define PI 3.14#define R 0.9void display(){ glClear(GL_COLOR_BUFFER_BIT); glRotated(30,1,0,原创 2017-11-02 16:45:10 · 264 阅读 · 0 评论 -
颜色设置值
void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0f, 1.0f, 1.0f); glRectf(-0.5f, -0.5f, 0.5f, 0.5f); glFlush();}注意:glColor系列函数,在参数类型不同时,表示“最大”颜色的值也不同。采转载 2017-11-03 15:32:59 · 235 阅读 · 0 评论 -
opengl入门
说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合。OpenGL命令最初就转载 2017-11-03 15:45:43 · 1595 阅读 · 0 评论 -
glMatrixMode
1、模型变换和视图变换从“相对移动”的观点来看,改变观察点的位置与方向和改变物体本身的位置与方向具有等效性。在OpenGL中,实现这两种功能甚至使用的是同样的函数。由于模型和视图的变换都通过矩阵运算来实现,在进行变换前,应先设置当前操作的矩阵为“模型视图矩阵”。设置的方法是以GL_MODELVIEW为参数调用glMatrixMode函数,像这样:glMatrixMode(GL_MODE转载 2017-11-03 15:57:30 · 298 阅读 · 0 评论 -
glViewport含义
glViewport(GLint x,GLint y,GLsizei width,GLsizei height)为其函数原型。X,Y————以像素为单位,指定了视口的左下角(在第一象限内,以(0,0)为原点的)位置。width,height————表示这个视口矩形的宽度和高度,根据窗口的实时变化重绘窗口。转载 2017-11-03 16:47:40 · 709 阅读 · 0 评论 -
双缓冲技术
1、双缓冲技术在计算机上的动画与实际的动画有些不同:实际的动画都是先画好了,播放的时候直接拿出来显示就行。计算机动画则是画一张,就拿出来一张,再画下一张,再拿出来。如果所需要绘制的图形很简单,那么这样也没什么问题。但一旦图形比较复杂,绘制需要的时间较长,问题就会变得突出。让我们把计算机想象成一个画图比较快的人,假如他直接在屏幕上画图,而图形比较复杂,则有可能在他只画了某幅图的一半的时候就被转载 2017-11-03 17:35:10 · 494 阅读 · 0 评论 -
图像缩放glScalef
glScalef是openGL中的模型缩放函数,就是把当前矩阵与一个表示延各个轴对物体进行拉伸、压缩、反射的矩阵相乘。这个物体的每个点的x,y,z坐标与对应的xyz参数相乘。先看函数定义void glScalef(GLfloatx, GLfloat y, GLfloat z);参数x,y,z分别为模型在x,y,z轴方向的缩放比。例如:转载 2017-11-10 11:11:58 · 4940 阅读 · 0 评论 -
绘制文字
增加了两个文件,showline.c, showtext.c。分别为第二个和第三个示例程序的main函数相关部分。在ctbuf.h和textarea.h最开头部分增加了一句#include 附件中一共有三个示例程序:第一个,飘动的“曹”字旗。代码为:flag.c, GLee.c, GLee.h第二个,带缓冲的显示文字。代码为:showline.c, ctbuf.c, ctbuf.h转载 2017-11-07 16:24:38 · 773 阅读 · 0 评论 -
显示列表
OpenGL在即时模式(Immediate Mode)下绘图时,程序中每条语句产生的图形对象被直接送进绘图流水线,在显示终端立即绘制出来。当需要在程序中多次绘制同一个复杂的图像对象时,这种即时模式会消耗大量的系统资源,降低程序的运行效率,为此,OpenGL提供了一种更有效组织OpenGL语句的形式——显示列表。OpenGL使用显示列表方式绘图一般要比瞬时方式快,尤其是显示列表方式可以大量地提高转载 2017-11-04 18:10:10 · 328 阅读 · 0 评论