//补
纹理应用
特征:是一块数据,可以做各种查询
- 环境光照(环境贴图/环境映射)
纹理可以用来表示环境光,就是将四面八方的光都记录下来
一张房间光照展开
- Spherical Environment Map
将整个环境光记录在一个球上——展开后易产生扭曲问题
- Cube Map
将球的光线打印在它的包围盒上
- 纹理可以影响shading
可以通过应用纹理来定义像素间相对高度——导致法线发生变化,使得光线发生变化(法线贴图)
- 法线贴图/凹凸贴图
求n方法:先求切线dp=c*[h(p+1)-h(p)],再将法线逆时针方向旋转90度(dp是高度差,c是法线贴图影响程度,由于计算的是相邻所以只除以1)
n(p)=(-dp,1).normalized()——这里居然忘了切线法线公式了。。中学数学全还给老师了,其实就是x和y交换,然后x加负号
在3D中
dp/du=c1*[h(u+1)-h(u)]
dp/dv=c2*[h(v+1)-h(v)]
n=(-dp/du,-dp/dv,1).normalized()
缺陷:1.边缘无法给出光线影响,会露馅 2。凹凸贴图造成的突起影响不会影响自身,只会单纯反射出本像素的影响过后的光线
而真正造成位移的叫位移贴图
- 位移贴图
动态曲面细分(openGl)
- 三维纹理
定义了空间中任意一个点的值,使得纹理图不再是单纯的一张2D图,空间中的每一个点值通过经过处理后的三维噪声来计算后得
- 保存阴影信息
纹理可以记录一些之前已经计算好的信息,比如阴影(环境光遮蔽计算),然后将计算好后的值与纹理原本提供的颜色值来相乘计算
- 体积渲染
将存储在空间中的信息存储在纹理中——比如典型医学例子X光片等
几何学
- 隐式几何
不会直接的给出几何上面所在的点,而是点满足于特定的关系。
- 数学公式
比如x^2+y^2+z^2=1,表示空间球
比如f(x,y,z)=0,一般就是指这样的规定关系
但是复杂图形很难给出数学公式
- 立体几何(CSG)
- 距离函数
空间中的任何一个点到物体表面的最小距离,可以正或者负
有点像正负点电荷电场图、地理等高线的感觉
具体量化表示方式用水平集表示
如果是寻找单个点是否在图形中,那很方面,但这个方法很难找到所有在图形上的点
- 显式几何
比如使用三角形面片直接把所有顶点表示出来。
又或者根据映射的方法,对每一个UV都有对应的xyz坐标输出。
f(u,v)=(cosusinv,sinusinv,cosv) 这个函数直接表示xyz点,且uv是已知且一个个都是知道的,可以一个个算出来成图,所有可以说是显示的
缺陷是难以计算点是否在图形上