UE5——UMG——分析5

本文详细介绍了SDF(有向距离场)在材质绘图中的应用,包括基本形状如圆、线段、矩形和五角星,以及高级技术如RayMatching、碰撞测试和体积云。文章还涉及SDF在字体渲染中的优势,如无失真缩放和一步绘制多效果。
摘要由CSDN通过智能技术生成

材质绘图:SDF 有向距离场
1.每一个点的数值=离最近图形的距离值,形状内部为负值,外部为正值
2.可以用于U边框,阴影等效果一次绘制,缩放不会变模糊,更加通用
3.多个SDF容易合并,将简单图形组合成复杂图形
在这里插入图片描述

一些高级应用:
1.Ray Matching
2.碰撞测试
3.距离场阴影
4.程序化建模
5.体积云
在这里插入图片描述

材质绘图:SDF圆

圆圈的距离为0
圆内部的为负值
圆外部的为正值
因此:SDF圆=SDF圆心点-圆半径
在这里插入图片描述
在这里插入图片描述
可以推导出以下结论:
任意图形的距离场减去半径等于带圆角图形的距离场
上图可以看到矩形的距离场,减去圆角半径,就是圆角矩形的SDF

材质绘图:SDF线段

任意一点到线段AB的距离
分3种情况,如右图C/D/E

D到AB的距离=DD’的长度
C到AB的距离=AC的长度
E到AB的距离=BE的长度

任意一点X[C/D/E):Dot[XA,BA)=X在AB上的投影长度

投影长度小于0,在区域1
投影长度大于AB长度,在区域3
投影长度大于0小于AB长度,在区域2

引擎自带DrawLine函数也是这样做的
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

材质绘图:SDF矩形

矩形上下左右对称,可以只考虑4分之一区域
SDF也分为3种情况,如右图A/B/P三点
AA’的距离就是A的y坐标减矩形的半高
CC’的距离就是C的x坐标减矩形的半宽
BP的距离就是两点求distance
在这里插入图片描述
在这里插入图片描述

材质绘图:SDF五角星

在这里插入图片描述

材质绘图:复杂SDF图形

多个简单SDF结果取最小值合并
同为负时取最大值
其他SDF图形和应用:
iquilezles.org/articles/

在这里插入图片描述

SDF 字体

如下图所示,4种效果
A,普通文字贴图
B,SDF绘制的字体,描边和阴影
C,SDF绘制的轮廓
D,SDF文字
在这里插入图片描述

缩放后不失真

一次绘制描边,阴影,轮廓
step多个不同距离的结果lerp在一起即可实现描边
abs后step可得到内外距离边缘相同长度的轮廓

SDF 字体图集

下图可以看到普通文字图集(上)和SDF文字图集(下)的对比
分辨率为10241024,共1616=256个字符
SDF本质为距离数值,可根据实际使用情况考虑BiasScale预处理后再压缩
在这里插入图片描述

同样规格,1张2048,4通道,可以保存4096个字符,基本能满足常用汉字的需求
ASTC4X4压缩4MB,RGBA不压缩16MB,即使不压缩也可以考虑常驻
也可以考虑修改引擎源码,支持动态生成实际的SDF字体图集

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值