Tizeng's blog Ordinary Gamer

图形学常识

2019-04-20
Tizeng

1.纹理、贴图和材质

材质(material)包含贴图(map),贴图包含纹理(texture)。纹理本质上就是一张图片,当它根据UV坐标被映射到物体表面,就成了贴图,而材质是表现物体对光照的交互效果,不同材质会对打过来的光产生不一样的折射或反射效果,形成不一样的质感。

UV坐标

这是一种将贴图映射到物体上的映射手段,通过U(水平)和V(垂直)两个维度可以得到贴图某个位置的像素值,再由它来表示映射到相应的物体上应有的像素值,就是UV坐标。

法线贴图

法线贴图(Normal mapping)是一种模拟凹凸处光照效果的技术,是凸凹贴图的一种实现。法线贴图可以在不添加多边形的前提下,为模型添加细节。

2.shader

着色器大致分两种,顶点着色器和片段着色器。 顶点着色器(vertex shader)可以对多边形顶点的属性进行操作,片段着色器(fragment shader)又叫像素着色器(pixel shader),顾名思义就是对顶点之间的片段(像素点)进行着色,一般来说顶点着色器在绘图管线(graphic pipeline)的早期阶段发挥作用,先绘制出图形中的顶点,大致的轮廓,后面光栅化时,就需要用到片段着色器对顶点之间的像素一一进行着色。

3.渲染管线

渲染管线可以看做是将三维空间中的物体数据,映射到我们所看到的屏幕上所要经历的过程,它的大致流程为:顶点处理 -> 面处理 -> 光栅化 -> 像素处理

4.渲染路径

前向渲染(forward)会根据物体周围光源的距离、强度等属性对物体的影响依次对其进行计算和渲染,在Unity中,最亮的光源会逐像素(per-pixel)渲染,稍暗一些的则逐顶点(per-vertex)渲染,其他的则用球谐函数(Spherical Harmonics)处理。显而易见,光源的数量对前向渲染的影响很大,如果光源较多,场景中的物体也较多,就会花费很多时间,因此适合光源较少的场景,比如户外。 而延迟渲染(deferred)则不受光源数量的限制,因为它将所有物体存进G-buffer之后,再处理光照效果,它的优势就在于可以将场景物体的数量和光源的数量在复杂度上分开,但这样做的缺点包括:消耗显存、需要较高的带宽、无法处理透明的物品、只能处理一种材质等。


上一篇 循环队列

Comments

Content