shader
- 对不同物体应用不同的材质
定义:
shading != shadow
diffuse reflection 漫反射
光照角度不同,则反射程度也不同
于此同时物体离光源越远,反射程度越低
高光项
镜面反射和视线比较接近的时候
使用半程向量计算高光
注:
- 半程向量比较好算,反射向量比较难算
- 指数 p : cos 容忍度太高了,光斑太大 --- 200 - 600
ambient term 环境光
shading frequencies
定义法线
定义每个顶点的法线
定义每个像素的法线
渲染管线
Texture mapping -- 纹理映射
shadertoy.com
https://youtu.be/XuSnLbB1j6E
Texture Mapping
不同材质的漫反射系数不同。 三维物体的表面都是二维的
UV坐标系 --- 都在 0-1, 每个三角形的顶点都对应一个UV坐标
重心坐标 barycentric coordinate
在三角形内做插值
obtain smoothly varying values across triangles
常数 为非负数
根据面积计算
使用重心坐标进行插值
问题: 投影之后重心坐标会改变--- 不能对投影之后的三角形计算重心。
使用 texture
问题:
texture Magnification 纹理放大。
查找纹理的时候我们希望更加连续一点。
- 使用双线性插值
Bicubic
临近的16个
texture is too big
mipmap
allowing (fast approx square) range queries
计算 mipmap 的level
如果在 1.8层 这种非整数层 --- 使用三线性插值计算
Trilinear interpolation
三线性插值 的 资源消耗很小,但是效果很好
mipmap 的限制
overblur
解决方案 -- anisotroptic filtering 各项异性过滤 ---部分解决
EWA 过滤
纹理的应用
问题: 贴图会扭曲。
凹凸贴图
法线贴图
位移贴图
3D噪声
三维纹理
标签:贴图,法线,线性插值,shadering,texture,纹理,---,Games101 From: https://www.cnblogs.com/bigsharker/p/18198495