Appearance
基本概念
前向渲染 Forward Rendering
场景里的物体进行光栅化并完成灯光计算,然后再进行遮挡剔除的过程,被称作前向渲染。
那些最终会被遮挡的物体也要被计算,这对算力来说是很浪费的。所以又有后面的延迟渲染。
但由于人们还不能完全抛弃前向渲染,所以前向渲染也做了优化,可以使用比较多的光源了。
延迟渲染 Deferred Rendering
先剔除再光栅化就是延迟渲染。这个阶段,图像会先缓存进G-Buffer中,接下来的光照计算只会对它覆盖的像素计算一次,所以运算量大大降低。
只要知道这个东西很省性能即可,在需要大量灯光的场景下可以优先考虑延迟渲染。
但是不要在同一个区域覆盖四个及以上的灯光,因为灯光覆盖的范围还是会重复计算的,切记,切记
物体在场景里的剔除顺序
1、首先是进行视界渲染,超出摄像机视界范围内的都会被剔除掉。视界渲染会分成两部分,一部分是从距离上来看,是否在摄像机的渲染距离范围内(距离剔除);另一部分是从视锥的角度上来看,是否在摄像机的视角范围内(视锥剔除)。
通常来说,视锥在3D场景中是一个圆锥形(圆台形)的范围
2、然后进行遮蔽剔除,即被遮挡的物体不会进行渲染
3、再之后进行深度检测,为所有需要渲染的物体(那些半遮挡的物体)进行渲染上的排序,好呈现出视觉上的远近关系
4、如果有半透明的物体(一般是赋予了半透明材质),那么很有可能引擎并不知道谁先谁后,这时可选做法是手动设置某个物体的透明渲染层级。如下图所示,这里的数值越高,渲染出的结果就越靠近玩家

向量与颜色
在材质里,向量可以表示方向上的值(x,y,z),也可以表示颜色的数值(r,g,b)。
在材质编辑器里,按住1点击鼠标左键会创建一维向量,以此类推,最多可以创建四维向量。

当表示色值时,一维向量的值会均摊到rgb上面,即一维向量的值为1的时候,rgb三个值都是1(同理,是0.5的时候,三个值都是0.5)
另外,四维向量的四个值可以对应rgba,也就是说,第四个维度对应透明度。
色值的取值范围是0~255,但是当向量作为数学运算的时候是可以超过这个值的
实际我们用的时候可能会发现三维向量(1,0,0)就是红色,这是因为引擎内部将数值做了转换,用1代表255。如果我们想确切表示0~255的取值,可以先用1乘上255然后再做修改。
纹理与材质
纹理,在 UE 中以 T 作为文件前缀,最基础的有五种:颜色、法线、环境光遮蔽、粗糙度、金属度。
名称 | 命名 | 命名 |
---|---|---|
颜色纹理 | T_BaseColor | T_Color |
法线纹理 | T_Normal | T_N |
环境光遮蔽 | T_AmbientOcclusion | T_AO |
粗糙度纹理 | T_Roughness | T_R |
金属度纹理 | T_Metallic | T_M |
纹理需满足 2的N次幂 的数字:
1*1、2*2、4*4、8*8、16*16、32*32、64*64、。。。8192*8192
当满足条件时,UE会自动创建MipMap(多级渐进式纹理)防止远距离时低分辨率图片闪烁的情况。
可以在图片的详情页找到 Level Of Detail ,将 Mip Gen Settings 改为 NoMipmaps。