GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

目录

Shading 3

Barycentric coordinates(重心坐标)

  • 解决在三角形里面做插值的问题

Interpolation Across Triangles(在三角形里面做插值)

  • 为什么做插值:我们知道顶点Vertices的值,想要知道其他点的平滑过渡值。
  • 我们做什么插值:Texture coordinates, colors, normal vector, …
  • 如何做插值:Barycentric coordinates

Barycentric coordinates

  • 如果点在三角形内,那么这三个值还需要是非负的
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
  • 奔驰定理GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
  • 重心坐标虽然不错,但是在投影的时候重心坐标会变化,想插值三维坐标的性质,应该用三维坐标做,而不应该用投影做。

Applying Textures

  • 如何使用纹理:
  • 把取到的texcolor代替Kd
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

Texture Magnification(纹理的放大)

What if the texture is too small?(高分辨率屏幕对应低分辨率纹理):(求出的u、v不是整数)
GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

  • 如果求出的不是整数,可以先简单的四舍五入成整数(Nearest)
  • 想要更好就需要引入双线性插值(Bilinear interpolation)

Bilinear interpolation(双线性插值)

GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

  • 其质量和更高级的方法还是有差距

Bicubic(双三次插值)

取的是周围邻近的16个,然后也是进行一个横向的和纵向的插值,只不过每四个进行一个三次的插值。
GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

  • 运算量大,但是带来了比较好的效果

Texture Magnification (hard case)

(What if the texture is too large)

  • 问题更大
  • 远处摩尔纹,近处锯齿
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
  • 一个点如何能代表这么大的区域?
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

超采样可以解决么?

  • 可以,但是cost太大
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

Antialiasing — Supersampling?

GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

  • 另一个思路:既然采样会引起走样,可不可以不采样?
  • 点查询问题和范围查询问题:
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

解决方法:Mipmap(image pyramid)图像金字塔加上三线性插值(Trilinear Interpolation)

  • Allowing(fast, approx, square)range queries.
  • 可以很快的做范围查询,但只能做近似的正方形范围查询
  • 在计算机视觉领域,人们管他叫:(image pyramid)
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
  • 存储量变成4/3,也就是多了三分之一而已。(可以乘三用特殊方法算hhh)
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
  • 把像素覆盖的区域近似成一个正方形
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
  • 求出的D就是第几层,也就是在第几层求平均值。
  • 但是不连续,1层到2层直接跳,那中间层怎么办?
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
  • 要求第1.8层怎么办?插值,三线性插值(Trilinear interpolation)
三线性插值(Trilinear interpolation)

GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

  • 效果
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

mipmap缺陷:

  • 与超采样对比:
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
  • 会发现远处过模糊了(Overblur)
  • 有一种方法可以部分解决三线性插值产生的上述问题:Anisotropic Filtering(各项异性过滤)
  • GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

Anisotropic Filtering(各项异性过滤)

在不同的方向上表现各不相同,可以考虑方向性。
多少x就是多少层
X趋于无限的时候存储量是总存储的三倍
GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

  • 各项异性过滤允许我们在矩形范围内进行范围查询,但是对斜着的区域还是没有办法。
  • 人们发明了其他方法:
  • EWA filtering
    GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)

Texture queries

Applications of textures

Shadow mapping

上一篇:在运行时切换 WinForm 程序的界面语言 System.ComponentModel.ComponentResourceManager .ApplyResources


下一篇:[Data Structure] Linked List Implementation in Python