GAMES101-L07 着色(光照与基本着色模型)

漫反射

参数:
观测方向 \(v\)
法线 \(n\)
光线方向 \(l\)

着色时是没有阴影的

光均匀地向四面八方散射,所有观察方向的表面颜色都相同。

光线照到表明的角度不同时,反射的亮度也不同,所以用公式 \(\overrightarrow{l}\cdot \overrightarrow{n}\) 来计算

光线衰弱

假设单位方向上单位面积的光照强度为\(I\),则距离为r时的光照强度为 \( \frac{I}{r^2} \)

漫反射模型

\(L_d\) 漫反射光
\(k_d\) 漫反射系数(颜色)
\(\frac{I}{r^2}\)着色点的光照强度
\(\overrightarrow{l}\cdot \overrightarrow{n}\) 着色点接受能量

\(L_d=k_d(\frac{I}{r^2})max(0,\overrightarrow{l}\cdot \overrightarrow{n})\)

镜面反射

当观测方向\(v\)接近于反射方向\(R\)时,镜面反射强度会增大。

布林-冯模型

镜面反射的强度和观测方向\(v\)与反射方向\(R\)的角度有关,但是求出反射方向\(R\)很困难,运算量大,所以布林-冯模型采用光线方向\(l\)和观测方向\(v\)之间的半程向量来代替。

\(h=bisector(v,l)=\frac{\overrightarrow{v}+\overrightarrow{l}}{|\overrightarrow{v}+\overrightarrow{l}|}\)

\(L_s\) 镜面反射光
\(k_s\) 镜面反射系数

\(L_s=k_s(\frac{I}{r^2})max(0,cos\alpha)^p\)
\(=k_s(\frac{I}{r^2})max(0,\overrightarrow{n}\cdot \overrightarrow{h})^p\)

注意到,\(max(0,\overrightarrow{n}\cdot \overrightarrow{h})^p\)乘了p次方,是因为\(cos\alpha\)的镜面反射范围过大,会使高光面积过大。
增加p会使反射波瓣变窄。

图中展示的是\(L_d+L_s\)。当\(k_s\)和\(p\)改变时的高光变化。

环境光

任何物体的任何面,即便没有被光源直接照到,但其他物体反射过去的光仍然可能打到该物体上。由于环境光来自四面八方,计算非常复杂,所以这里大胆假设每个地方接收到的环境光强度完全相同。

\(L_s\) 环境光
\(k_s\) 环境光系数

\(L_a=k_a I_a\)

布林-冯反射模型

布林-冯反射=环境光+漫反射光+高光

\(L=L_a+L_d+L_s\)
\(=k_a I_a+k_d(\frac{I}{r^2})max(0,\overrightarrow{n} \cdot \overrightarrow{l})+k_s(\frac{I}{r^2})max(0,\overrightarrow{n} \cdot \overrightarrow{h})^p\)


知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇