Loading

Games101-5 shadering

shader

  • 对不同物体应用不同的材质

定义:

600

shading != shadow

diffuse reflection 漫反射

光照角度不同,则反射程度也不同

600

于此同时物体离光源越远,反射程度越低

600

600

600

高光项

镜面反射和视线比较接近的时候

使用半程向量计算高光

600

注:

  • 半程向量比较好算,反射向量比较难算
  • 指数 p : cos 容忍度太高了,光斑太大 --- 200 - 600

600

600

ambient term 环境光

600

600

shading frequencies

600

600

600

600

定义法线

定义每个顶点的法线

600

定义每个像素的法线

600

渲染管线

600

Texture mapping -- 纹理映射

600

600

shadertoy.com
https://youtu.be/XuSnLbB1j6E

Texture Mapping

不同材质的漫反射系数不同。 三维物体的表面都是二维的

600

600

600

UV坐标系 --- 都在 0-1, 每个三角形的顶点都对应一个UV坐标

600

重心坐标 barycentric coordinate

在三角形内做插值

obtain smoothly varying values across triangles

600

常数 为非负数

600

600
根据面积计算

600

使用重心坐标进行插值

600

问题: 投影之后重心坐标会改变--- 不能对投影之后的三角形计算重心。

使用 texture

600

问题:

texture Magnification 纹理放大。

600

查找纹理的时候我们希望更加连续一点。

  • 使用双线性插值

600

600

600

Bicubic

临近的16个

texture is too big

600

600

600

600

mipmap

allowing (fast approx square) range queries

600

600

计算 mipmap 的level

600

600

600

600

如果在 1.8层 这种非整数层 --- 使用三线性插值计算

Trilinear interpolation

600

三线性插值 的 资源消耗很小,但是效果很好

600

mipmap 的限制

overblur

600

解决方案 -- anisotroptic filtering 各项异性过滤 ---部分解决

600

600

EWA 过滤

600

纹理的应用

600

600

问题: 贴图会扭曲。

600

600

凹凸贴图

600

法线贴图

600

600

600

位移贴图

600

3D噪声

600

600

三维纹理

600

posted @ 2024-05-17 20:00  big_shark  阅读(10)  评论(0)    收藏  举报