随笔分类 - opengl
摘要:(1)GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR属性。这三个属性与光源的三个对应属性类似,每一属性都由四个值组成。GL_AMBIENT表示各种光线照射到该材质上,经过很多次反射后最终遗留在环境中的光线强度(颜色)。GL_DIFFUSE表示光线照射到该材质上,经过漫反射后形成的光线强度(颜色)。GL_SPECULAR表示光线照射到该材质上,经过镜面反射后形成的光线强度(颜色)。通常,GL_AMBIENT和GL_DIFFUSE都取相同的值,可以达到比较真实的效果。使用GL_AMBIENT_AND_DIFFUSE可以同时设置GL_AMBIENT和GL_DIFFUSE属性。 (
阅读全文
摘要:今天,用opengl实现bezier曲线的绘制,但是当我将控制点增加到九个的时候,程序死活绘制不出图像。后来经过一番折腾,终于知道,是xp系统的问题,程序在win7上可以正常运行。下面我附上我的主要程序第一段是利用glEvalCoord1f()函数先生成离散点,然后用直线链接。 glShadeModel(GL_FLAT); glColor3f(1.0,0.0,0.0); GLfloat controlPoint[9][3] = { {-1.0f,0.0f,0.0f},{-0.75f,0.707f,0.0f},{-0.5f,1.0f,0.0f}, {-0.25f,0.707f,0.0f...
阅读全文
摘要:几乎所有OpenGL应用目的都是在屏幕窗口内绘制彩色图形,所以颜色在OpenGL编程中占有很重要的地位。这里的颜色与绘画中的颜色概念不一样,它属于RGB颜色空间,只在监视器屏幕上显示。另外,屏幕窗口坐标是以象素为单位,因此组成图形的每个象素都有自己 的颜色,而这种颜色值是通过对一系列OpenGL函数命令的处理最终计算出来的。本章将讲述计算机颜色的概念以及OpenGL的颜色模式、颜色定义和两种模式应用场合等内容,若掌握好颜色的应用,你就能走进缤纷绚丽的色彩世界,从中享受无穷的乐趣。9.1、计算机颜色 9.1.1 颜色生成原理 计算机颜色不同于绘画或印刷中的颜色,显示于计算机屏幕上每一个点的颜..
阅读全文
摘要:今天看了看opengl的融合技术,联系前一段时间老师让我改的一个用他自己的框架实现的3d物体透明融合的程序,感觉到老师说的思路,不可以实现。因为三维的透明物体,简单的使用融合功能和融合因子是不够的,三维物体有远近,因此三维物体的绘制过程是利用的是深度缓冲技术。这样的话,对于绘制透明物体与不透明物体,顺序是十分关键的。一般来说,应该先画不透明物体,因为透明物体的绘制需要opengl的融合功能,glEnable(GL_BLEND);,但是融合功能一旦启动,会影响后继物体的着色。但是先画不透明物体,又会产生新的问题。因为透明物体往往在不透明物体的前面,所以在深度测试中,透明物体的点会通过测试,所以.
阅读全文
摘要:今天看了看二次曲面的纹理映射,二次曲面是用glu库画的。下面的三个函数是主要代码。quadratic=gluNewQuadric();// 创建二次几何体 gluQuadricNormals(quadratic, GLU_SMOOTH);/// 使用平滑法线gluQuadricTexture(quadratic, GL_TRUE);// 使用纹理
阅读全文
摘要:今天看书学习了opengl状态机,以及opengl的属性压栈。opengl把各类有属性的变量称为管线的状态。状态机是一个抽象模型,是一组状态变量的集合。当一个状态变量被设置后,他会一直保持直到下一次改变。例如,void glEnable(GLenum capability);//打开此类型void glDisable(Glenum capability);//关闭此类型void glIsEnable(GLenum capability);//检测变量的状态void glGetBooleanv(GLenum pname,GLboolean *params);void glGetDoublev(G
阅读全文

浙公网安备 33010602011771号