9.Geometry 1(introduction)(几何)
9.Geometry 1(introduction)(几何)
applications of texture(纹理的应用)
纹理本身是一张图,我们可以把纹理理解成线代GPU上内存上的一份数据,我们可以对它做快速的点查询和范围查询
可以做mipmap
做environment map(环境光)
我们假设有一个球是镜面的,那么他储存的内容就是环境光的内容,我们把这个球平面展开就组成了spherical environment map
但显而易见的造成了扭曲
解决方案是采用cube map,把这个球外边构造一个包围盒,然后把内容储存到球切割开的六个面。
效果就是这样啦
两种方法本质都是一样的,都是为了描述不同方向的光照信息。
texture can affect shading
运用凹凸贴图就可以营造出球面凹凸不平的感觉,而不用使用更多三角形去构造
相当于是不把几何形体变复杂的情况下,通过复杂的材质来定义相对高度,通过影响法线的变化从而影响着色结果
位移贴图(进化版)
位移贴图真的移动了顶点
虽然这样效果更好,但是也有相应的代价,构造的三角形得足够细,细到顶点间隔比纹理频率还要高,这样才能跟得上纹理的变化速度。
3D procedural noise + solid modeling
用噪声算法算出大理石的纹理,或者是山脉的脉络之类
provide precomputed shading
提供提前预计算的环境光遮蔽
volume rendering
体积渲染
Geometry
复杂几何存在的问题:
- 不便存储
- 不便渲染
对几何做一个归类:
implicit geometry(隐式几何)
不给实际的点的位置,通过关系来表示位置,只要找出满足关系f(x,y,z)=0的所有点就能将几何表示出来。例如满足x2+y2+z2=1的话就能构造出三维的球面。
优点:判定一个点和几何的相对位置很容易,(内,外,重合)
缺点:从表达式很难看出几何的形状(不直观)
explicit geometry(显式几何)
直接给出或通过参数映射(例如f(u,v)=xxxx,和隐式的不一样!)给出点的位置,以此来构造曲面。
优点:每个参数都写的清清楚楚
缺点:想判断一个点和几何的相对位置比较难(内,外,重合)
根据问题的不同需要来选择隐式或显式
CSG:通过结合隐性几何进行布尔运算,将简单几何变成复杂几何
距离函数:空间中一个点到需要的几何形体的距离(可以是正的也可以是负的)
因为距离函数f(x)=0的时候,得到的就是物体表面
应用距离函数:A和B如果制作一个简单blend,就会得到左边黑中间灰右边白
而我们将A和B各自做一个有向距离函数(scene distance function),然后将SDF(A)和SDF(B)做一个blend,得到的就是左边黑右边白的结果(我们需要的)
所以两个几何最后得到这种结果
水平集的原理和距离函数有点类似,应用在地理上是等高线(在不同位置有相同的值)
fractals(分形)也叫自相似,和计算机中的递归是一个道理
(简单来说就是套娃)
本文于4.27 13:35完成