【图形学笔记】Lecture06-Texture Mapping 纹理映射
Lecture06-Texture Mapping 纹理映射
首先说了一个事情,一个三维物体的表面铺开都是二维的(类似二维流形啦)。
纹理坐标的可视化,通常可以把纹理映射成
Barycentric Coordinates重心坐标
通常用来插值,在顶点指定值(例如纹理坐标),并在表面上平滑地获得不同的值。
三角形
几何观点——面积:
另一种几何观点——距离比例
Q:为什么叫重心坐标?
A:对于任意一点
进一步,利用重心坐标,就去考虑三角形内一个函数
来插值,函数
Applying Texture 纹理的一些应用
对于屏幕上每个光栅化的采样点
Texture Magnification 纹理放大
如果纹理太小,图片太大怎么办?
最无脑的是采样某个像素
Bilinear Interpolation 双线性插值
每次选择最近的
注:lerp是线性插值(linear interpolation)的缩写
纹理太大
反过来,如果纹理太大,像素太小,可能也会出现锯齿/摩尔纹,问题就在于,一个像素点要如何代表很大一块纹理?如果用超采样(对像素格子)的话开销很大,而且很容易浪费。
反过来做范围查询(range query)!即对于一个区域内的像素,查询纹理坐标。
MIP Map
类似于倍增,看图应该就知道在干嘛了,存储量只会变成
如何查找在MIP Map上的哪一层?
取一个像素格
Trilinear Interpolation 三线性插值
其实就讲了一句话…在双线性插值的基础上,把MIP Map的层数作为第三维,再进行一次插值,相比bicubic来说效率高多了,而且效果也很好。
Anisotropic Filtering 各向异性过滤
Ripmaps、EWA filtering…
Advanced Texturing Methods 高级纹理方法
Environment Map 环境贴图
注:这里预设了一个事情,就是环境光是垂直的,并且光强和距离无关。
Spherical Environment Map:考虑放了一个球在环境中,球上的图案就对应着环境光,所以不如直接用一个球来记录环境光!——但是靠近球的两极处的效果可能不太好。
Cube Map:用一个正方体包住球,算出在6个面上的纹理贴图。
Texture can affect shading! Bump Mapping——凹凸贴图
很明显纹理不止可以表示颜色,有时候也会用一些复杂的纹理,来定义一个点的高度,进一步确定法线,
接着就来讨论,高度是如何具体影响法线的:
假设有一个高度函数
对于三维情况呢?类似地,对两个方向计算偏导数…(当然我怀疑这里课件上隐藏了非常多细节…)
3D Procedural Noise + Solid Modeling 三维空间噪声函数
贴图又何必是图呢(hhh),比如用一个
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了