GAMES101-7 20200303 20210708 Shading 1 (Illumination, Shading and Graphics Pipeline)


7 20200303 / 20210708 Shading 1 (Illumination, Shading and Graphics Pipeline)

深度缓存:解决可见性/遮挡问题

Painter’s Algorithm

Painter's Algorithm
  • 从后向前绘制,overwrite in the frame buffer
  • 需要考虑绘制顺序
  • Requires sorting in depth (O(n log n) for n triangles) Can have unresolvable depth order
    • 但会出现无法定义深度关系的情况

Z-Buffer 深度缓存

  • This is the algorithm that eventually won.

  • Idea:

    • Store current min. z-value for each sample (pixel) 记录像素最浅深度
    • Needs an additional buffer for depth values
    • frame buffer stores color values (color buffer)
    • depth buffer (z-buffer) stores depth (depth buffer)
  • IMPORTANT: For simplicity we suppose

    • z is always positive
      (smaller z -> closer, larger z -> further)

      Z-Buffer examples
  • Algorighm

    Z-Buffer Algorithm Z-Buffer Algorithm cont.
    • 初始深度无限远
    • 把三角形做光栅化为像素
    • 找到像素后找到其深度
    • z 值小就更新
  • z-buffer Complexity

  • O(n) for n triangles (assuming constant coverage)

  • How is it possible to sort n triangles in linear time?

    • 并没有排序 只是进行了比较 找最小值
  • 绘制顺序不同不影响结果

    • 两个浮点数基本不可能完全相等
  • Most important visibility algorithm

    • Implemented in hardware for all GPUs
  • z-buffer 处理不了透明物体

What we’ve covered so far

What we've covered so far Rotating Cubes

Shading 着色

Definition

  • In Merriam-Webster Dictionary
    • shading, noun
      The darkening or coloring of an illustration or diagram with parallel lines or a block of color.
    • In this course
      • The process of applying a material to an object.

A Simple Shading Model (Blinn-Phong Reflectance Model)

  • Perceptual Observations

    Perceptual Observations
    • 高光 specular highlights
    • 漫反射 diffuse reflection
    • 环境光 ambient lighting
  • Shading is Local - 着色局部性只看自己 不考虑其他任何物体的存在 所以没有阴影 (shading ≠ shadow)

    Shading is Local

Diffuse Reflection

Diffuse Reflection
  • 把光看作能量 (Lambert)
    看着色点周围单位面积能够接收到多少能量
    直射接收到的能量 > 折射接收到的能量

  • Light Falloff

    Light Falloff
    • 能量守恒 - 单位点的能量越来越小 (不同球体表面积所含能量相同)
  • Lambertian (Diffuse) Shading

    Lambertian (Diffuse) Shading
  • $L_d = k_d (I/r^2)\max(0,\bf{n · l})$

    • $k_d$: 着色点对于光的吸收率
      • 如果 $k_d = 1$
        • 表示该点完全不吸收能量 - 最亮
      • 如果 $k_d = 0$
        • 表示该点完全吸收能量没有能量反射出去 - 最暗
      • 如果定义为三通道的 rgb 分别有 01
        • 那么就可以定义颜色值
    • $I/r^2$:传播到着色点的强度(结合能量球来看 总面积为 $4\pi r^2$ 距离为 r,那么单位强度就是 $\frac{I}{4\pi r^2}$,为平方反比关系)
      • I: 点光源在单位距离上的强度
      • r: 点光源和着色点的距离
    • $max(0, \bf{n · l})$
      • 为什么有 0
        • 如果是负数代表从反面照射没有意义
      • $\bf{n · l}$ 为余弦角
      • 整体表示被着色点能接收到的能量的比例
    • 漫反射与V无关 - 和观测点无关

Author:
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source !
  TOC