0%

几何学

纹理应用

//补

纹理应用

特征:是一块数据,可以做各种查询

  • 环境光照(环境贴图/环境映射)

纹理可以用来表示环境光,就是将四面八方的光都记录下来

33333.png

一张房间光照展开

  • Spherical Environment Map

将整个环境光记录在一个球上——展开后易产生扭曲问题

  • Cube Map

将球的光线打印在它的包围盒上

3.png

  • 纹理可以影响shading

可以通过应用纹理来定义像素间相对高度——导致法线发生变化,使得光线发生变化(法线贴图)

  • 法线贴图/凹凸贴图

41.png

求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光片等

 

 

几何学

  • 隐式几何

不会直接的给出几何上面所在的点,而是点满足于特定的关系。

  1. 数学公式

比如x^2+y^2+z^2=1,表示空间球

比如f(x,y,z)=0,一般就是指这样的规定关系

但是复杂图形很难给出数学公式

  1. 立体几何(CSG)

444.png

  1. 距离函数

空间中的任何一个点到物体表面的最小距离,可以正或者负

有点像正负点电荷电场图、地理等高线的感觉

91.png

具体量化表示方式用水平集表示

image-20230930235229803

如果是寻找单个点是否在图形中,那很方面,但这个方法很难找到所有在图形上的点

  • 显式几何

比如使用三角形面片直接把所有顶点表示出来。

又或者根据映射的方法,对每一个UV都有对应的xyz坐标输出。

0000.png

f(u,v)=(cosusinv,sinusinv,cosv) 这个函数直接表示xyz点,且uv是已知且一个个都是知道的,可以一个个算出来成图,所有可以说是显示的

缺陷是难以计算点是否在图形上