GAMES101 Lecture 07 Shading 1 (Illumination, Shading and Graphic Pipeline)

Lecture 07 Shading 1 (Illumination, Shading and Graphic Pipeline)

Illumination & Shading

Shading 着色在图形学上的定义:

在图形学上,对不同物体,应用不同材质的过程(不同的材质与光线的作用有不同方法)

Shading Model 着色模型

所有的计算都是在世界坐标系下完成的

Blinn-Phong Reflectance Model

这是一个简单的经验模型,并不是完全符合物理的

  • Ambient lighting 环境光
  • Diffuse reflection 漫反射
  • Specular highlights 高光

  • n法线
  • v观察方向
  • l 光线方向
  • Surface parameters表面参数
    • shininess表示有多亮,不是亮度,而是反光度
    • color 颜色

nvl表示方向,所以是单位向量

获得方法为光源位置或摄像机减去shading point位置并归一化处理

着色不会产生阴影

Diffuse Reflection 漫反射

接收到光线多少能量,与角度有关

  • Lambert's cosine law

给定一个Shading Point,就能计算出它接收到多少光

光线传播距离越长,对于任意一个点上,能接受到的能量越少

于是可以计算出有多少光传播到了当前Shading Point

结合前面有多少光会被吸收,就能得到diffuse的表示方法

Ld=kd(I/r2)max(0,nl)Lddiffusekd(rgb)I/r2shading pointmax(0,nl)shading pointmax线

补充:

以下补充来自于计算机图形学(OPENGL):光源

这里只考虑了真空中光因为距离衰减的强度,而现实中光在介质中传播,往往不是线性衰减

Fatt=1.0Kc+K1d+Kqd2KcK1线Kq

  • 常数项永远置为1来确保公式的分母不会大于1即衰减系数不会大于1。

  • 线性项让衰减呈线性变化。

  • 二次项让衰减在距离较短时影响小于线性项,在距离较远时影响高于线性项。

    公式的衰减大致分布

漫反射项只考虑了nl,没有考虑v,是因为漫反射朝着四面八方反射,与视线方向没有关系

光源在左上角,法线和光源方向点乘越接*1,漫反射越亮

并且可以看到kd从小到大的变化

Specular Term 镜面高光

高光接*镜面反射方向,当视线方向接*

BlinnPhong线线h=bisector(v,l)=v+lv+l线Ls=ks(I/r2)max(0,cosα)p=ks(I/r2)max(0,nh)pα线线线线ksLs

  • Blinn-Phong模型为经验模型,没有计算镜面高光被物体吸收了多少

  • 在Phong模型中,使用r线v的点乘计算是否接*,Blinn-Phong模型是一个改进,因为半程向量比反射方向更好算

  • 指数p是减少容忍度,在Blinn-Phong模型中一半为100200

Ambient Term 环境光

  • 我们认为环境光为一个固定的颜色
  • 这是*似的,若要精确计算,需要用到全局光照(GI)

Lα=kαIα

若一个点凹下去一点,在Blinn-Phong模型中不会更暗,所以这是一个简化模型

Blinn-Phong Reflection Model

将环境光、漫反射和镜面高光加起来

在Blinn-Phong模型中,没有考虑光线到摄像机的能量损失

posted @   Telluluu  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示