UE4官网视频学习笔记:构建更好的管道——静态网个体
厘米是UE4的默认单位。一虚幻单位 = 1厘米
一、 “构建更好的三维贴图和纹理”
1、三角面数:
在静态网格编辑器中可以看到三角形面数,教程中提到UE4可以渲染上百万个三角,因此需要我们注意并管理它避免面数超出带来的性能损耗。
2、材质ID(Material ID):
无论显示什么对象都至少拥有一个材质ID,它有助于确定多边形面使用的材质类型。
但是某个对象只要多出一个材质ID,它就会被多渲染一次
假如一个物体拥有5个材质ID,那就需要5次渲染才能使其正确的被渲染,最后通过一次最终渲染被显示出来
3、枢纽点(Pivot Points):
类似锚点中心点的概念。
4、光照贴图(Lightmap):
什么是:光照贴图是专门用于保存光线和阴影复杂信息的纹理。1、它开销低适合保存2、我们可以无需计算就获得这些信息
RGB存储着不同的信息,存储着不同区域的光照信息,包括阴影信息
UV(全称是UVW,其实就是XYZ,只不过XYZ被占用了所以换了三个字母。表示)
Lightmap只关注UV在0~1之间的数据,任何外面的数据都会被裁剪。
我们还需要确保UV中没有贴图重叠:比如桌子的上下面可能是相同的,那他们会公用一部分贴图,但是lightmap处理的时候就会使得桌子的上下面拥有相同的阴影信息。
然后介绍UV通道:【百度:通道的意思,在不同的3D软件中有所度区别,但是大概的意思就是指用来调整存放某一类参数或者属性的地方,某一类东西可以是材质,也可以是贴图问,逻辑甚至是某一个模型。】
询问了老同学之后,其实UV通道就是一个用来控制切换不同UV的东西,比如一个模型有多套UV(因为有些引擎需要一套UV来计算光照,就是刚刚说到的lightmap),那就可以通过通道来切换。
怎么创建:
(好像开了个头但是没提??只提到了一个覆盖?)
碰撞(Collision Meshes):
2中方式可以创建碰撞,一种是在DCC中创建然后导入进来;另一种是在UE4中创建碰撞
在DDC中创建碰撞:命名UCX_FullNameOfBox_Index
在UE4中创建碰撞:Collision→Convert Boxes to Convex
Rubble
凸分解,允许为这里不易生成碰撞盒的不规则网格体创建复杂的碰撞网格体。
限制过度绘制(Limiting Overdraw):
处理透明或不透明材质的时候会出现过度绘制,它表示当许多透明纹理相互重叠时,GPU必须重复绘制这些纹理即使他们中许多都不会显示,比如植物中就有大量重叠部分
可以通过绘制顶点的方式来切割掉不必要的透明区域,但是永远不可能完全消除掉全部的过度绘制区域,我们的目标不应该是消除过度绘制,而是限制它
多绘制一些顶点比渲染一堆像素然后弃用他们更节省开销,
查看过度绘制次数:1、着色器复杂度模式。
白色部分一位置他们需要接受接近2000条指令
细节层级LOD(Level Of Detail):
什么是LOD
如果一个复杂模型只占据200像素的时候就没必要展示它的所有面,这样就不会占用过多的内存。
模型都应具备LOD。
通常应该减少75% 35% 12%,根据项目调整,但是他们之间应该具有一定的距离
创建LOD
可以在DDC中创建,然后导入
导入的时候需要选择LOD
在UE4中创建LOD: