视频加载失败

Shading 着色1

292 字
1 分钟
Shading 着色1
Shading 着色1

Z-Buffer 深度缓冲#

  • 用来描述像素的前后关系
  • 每个像素存储对应的深度值
    • frame buffer帧缓冲存储像素的颜色
    • depth buffer深度缓冲存储像素的深度值

Z-Buffer 要求#

  1. z∈[0,1]z\in[0,1]
  2. z更小更近,更大更远
// 深度缓存初始化为∞
for(each triangle T)
for(each sample(x,y,z) in T)
if(z < z_buffer[x,y])
z_buffer[x,y] = z;
frame_buffer[x,y] = rgb;
else
...

Bling- Phong反射模型#

  • 高光:镜面反射
  • 漫反射
  • 环境光照

一些概念和符号#

  • shading point 着色点:在物体表面
  • inputs 光线方向 II:指向光源
  • 法线方向 nn
  • viewer direction观测者方向 vv:指向观测者

着色的局部性:只考虑这个点的着色情况 => 不产生阴影,只有明暗变化

漫反射#

  • 漫反射:Ld=kd(I/r2)max(0,n⋅l)L_d=k_d(I/r^2)max(0,\boldsymbol{n}\cdot\boldsymbol{l})

高光#

  • 观察方向和反射方向接近 => 半程向量h和n接近 => 镜面反射法线是角平分线 => h=v+l∥v+l∥\mathbf{h}=\frac{\mathbf{v}+\mathbf{l}}{\|\mathbf{v}+\mathbf{l}\|}
  • 镜面反射:Ls=ks(I/r2)max(0,n⋅h)pL_s=k_s(I/r^2)max(0,\mathbf{n}\cdot\mathbf{h})^p

    p指数用于控制高光在夹角稍大时能量迅速衰减,收束高光的范围

环境光照#

  • 环境光照:La=kaIaL_a = k_aI_a,IaI_a是环境光

总光能量#

  • 总能量(对应颜色):环境光+漫反射+高光反射

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Profile Image of the Author
机巧叶片
给互联网留下一点微小的贡献
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
26
分类
6
标签
22
总字数
27,977
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录