Lecture 10 Geometry 1 (Introduction)
Examples of geometry 几何的例子
- 不同形状的几何
- 光滑的曲面
- 复杂的模型、位置摆放
- 布料
- 水滴
- 城市(复杂在东西多)
- 怎么存储
- 怎么渲染这么大级别的东西
- 离得远的情况下如何简化几何模型
- 如何利用光线之间的连续性
- 毛发
- 微观几何
- 树枝、树叶
Various representations of geometry 几何的不同表示方式
图形学中将几何分为两类Implicit隐式和Explicit显式
根据需要来选择表示方法
Implicit geometry隐式几何
-
algebraic surface (不直观)
-
Level Sets (水平集)
-
水平集的表述类似距离函数,区别在于水平集的表述写在格子上,只需要找到值为0的地方,就可以把水平集试图描述的几何提取出来(在地理上的应用为等高线)
-
水平集也可以定义在三维空间上的格子
如果有一个三维纹理表示的是人体不同位置的密度,则可以提取出密度等于某一特定值的几何形体
-
水花也可以通过水平集或距离函数的方式描述
-
-
Distance Functions
对于任何一个几何,都不直接描述表面,而去描述空间任何一个点到这个表面的最近距离(可以是正的或是负的)
-
SDF
黑色表示遮挡,白色表示未被遮挡,我们想要A运动到B的图像,若是简单混合AB,得到的结果为前\(2/3\)都为遮挡
运动SDF(S表示signed),在遮挡边缘处有接近\(0\)的值,远离\(0\)的地方根据正负做出来,于是能根据AB得到两张渐变的图\(SDF(A)和SDF(B)\),再将\(SDF(A)和SDF(B)\)做\(blend\)操作,再恢复成不是SDF的图,可以得到左边是黑的,右边是白的
-
水花也可以通过水平集或距离函数的方式描述
-
-
Constructive Solid Geometry (CSG)
定义一些简单运算,通过基础几何和简单运算形成复杂几何
如Max、Maya都支持这种表示方法
-
Fractals 分形
自相似,类似递归
在图形学中应用不多,很难控制形状,因为变化频率过快,引起走样
-
...
隐式几何建立在将点归类的基础上
-
满足特定关系的点
如球面:所以点都在\(x^2+y^2+z^1=1\)的三维空间上
更通用的情况\(f(x,y,z)=0\)
对于一个隐式几何,很难知道它是什么形状
易于查询
好处是很容易判断一个点在不在该几何形体上或内外
适合描述拓扑结构
难以描述复杂形状
将点带入表达式,若结果为负代表点在物体内,正的代表在物体外
Explicit geometry显式几何
-
point cloud
-
最简单的表示:一组点\((x,y,z)\)
-
可以简单地表示任何几何
-
三维空间扫描通常得到一堆点云(>>1 point/pixel)
-
经常转化成多边形面
-
很难绘制出采样不充分的区域
-
-
triangle meshes
-
Bezier surfaces
-
polygon mesh
-
存储顶点和多边形(通常是三角形或四边形)
-
很容易用于处理/模拟,自适应采样
-
数据结构更加复杂
-
在图形学中最广泛的显式表示方式
-
例:The Wavefront Object File(.obj)文件(不同于编译出的obj文件)
该文件定义了顶点(\(v\))、法线(\(vn\))、纹理坐标(\(vt\))、三角面(\(f\),格式为\(v/vn/vt(第几个顶点/第几个纹理坐标/第几个法线)\))
-
-
subdivision surfaces, NURBS(非均匀有理B样条)
-
...
所有点都被直接给出(如一个三角形面、模型),或通过parameter mapping(参数映射)的方法给出
输入\(uv\)得到\(xyz\),只需输入所有uv,就能得到所有点
\(f(u,v)=((2+\cos u)\cos v,(2+\cos u)\sin v,\sin u)\)
而显示表达很容易显示形状
但判断点是否在几何内外就变困难了,除非判断出是什么形状了
标签:Geometry,geometry,图形学,Introduction,SDF,几何,Lecture,隐式 From: https://www.cnblogs.com/Tellulu/p/18092221