LOADING...

加载过慢请开启缓存(浏览器默认开启)

loading

计算机图形学⑨

2021/4/26

9.Geometry 1(introduction)(几何)

9.Geometry 1(introduction)(几何)

applications of texture(纹理的应用)

纹理本身是一张图,我们可以把纹理理解成线代GPU上内存上的一份数据,我们可以对它做快速的点查询和范围查询

可以做mipmap

做environment map(环境光)

我们假设有一个球是镜面的,那么他储存的内容就是环境光的内容,我们把这个球平面展开就组成了spherical environment map

image-20210424021527948

但显而易见的造成了扭曲

image-20210424021629844

解决方案是采用cube map,把这个球外边构造一个包围盒,然后把内容储存到球切割开的六个面。

image-20210424021845824

效果就是这样啦

两种方法本质都是一样的,都是为了描述不同方向的光照信息。


texture can affect shading

image-20210424022826279

运用凹凸贴图就可以营造出球面凹凸不平的感觉,而不用使用更多三角形去构造

image-20210424023316282

相当于是不把几何形体变复杂的情况下,通过复杂的材质来定义相对高度,通过影响法线的变化从而影响着色结果

位移贴图(进化版)

image-20210424025128955

位移贴图真的移动了顶点

虽然这样效果更好,但是也有相应的代价,构造的三角形得足够细,细到顶点间隔比纹理频率还要高,这样才能跟得上纹理的变化速度。


3D procedural noise + solid modeling

image-20210424030659154

用噪声算法算出大理石的纹理,或者是山脉的脉络之类


provide precomputed shading

image-20210424030912934

提供提前预计算的环境光遮蔽


volume rendering

image-20210424031121681

体积渲染


Geometry

复杂几何存在的问题:

  • 不便存储
  • 不便渲染

对几何做一个归类:

implicit geometry(隐式几何)

不给实际的点的位置,通过关系来表示位置,只要找出满足关系f(x,y,z)=0的所有点就能将几何表示出来。例如满足x2+y2+z2=1的话就能构造出三维的球面。

优点:判定一个点和几何的相对位置很容易,(内,外,重合)

缺点:从表达式很难看出几何的形状(不直观)

image-20210426110832195

explicit geometry(显式几何)

直接给出或通过参数映射(例如f(u,v)=xxxx,和隐式的不一样!)给出点的位置,以此来构造曲面。

优点:每个参数都写的清清楚楚

缺点:想判断一个点和几何的相对位置比较难(内,外,重合)

image-20210426111159040

根据问题的不同需要来选择隐式或显式


image-20210426112236949

CSG:通过结合隐性几何进行布尔运算,将简单几何变成复杂几何


image-20210426112458552

距离函数:空间中一个点到需要的几何形体的距离(可以是正的也可以是负的)

因为距离函数f(x)=0的时候,得到的就是物体表面

image-20210426112653121

应用距离函数:A和B如果制作一个简单blend,就会得到左边黑中间灰右边白

而我们将A和B各自做一个有向距离函数(scene distance function),然后将SDF(A)和SDF(B)做一个blend,得到的就是左边黑右边白的结果(我们需要的)

image-20210426114323480

所以两个几何最后得到这种结果


image-20210426114458470

水平集的原理和距离函数有点类似,应用在地理上是等高线(在不同位置有相同的值)


image-20210426114814717

fractals(分形)也叫自相似,和计算机中的递归是一个道理

(简单来说就是套娃)


本文于4.27 13:35完成