目录
前言
纹理是一种可供着色器读写的结构划存储形式。
P1
纹理管线
寻址模式 / Warp Mode
- Repeat:重复
- Mirror:重复+镜像
- Clamp:纹理坐标在0到1之间。超出部分重复边缘颜色
- Border:超出部分是用户指定的边缘颜色
纹理过滤 Filter Mode
决定纹理产生拉伸时采用的滤波方式
- 最邻近:令他约等于最邻近的点
- 双线性插值:每个像素找相邻的四个点进行上下双线性插值(水平两次,竖直一次)
- 立方卷积(双向三次插值):相邻的16个点做水平和竖直的插值(考虑了变化率)
Mipmap
- 通过梯度选择正确的mipmap的level
各项异性过滤
积分图
CPU渲染优化——纹理图集/数组
GPU渲染优化——纹理压缩
立方体贴图CubeMap
凹凸贴图Bump Mapping
位移贴图
P2
Filter Mode的种类
采样纹理小于屏幕像素,需放大采样
- 最邻近
- 双线性插值
- 立方卷积
- Q曲线插值
采样纹理大于屏幕像素,需缩小采样
- 缩小的最邻近和双线性插值
- Mipmap,通过梯度求level做查询,存在过渡模糊的问题
- 各项异性过滤,查询近似矩阵区域,常用积分图。
- EWA,查询近似椭圆区域
纹理贴图优化
CPU方面
GPU渲染速度通常快于CPU提交命令速度,所以要降低DrawCall
- 方法:纹理图集、纹理数组、约束纹理
GPU方面
GPU受限于显存带宽,当纹理体积过大,GPU无法快速处理,所以需要压缩纹理
- 方法:纹理压缩