首页 > 其他 > 详细

CS184.1X 计算机图形学导论 第7讲 V1-3 学习笔记

时间:2018-09-14 00:32:11      阅读:254      评论:0      收藏:0      [点我收藏+]

L7V1:OPENGL 着色:学习动机

1.光照的重要性

1)能够真正显示出形状感知的外观;

2)准确的着色和光照对对传达物体的形状非常重要;

3)着色的方式也十分重要:平面着色(GL_FLAT)、平滑着色(GL_SMOOTH)。

2.颜色

1)RGB模式:分为Red、Green、Blue三个通道

技术分享图片

2)RGBA模式:OpenGL中常用此模式,A代表着透明度,每个通道占8bit,总共4字节。

L7V2:OPENGL 着色:Gouraud and Phong Shading

1.Gouraud Shading--标准的平滑着色

技术分享图片

1)方法:采用线性插值的方法进行平滑着色;

2)变量说明:I1、I2、I3分别为三个顶点的颜色值,Ip为所要求的颜色值,Ia、Ib为横向扫描线上的交点;

3)公式推导:

a.首先沿Y轴方向插值,得到Ia、Ib

技术分享图片技术分享图片

b.在扫描线上沿X轴方向插值,得到Ip

技术分享图片

4)极端情况:当以上公式分母等于0时,该公式无法进行插值;

      解决方法:将模型细化,分割成足够多的三角形。

2.Phong Shading (≠ Phong Illumination)

1)思想:不是对颜色进行插值,而是对法向量进行插值;

2)整个光照计算是逐个像素进行的;

L7V3:OPENGL 着色:光照和着色

1.光源

1)属性:Position、Color;

2)衰减模型:

技术分享图片其中:atten代表光强,d代表距离,kc、kl、kq为常数;

3)常数设置(一般情况下,假设光源不存在能量衰竭):

a)点光源:(kc, kl, kq)=(0, 0, 1);

b)线光源:(kc, kl, kq)=(0, 1, 0);

c)面光源(方向光源):(kc, kl, kq)=(1, 0, 0),此处忽略光强衰减;

2.材质

1)计算法向量 -->进而计算漫反射、镜面反射的反射方向;需要计算出每一个顶点的法向量;

     一些由GLUT提供的图形,GLUT已经计算好了法向量;

2)着色模式:

A)环境光(Ambient):即使没有光照射到表面,仍然有光在屋内来回反射,并且产生了漫反射或环境光的感觉;需要设置一个环境光强度,一般来说很小,使不存在黑色的像素;

B)漫反射(Diffuse):对应粗糙不光滑的表面,如墙壁、地板;光均匀地向各个方向反射;

C)镜面反射(Specular):对应于光滑的物体;

D)发射光(Emissive):对应于太阳光等光源,对应于直接看向光源发出的光,而不是反射方向的,在OpenGL中,想看到光源还必须创建光源的几何体;

3.Phong Illumination

1)简单依赖于视点的高光,不基于物理;

 2)思想:a)在镜面反射上,选择视线和反射光线之间进行点积,更进一步,给cos项加上指数来控制表面的光泽度,高光到底有多亮;b)取光源、视线之间的角度的一半,求视线和法向的点积,这样会更接近;

3)Phong Formula

技术分享图片

4)Blinn-Phong Formula

技术分享图片

 

CS184.1X 计算机图形学导论 第7讲 V1-3 学习笔记

原文:https://www.cnblogs.com/mzyan/p/9641982.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!