UE5UMG
文章平均质量分 65
吴俊荣
我是一个非常非常懒的人
展开
-
UE5——UMG——分析6
需要尽量把主界面Ul的drawcal控制在20以内,场景和角色/玩法就会有更多的性能发挥空间,很多3A追求的极简风UI是个不错的选择。解决思路:定制绘制流程,将icon和文字一次绘制,程序化绘制边框和品质背景色等信息,减少drawcal提交。5.通过合图集,材质内部拼接绘制可以显著减小drawcal,降低CPU开销,能解决一部分问题。引擎材质大部分逻辑默认是在PS执行,但UI的顶点很少,实际需要尽可能把逻辑放到VS做。2,合Instance,每个ltem一个Instance。原创 2024-03-19 23:15:13 · 417 阅读 · 0 评论 -
UE5——UMG——分析5
材质绘图:SDF 有向距离场1.每一个点的数值=离最近图形的距离值,形状内部为负值,外部为正值2.可以用于U边框,阴影等效果一次绘制,缩放不会变模糊,更加通用3.多个SDF容易合并,将简单图形组合成复杂图形一些高级应用:2.碰撞测试3.距离场阴影4.程序化建模5.体积云。原创 2024-03-19 22:31:37 · 438 阅读 · 0 评论 -
UE5——UMG——分析4
lmage:需要绘制的贴图或材质Tint:1.图片叠加颜色 2.Brush的最终颜色=lmage*TintDraW As1.Image 普通贴图/材质,4个顶点2.Border 九宫格边框贴图/材质,32个顶点,可单独控制tiling3.Box 九宫格贴图/材质,常用于绘制窗口面板背景,16个顶点4.RoundedBox圆角9宫格贴图/材质,常用于绘制圆角按钮等Margin(Box/Border专用)0utline Settings(RoundedBox专用)原创 2024-03-18 22:24:27 · 532 阅读 · 0 评论 -
UE5——UMG——分析3
1.UI贴图关掉MIPS,可以省掉3分之一内存,一般ASTC4x4压缩肉眼看不出变化,大色块图可以更激进。比如背包系统,能明确知道行列个数,每个ltem固定大小,可以在背包的容器层直接给出计算结果。4.绘制的element也可以改为自定义绘制的方式,自行缓存顶点索引等数据,避免每帧重新计算。3.在逻辑很明确时,可以override对应函数,直接给出布局结果,避免递归子Widget。虚幻商城和github都有第三方封装过的UMG组件,包括网格,粒子,Niagara等版本。原创 2024-03-18 20:51:57 · 323 阅读 · 0 评论 -
UE5——UMG——分析2
SlateWindow通过GetBubblePath,可以定位坐标位置的FWidgetPath实现对Widget的点击。真正绘制前会读取裁剪区域数据,调用RHI的ScissorRect实现裁剪。响应区,会在0nPaint前记录到Args的HittestGrid中。裁剪区域通过FSlateClippingManager栈式管理。Hittest区域会根据是否设置Visible来标记。我们需要缓存这个剪辑状态,以便下次绘制元素时使用。有裁剪区的控件,无法超出边界绘制。原创 2024-03-17 15:56:17 · 202 阅读 · 0 评论 -
UE5——UMG——分析1
SWiget控件基本都继承这个三大类:SPanel,SCompoundWidget,SLeafWidgetSLeafWidget:没有Slot的Widget,自己就是控件树的叶子节点SCompoundWidget:一个Slot的Widget,Slot内可以放置一个子WidgetSPanel:多个Slot的Widget,通过OnArrangeChildren对Widget布局。原创 2024-03-16 21:43:07 · 323 阅读 · 0 评论