【OpenGL进阶笔记】
文章平均质量分 86
杜晓萌
这个作者很懒,什么都没留下…
展开
-
OpenGL中的光照与材料
OpenGL中的光照与材料 在OpenGL光照模型中,除非一个物体自己会发光,否则它将受到3种不同类型的光的照射,这3种不同类型的光分别是:环境光(ambient)、散射光(diffuse)和镜面光(specular)。作为现实世界中光照的抽象,这3种类型的光允许我们模拟和控制光照在物体表面上所产生的效果。 环境光(ambient) 环境光并原创 2014-11-23 10:29:24 · 3102 阅读 · 0 评论 -
在OpenGL中给场景添加光照
在OpenGL中给场景添加光照 为了在OpenGL中使用光照计算,我们需要调用glEnable方法,并用GL_LIGHTING作为参数。这个调用告诉OpenGL在确定场景中每个顶点的颜色时使用光照参数和材料属性。当然,如果我们没有指定任何光照参数和材料属性,那么物体仍将会保持为黑暗的无光照状态。 // 启用光照 glEnable(GL_LIG原创 2014-11-25 22:15:20 · 13946 阅读 · 0 评论 -
OpenGL中的颜色混合功能(一)
OpenGL中的颜色混合功能(一) 我们知道,材料属性和光照参数可以极大地增加图形的逼真度,但除此之外,我们在对现实世界进行建模时,有许多效果是通过混合颜色的方式实现的。透明的物体,像是玻璃水杯,在它后面发射过来的光会与透明物体的颜色混合在一起。这种透明在OpenGL中的实现方式,是通过首先绘制背景物体,然后把前景物体(比如水杯)与颜色缓冲区中已经存在的颜色进行混合而原创 2015-01-11 20:28:32 · 4889 阅读 · 0 评论 -
OpenGL中启用光照前的准备——指定法线
OpenGL中启用光照前的准备——指定法线 我们在使用光源时,除了强度和颜色之外,还需要指定光源的位置和方向,并且这些光源的位置和方向将会极大地影响场景的外观。 OpenGL至少支持8种独立的光源。当我们指定一个光源时,便要告诉OpenGL这个光源的位置以及它的照射方向。光源经常向四周照射,但也可以向一个方向照射。无论在哪种情况下,对于我们所绘制的任何物原创 2014-12-07 08:21:33 · 7247 阅读 · 1 评论 -
OpenGL中创建聚光灯的效果
OpenGL中创建聚光灯的效果 现在,我们使用如下的数组来指定一个光源的位置: // 指定光源位置的数组 GLfloat lightPos[] = {0.0f, 0.0f, 75.0f, 1.0f}; // 设置光源0的位置 glLightfv(GL_LIGHT0,GL_POSITION,ligh原创 2014-12-29 21:43:15 · 9222 阅读 · 1 评论 -
OpenGL中设置光照的镜面反射效果
OpenGL中设置光照的镜面反射效果 在上一篇笔记中,我们记述了光线的方向与多边形表面的角度计算关系,除此之外,我们还有光源的位置需要指定。我们在ChangeSize函数的内部指定光源的位置: // 指定光源的位置 GLfloat lightPos[] = {-50.0f, 50.0f, 100.0f, 1.0f}; glLightf原创 2014-12-14 16:45:29 · 8389 阅读 · 1 评论 -
OpenGL中的颜色混合功能(二)——抗锯齿的处理
在OpenGL中,混合功能的另一个用途是抗锯齿的处理。在绝大多数情况下,一个渲染片段映射到计算机屏幕上的一个像素。因为这些像素都是正方形的,所以通常我们可以清晰的看到两种不同颜色的分界,它们就是我们通常所说的锯齿。锯齿的出现会让人觉得图像是不自然的,极为影响观感。这种锯齿现象是计算机所产生的图像的弱点,这对于我们的许多要求尽可能逼真的渲染任务,都带来了消极的影响。 为了消除图原创 2015-01-18 13:14:07 · 4481 阅读 · 0 评论 -
OpenGL中的多重采样
OpenGL中的多重采样 抗锯齿处理的最大优点之一就是它能够使多边形的边缘更为平滑,使渲染效果显得更为逼真和自然。点和直线的抗锯齿处理是得到广泛支持的,但遗憾的是,对多边形的平滑处理并没有在所有平台上都得到实现。并且,即使在可以使用GL_POLYGON_SMOOTH的时候,对整个场景进行抗锯齿处理也没有想象中的那么方便。这是因为,抗锯齿处理是基于混合操作的,这就需要从前到后对所原创 2015-01-24 22:57:57 · 11627 阅读 · 1 评论