4.2.3两个问题
问题(1)如何让光源运动?
glLightfv(GL_LIGHT0,GL_POSITION,vLitPosition)
直接变化vLitPosition中的值;光源可以认为是一个几何物体,将受到其前面的几何变换的影响。
问题(2)光照下物体的颜色由什么来决定?
光的颜色:glLightfv()…
物体的材质:glMaterialfv()…
glColor*()没用了吗?
glColor*()确实没用了,但可以通过如下方式发生作用:
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT);
OpenGL中的光照明设置
1、OpenGL中的光照明模型
2、设置物体的法向
3、设置光照参数的语句
4、设置材质参数的语句
5、聚光灯参数
6、光照衰减参数
7、方向光源与位置光源
8、本地视点/无限远视点
9、双面光照
10、如何让光源运动
11、光照下物体的颜色
4.3光照计算发生在图形流水线的那个阶段?
光照计算发生在那个阶段?
在固定流水线中,光照计算默认发生在顶点处理阶段。
为什么要这样做呢?
——为了效率!
在顶点处理阶段,计算出了三角形每个顶点的光照,那么三角形所覆盖的每个像素的光照值如何得到?
——光栅化阶段可得到
4.4.1常数明暗处理与Gouraud明暗处理
Shading(明暗处理、着色)
Shading->计算三角形内每个像素的颜色的过程
几种常见处理方法
1、常数明暗处理
2、Gouraud明暗处理(Gouraud shading)