光照
- 分析一下光照是怎么个回事
- 光源被认为有四种
- 点光源:从一点向四面八方发出光线
- 聚光灯:从一点朝一个方向发出光线,且只在一定的角度内有光,离中心越近越亮
- 无穷远:平行光
- 环境光:错综复杂的给每处物体都均匀的打光
- 材质有三种,也就是对光有三种反射
- 镜面反射面:镜面反射光
- 漫反射 :均匀反射光
- 透明面:折射光
- 光源被认为有四种
Phong光照明模型
- 这个人叫Phong不用怀疑了
- 光线被分成了三类,分别用三个参数来刻画
- 漫反射光:Ldr,Ldg,Ldb
- 镜面反射光:Lsr,Lsg,Lsb
- 环境光:Lar,Lag,Lab
- 光线怎么能这样分?其实这只是计算的一种模型,并没有物理意义
- 材质被分为了三个属性,也分别用三个参数来刻画
- 漫反射系数:Rdr,Rdg,Rdb
- 镜面反射系数:Rsr,Rsg,Rsb
- 环境反射系数:Rar,Rag,Rab
- 对于一个顶点,有四个向量来刻画其光照
- 法向量 n
- 入射向量 l
- 理想反射向量 r
- 视线向量 v
- 且均规定为以顶点为起点的单位向量
- 计算的时候也分为镜面、漫和环境三类,之后再叠加起来即得到光照下的颜色
向量nlvr
- 向量n由程序指定,glNormal
- 向量l为顶点指向光源位置的单位向量
- 向量v为顶点指向相机位置的单位向量
- 向量r由公式求得,在n为单位向量下,l 无论是不是单位向量
r=2∗(l⋅n)∗n−l
求解颜色
- 漫反射
Id=Rd∗max(l⋅n,0)∗Ld
- Rd为漫反射系数,讲道理应该在0到1之间
- Ld为漫反射光的强度
- l·n为入射方向和法向二者夹角的cos值,也就是说入射方向与法向夹角越大,认为漫反射的衰减越强。超过90度则cos为负,但光强没有负值,且超过90度就认为漫反射不起作用,所以乘0
- 镜面反射

本文介绍了OpenGL中的光照模型,重点讲解了Phong光照明模型和Blinn-Phong模型。内容包括点光源、聚光灯、无穷远光和环境光的定义,以及材质的镜面反射、漫反射和透明特性。详细阐述了Phong模型中的向量nlvr、颜色计算方法,以及Blinn-Phong模型如何简化计算,提高效率。
最低0.47元/天 解锁文章

1086

被折叠的 条评论
为什么被折叠?



