GAMES101: Lecture 10: Geometry 1 (Introduction) ppt笔记
Applications of Textures
在现代GPU中,纹理texture = 内存 + 范围查询(滤波)
纹理的应用包括:环境光照、存储微几何、程序纹理、实体建模、体积渲染
Environment lighting
我们将环境光照储存为environment map
光照来自无限远处
从视角向周围看去,记录下周围物体发出或反射到视角的光照
environment map可用于物体表面的渲染
上面的球面环境地图spherical environment map在展开后会带来扭曲的问题,两极点的图像会向中间扭曲(参考世界地图)
我们使用正方体地图cube map来改善这一情况
球体的每个像素,其法线与正方体相交于一个点,用该点代表球体对应像素的纹理
正方体的6个正方形texture map构成了正方体的texture
大大减少了扭曲的现象
Bump Mapping
texture同样可以影响着色,比如构造出表面凹凸不平的效果
凹凸贴图Bump Mapping不添加三角形的个数而增加表面细节
逐像素生成表面法线扰动,高度变化由纹理定义
e.g. 2D法线扰动
设原法线方向为 n( p ) = (0, 1),垂直向上
应用纹理的高度变化后,在p点处 dp = c * [ h(p+1) - h( p ) ] ;c为常数
扰动后的法线与dp方向(1, dp)垂直,为
n( p ) = (-dp, 1).normalized
3D扰动同理
原法线方向为 n( p ) = (0, 0, 1)
u,v 方向上分别做差分
dp/du = c * [ h(u+1) - h( u ) ]
dp/dv = c * [ h(v+1) - h( v ) ]
扰动后的法线为两个切向量方向的叉积,为
n( p ) = (-dp/du, -dp/dv, 1).normalized
注意上面的计算是在贴图的本地坐标上计算的,实际可能需要转换为世界坐标
Displacement mapping
与凹凸贴图运用相同的纹理
但实际地移动了顶点
需要足够精细的几何体才能生效
或在渲染时将表面分解为更多三角形
3D Procedural Noise + Solid Modeling
用3D程序生成噪声,使用纹理时不在实际存在的图片上采样,而是获取程序生成的值
Others
纹理可以
提供预生成的阴影
在医学上,可以使用3D纹理和体积渲染
Introduction to geometry
图形学渲染诸多物体例如 曲面、布料、水、大城市、动物毛发、微生物等 并不容易
几何的表示方法分为隐式implicit和显式explicit
不同选择适合不同几何任务
Implicit & Explicit
隐式表示为 满足特定条件的所有点的集合
e.g. 单位球x2+y2+z2=1x^2+y^2+z^2=1x2+y2+z2=1
可表示为 f(x, y, z) = 0
难以看出物体的形状,但容易判断任意一点在物体的内/外(代入f(x, y, z))
显式表示为 所有点被直接给出或通过参数映射f:R2−>R3;(u,v)−>(x,y,z)f: R^2 -> R^3 ; (u, v) -> (x, y, z)f:R2−>R3;(u,v)−>(x,y,z)
e.g. 单位球f(u,v)=(cosusinv,sinusinv,cosv)f(u, v) = (cos u sin v,sin u sin v, cos v)f(u,v)=(cosusinv,sinusinv,cosv)
容易看出物体形状,但难以判断任意一点在物体的内/外
More Implicit Representations
Algebraic Surfaces
代数式表示
x2+y2+z2=1x^2+y^2+z^2=1x2+y2+z2=1
Constructive Solid Geometry
构造立体几何
用Boolean操作结合几何体
(Signed) Distance Functions
(有符号的)距离函数
给出任意位置到物体的最小距离
可以对两个物体进行平滑融合
下图中,第一行是普通融合
第二行是signed distance function SDF融合,一条红线上的点到物体的距离相同(可理解为等高线)
融合时,将每处的值进行处理,最后找到值为0对应的那条线,即为融合后物体的边界
可将AB融合为1/2的阴影
Level Set Methods
封闭式的方程难以描述复杂图形
我们用一个网格模拟函数
表面由函数值等于0的点构成,在离散网格中通过插值得到
在医学上,用该方法找到组织密度相同的地方
物理模拟上,用于找到空气-液体边界
Fractals
就是雪花那个分形,挺难表示的
Implicit pros & cons
好处:表述简单,部分查询简单(内/外),适用于射线与曲面相交,对于简单图形描述精准,易于处理拓扑结构的变化
坏处:难以建模复杂图形