1.01_纹理与材质
纹理命名规范
1.02_纹理尺寸与Mipmaps
纹理尺寸
纹理比例
Mipmap多级渐进式纹理
会自动生成缩小2倍数的纹理,当我们距离较远的时候,它会自动切换为低分辨率的纹理,分辨率降低也就意味着细节下降,细节下降也就意味着在远处不会闪烁了
因为降低在远处的质量,还可以优化游戏的性能
Mipmap仅支持2的N次幂的大小得贴图
关闭Mipmap功能
Mipmap的缺点
Mipmaps=创建的尺寸较小的2次幂贴图都是存储为文件的,会增加游戏的容量大小,同时产生额外的内存消耗
关闭Mipmap资源大小为2048
开启Mipmap资源大小为2731
1.03_纹理文件格式及纹理压缩
所有导入到UE4的纹理贴图都会被压缩,最后在引擎里的大小都是一样的
因为引擎内文件的大小和源文件大小没有关系,尽可能使用没有压缩过的纹理或者是压缩率比较低的纹理,比如使用PSD,TGA格式内,不要使用JPG这种在保存时就会进行压缩的格式,因为这种压缩是没有必要的,反而会降低图像的最后质量,
DXT1
Masks
设置为Masks格式,sRGB会取消勾选
GrayScale
灰度图不会压缩格式,需要使用高质量的灰度图,选择GrayScale
Displacementmap
高质量置换贴图
VectorDisplacementmap
向量置换图
HDR 高动态范围
UserInterface2D UI贴图格式
Alpha 透明贴图
DistanceFieldFont 距离场字体
HDRCompressed HDR可压缩
BC7 是一个最高质量的纹理格式,其纹理尺寸也是最大的
通常需要表现高质量的纹理细节可以选择BC7
1.04_纹理通道与sRGB
纹理通道
混合贴图
PS分离通道
PS合并通道
PS >> 合并通道 >> RGB颜色
混合贴图RMA 制作完成
将RMA贴图导入引擎
sRGB与伽马校正
设置为Mask或者取消勾选sRGB,就可以得到正确的灰度图信息
关于伽马校正的通俗表示
颜色贴图(BaseColor)是给人看的,所以不关闭sRGB.
而粗糙度,金属度,AO等等灰度纹理,不是给人看的,是给机器看的,它是让机器算出对应的粗糙度,金属度等,让其表现出正确的质感,所以需要取消sRGB,它不需要来产生GAMMA校正,来还原人眼的效果,所以这样就可以得到最正确的灰度效果.
Compress Without Alpha 是否去除A通道
Alpha通道是非常占用资源的,类似粗糙度,金属度,AO等贴图存放到RGB通道即可,如果一些需要精度非常高的图片可以粗放A通道
1.05_前向渲染与延迟渲染
光栅化
前向渲染 Forward Rendering
深度测试 可以判断哪些模型在前在后
延迟渲染
延迟渲染会先执行深度测试,光照也会进行推迟计算
前向渲染是后执行深度测试(也就是说前面计算的数据在深度测试剔除以后就被浪费掉了)
G-Buffer是非常占用带宽的,VR项目会吃不消,一般会选择前向渲染
G-Buffer计算灯光的基本原理
这里面有一个白色的灯光,这个灯光可以是看做为一个遮罩,在这个遮罩的范围里面,就会进行灯光的计算,在灯光范围以外,不管有没有物体,它都不会计算灯光,因为这个灯光只是一个遮罩
实际上就将灯光当做一个遮罩,也就是这个灯光只会影响这个区域的像素,而不是和前向渲染里面会影响所有的物体
如果有一个灯光,就是一个遮罩,如果有两个灯光,就会有两个遮罩
即是在延迟渲染里面,灯光数量太多,效果会随之重叠,重叠的地方就会算多次,2个灯光算两次,3个灯光算三次,依次类推
所以说在延迟渲染里面,灯光对性能的影响不是很大,但是如果大量重叠的话,同样也是吃不消的
缓冲器可视化 Buffer Visualization >> 概述 Overview
1_06.遮蔽剔除和半透明材质
计算遮蔽关系
剔除性能消耗从低到高排列
距离剔除 >> 视锥剔除 >> 遮蔽剔除 >> 深度检测
距离剔除
视锥剔除
遮蔽剔除
深度检测
半透明材质(无法进行深度检测)
半透明材质的排序问题(无法进行深度测试)
解决半透明渲染排序的方法,是在引擎中强制物体(模型)设置排序的优先级
Rendering >> Transtucency Sort Priority
如果玩家旋转视角,也会穿帮,所以视情况而定,尽量避免这种情况