`
tiankefeng0520
  • 浏览: 143350 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论
文章列表
前面介绍的都是给图元添加颜色,纹理绑定介绍的是如果把图片绑定到图元,主要步骤如下:(这里这是简单介绍,后续详细说明) 1.生成纹理IDglGenTextures(1, &texture[0]);2.创建纹理对象glBindTexture(GL_TEXTURE_*D, texture[0]);3.指定纹理内容glTexImage*D();4.指定纹理属性glTexParameteri(…, ......, …)5.激活纹理功能glBindTexture(GL_TEXTURE_*D, texture[0]);6.提供纹理坐标glTexCoord*()   技巧:纹理贴图以逆时针 ...
环境光:环境光来自于四面八方。所有场景中的对象都处于环境光的照射中。漫射光:漫射光由特定的光源产生,并在您的场景中的对象表面上产生反射。处于漫射光直接照射下的任何对象表面都变得很亮,而几乎未被照射到的区域就显得要暗一些。 创建光源的过程和颜色的创建完全一致。前三个参数分别是RGB三色分量,最后一个是alpha通道参数。 glLightfv(GL_LIGHT1, GL_AMBIENT, LightAmbient); //设置1号光源环境光 glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse); //设置1号光源漫射光 glLightfv(GL_LI ...
环境光:那些在环境中进行了充分的散射,无法辨别其方向的光,它似乎来自所有方向 散射光:来自某个方向。因此从它正面照射的表面,看起来更明亮以下。 镜面光:来自特定的方向,并且倾向于从表面的某个特定的方向放射 右图1:环境光 右图2:散射光 右图3:环境光与散射光的混合           创建光源GLAPI void GLAPIENTRY glLightfv (GLenum l
显示列表可以提高性能,因为他可以存储OPENGL的函数,供以后使用,如果需要多次重绘同一个几何图形,或者如果一次需要多次调用的用于更改状态的函数,把这些函数存储在显示列表中(将显示列表中的矩阵结果集保存,后续使用不需要重复计算以提高性能) 当通过网络在另外一台远程计算机上运算OPENGL程序时,把绘画命令保存在显示列表中具有特别重要意义,由于显示列表是服务器的一部分,这样可以减少网络通信,提高性能 显示列表更像是命令缓存器,而不是动态数据库,也就是说当显示列表创建后,就无法修改。同时显示列表的创建也存在一定的系统开销,因此一个小的显示列表未必会提升性能 命名和创建,执行显示 ...
如果想着重显示实心物体的边缘,可以先用GL_FILL模式绘制这个物体,然后再GL_LINE下再次用另外一种不同的颜色再次绘制(如右图),但是由于光栅化的方式不完全相同,因此直线和多边形经过计算后的Z值也可能不同 ,也可能向后,这就导致了线和实心忽浓忽暗的效果(右图2)glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);glutSolidSphere(1.0, 20, 12);glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);glutSolidSphere(1.0, 20, 12); 为了解决这个问题可以是重合的Z值适当的偏移 ...
启用抗锯齿 还是以glEnable来启用抗锯齿,可以根据不同图形进行处理 1. GL_POINT_SMOOTH 点 2. GL_LINE_SMOOTH 线 3. GL_POLYGON_SMOOTH 多边形抗锯齿质量效果越好,那么计算机速度就越慢 glHint用于对点,线,多边形的抗锯齿程度进行设置 1. GL_DONT_CARE 放弃,应该是系统默认吧 2. GL_FASTEST 速度优先 3. GL_NICEST 图形显示质量优先 点抗锯齿(RGBA模式)glPointSize(10); glEnable (GL_POINT_SMOOTH);//启动点抗锯齿 glHin ...
正投影:将物体直接投影到屏幕上,不改变其大小 glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);透视投影:远处的东西看起来要小一些,近处的东西看起来会大一些,这就是透视原理 gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar) 首先得设置gluPerspective,来看看它的参数都表示什么意思 fovy,这个最难理解,我的理解是,眼睛睁开的角度 ...
 场景视图变化类似照相机拍照:1.把照相机固定到三脚架上,并让它对准场景(视图变换)使用gluLookAt 设置视图变换2.对场景进行安排,是各个物体在照片中的位置是我们所希望的(模型变换)使用模型变换的目的是设置模型的位置和方向,如,缩放,旋转灯3.选择照相机镜头,并调整放大的倍数(投影变换)正投影与透视投影4.确定最终照片的大小(视口变换)glViewport   透视投影 透视投影最显著的特征就是透视缩短,即越近的物体越大,越远的物体越小glFrustum(left,right,bottom,top,near,far)对于此函数,可将近观察者平面中心近似原点。Left 为原点左半 ...
  产生原因OpenGL是按照CS结构设计的,当OPENGL需要数据的时候,必须从客户机内存传递到服务器,如果客户机和服务器属于不同的计算机,这样的数据效率缓慢,并且有时是冗余的 做法:1.创建缓冲区对象 glGenBuffers(N ...
  产生原因: Opengl对几何图元的绘制需要大量的函数调用,每个函数调用都需要时间,为了减少这部分时间。减少图元绘制过程调用的函数步骤:1.激活 glEnableClientState(param) GL_VERTEX_ARRAY GL_COLOR_ARRAY GL_SECONDARY_COLOR_ARRAY GL_INDEX_ARRAY GL_NORMAL_ARRAY GL_FOG_COORDINATE_ARRAY GL_TEXTURE_COORD_ARRAY GL_EDGE_FLAG_ARRAY2.指定数组的数据 glColorPointer glSecondaryCo ...
glBegin(GL_QUADS); glVertex3f( 1.0f, 1.0f,-1.0f); // 四边形的右上顶点 (顶面) glVertex3f(-1.0f, 1.0f,-1.0f); // 四边形的左上顶点 (顶面) glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下顶点 (顶面) glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下顶点 (顶面) glVertex3f( 1.0f,-1.0f, 1.0f); // 四边形的右上顶点(底面) glVertex3f ...
  glRotatef(quard,x,y,z);   旋转函数 quard 旋转角度 x,y,z 绕着(x,y,z)轴旋转 glRotatef(rtri,0.0f,1.0f,0.0f); glBegin(GL_TRIANGLES);  glColor3f(1.0f,0.0f,0.0f);  glVertex3f( 0.0f, 1.0f, 0.0f);  glColor3f(0.0f,1.0f,0.0f);  glVertex3f(-1.0f,-1.0f, 0.0f);  glColor3f(0.0f,0.0f,1.0f);  glVertex3f( 1 ...
1.分别给点进行添加颜色 glBegin(GL_TRIANGLES);  glColor3f(1.0f,0.0f,0.0f);  glVertex3f( 0.0f, 1.0f, 0.0f);  glColor3f(0.0f,1.0f,0.0f);  glVertex3f(-1.0f,-1.0f, 0.0f);  glColor3f(0.0f,0.0f,1.0f);  glVertex3f( 1.0f,-1.0f, 0.0f); glEnd();2.为图形整体添加颜色 glColor3f(0.5f,0.5f,1.0f); glBegin(GL_QUADS);  glVertex3f(-1.0f ...
glBegin(GL_TRIANGLES);  glVertex3f( 0.0f, 1.0f, 0.0f);  glVertex3f(-1.0f,-1.0f, 0.0f);  glVertex3f( 1.0f,-1.0f, 0.0f); glEnd();   begin end 中间是构成矢量图形的点   #define GL_POINTS                         0x0000#define GL_LINES                          0x0001#define GL_LINE_LOOP                      0 ...
清除窗口clearColor(R,G,B,A);//1clear(GL_COLOR_BUFFER_BIT) //2GL_COLOR_BUFFER_BIT  //颜色缓冲区GL_DEPTH_BUFFER_BIT  //深度缓冲区GL_ACCUM_BUFFER_BIT  //累计缓冲区GL_STENCIL_BUFFER_BIT //模板缓冲区2处清除窗口并且以1处的颜色进行填充   glcolor 指定颜色 glFlush 强制执行OPENGL指令,相当于refresh glFinish 强制执行OPENGL指令,相当于Update   图元绘制glBeg ...
Global site tag (gtag.js) - Google Analytics