一、纹理的应用
1.环境光贴图
- 假设环境光都来自无限远处,只记录方向信息
①球形环境贴图
-
环境光可以记录在球上
-
问题
- 会有扭曲问题(在顶部和底部)
- 会有扭曲问题(在顶部和底部)
②立方体贴图
- 立方体六个面都有纹理贴图
2.凹凸贴图 Bump Mapping
- 可以增加表面细节,而不是增加更多三角形表面
- 原理是改变点的相对高度的移动
→
\rightarrow
→ 改变法线,做假的顶点移动
如何计算法线的变化
a.在平面上
- 原来的法线为 n§ = (0, 1)
- 在p点处的差分为 dp = c * [h(p+1)-h§]
- 法线要和切线垂直,并且归一化 n§ = (-dp, 1).normalized() = (1, dp)
b.在三维空间中
- 原来的法线为 n§ = (0, 0, 1)
- 在p点处的差分为
dp/du = c1 * [h(u+1)-h(u)] —— u方向切线
dp/dv = c2 * [h(v+1)-h(v)] —— v方向切线 - 法线要和切线垂直,并且归一化 n§ = (-dp/du, -dp/dv, 1).normalized()
3.位移贴图 Displacement Mapping
- 是做真的顶点移动
- 需要建模细分网格更高
4. 3D Procedural Noise
- Perlin噪声应用
5.预计算阴影 Provide Precomputed Shading
6. 3D纹理和体渲染 3D Textures and Volume Rendering
- 体渲染(Volume Rendering):展示数据的内部结构,而不仅仅是表面的轮廓
二、几何
1.隐式表达 Implicit
- 表示的是关系
- 通过表达式很难看处是什么
- 可以判断点是否在面上(f(x,y,z) = 0),内部(<0),外部(>0)
①数学公式
- 不好表达复杂模型
②用几何运算来定义几何 CSG
③距离函数 Distance Function
- 常作用于混合两个几何体
- 定义
- 描述从空间中任意一点到目标几何体的最近距离(可以有符号,表示点在几何体内部还是外部)
- 知道两个物体的DF函数,那么就可以混合
④水平集 Level Set Method
- 基本思想
- 几何形状由满足函数值(空间中每个点到几何形状的距离)等于某个常数(称为“水平集值”)的点集组成
- 可以画出一条等值线,就是几何形状的轮廓
- 流体模拟、图像分割等
⑤分型
- 描述自然现象,渲染时会剧烈走样
2.显示表达 Explicit
- 点都是直接给出或者通过参数映射(映射成一点)
- 容易采样
- 很难判断是否在面上、内部和外部