GAMES101-现代计算机图形学入门-闫令琪——Lecture 09 Shading 3 (Texture Mapping Cont.)
作者:互联网
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
- 如果点在三角形内,那么这三个值还需要是非负的
- 奔驰定理
- 重心坐标虽然不错,但是在投影的时候重心坐标会变化,想插值三维坐标的性质,应该用三维坐标做,而不应该用投影做。
Applying Textures
- 如何使用纹理:
- 把取到的texcolor代替Kd
Texture Magnification(纹理的放大)
What if the texture is too small?(高分辨率屏幕对应低分辨率纹理):(求出的u、v不是整数)
- 如果求出的不是整数,可以先简单的四舍五入成整数(Nearest)
- 想要更好就需要引入双线性插值(Bilinear interpolation)
Bilinear interpolation(双线性插值)
- 其质量和更高级的方法还是有差距
Bicubic(双三次插值)
取的是周围邻近的16个,然后也是进行一个横向的和纵向的插值,只不过每四个进行一个三次的插值。
- 运算量大,但是带来了比较好的效果
Texture Magnification (hard case)
(What if the texture is too large)
- 问题更大
- 远处摩尔纹,近处锯齿
- 一个点如何能代表这么大的区域?
超采样可以解决么?
- 可以,但是cost太大
Antialiasing — Supersampling?
- 另一个思路:既然采样会引起走样,可不可以不采样?
- 点查询问题和范围查询问题:
解决方法:Mipmap(image pyramid)图像金字塔加上三线性插值(Trilinear Interpolation)
- Allowing(fast, approx, square)range queries.
- 可以很快的做范围查询,但只能做近似的正方形范围查询
- 在计算机视觉领域,人们管他叫:(image pyramid)
- 存储量变成4/3,也就是多了三分之一而已。(可以乘三用特殊方法算hhh)
- 把像素覆盖的区域近似成一个正方形
- 求出的D就是第几层,也就是在第几层求平均值。
- 但是不连续,1层到2层直接跳,那中间层怎么办?
- 要求第1.8层怎么办?插值,三线性插值(Trilinear interpolation)
三线性插值(Trilinear interpolation)
- 效果
mipmap缺陷:
- 与超采样对比:
- 会发现远处过模糊了(Overblur)
- 有一种方法可以部分解决三线性插值产生的上述问题:Anisotropic Filtering(各项异性过滤)
Anisotropic Filtering(各项异性过滤)
在不同的方向上表现各不相同,可以考虑方向性。
多少x就是多少层
X趋于无限的时候存储量是总存储的三倍
- 各项异性过滤允许我们在矩形范围内进行范围查询,但是对斜着的区域还是没有办法。
- 人们发明了其他方法:
- EWA filtering
Texture queries
Applications of textures
Shadow mapping
标签:Cont,闫令琪,插值,线性插值,图形学,Texture,coordinates,Shading,interpolation 来源: https://blog.csdn.net/godycy/article/details/120861674