【UE】SDF - 使用有向距离场(Signed Distance Fields)整各种活-4-将图片制作为距离场图

关于"如何使用函数制作 SDF(有符号距离场)",之前已经做过详细讲解,这里就不再赘述。

今天这篇文章,解决另一个需求

如何使用 Photoshop,将普通的图像资产,制作为距离场图像资产


第一步:在 PS 中搭建工作环境

最简单的距离场,就是从图像的轮廓开始向外,带有一个随距离变化的渐变效果。

例如一个三角形2D距离场基元

这是它的渐变方向

布置工作环境
  • 导入图片,放到文件夹里,后续操作这个文件夹
  • 创建纯白色背景
缩放图像
  • 缩放图像,使其最远边,距离整体边缘250px左右(原因稍后提到)

第二步:进阶制作近似的 SDF(有符号距离场)

在真正的 SDF 中,0 代表边界,负值代表内部,正值代表外部。

但是,因为普通的图像数据无法存储负值,所以我们在 PS 中采用将 0.5(中性灰)视为 0的方式来进行映射和伪造。

制作思路:

我们在 Photoshop 中调整图层样式或绘制渐变时,需要使其满足以下灰度条件:

灰色(0.5 / RGB127)代表形状边界
  • 右键文件夹,选择混合选项

  • 覆盖颜色为50%

大于 0.5 的值(从0.5渐变到1)代表形状外部距离
  • 继续添加效果 外发光 注意图中:
  1. 灰色
  2. 选择精确
  3. 扩展50% (参数居中)
  4. 大小250px作为距离单位,(这也是为什么前面要缩放尺寸)
小于 0.5 的值(0.5渐变到0)代表形状内部
  • 现在调整颜色叠加为纯黑 0%
    (之前为50%只是为了方便教学,正式生成可直接为0%)
  • 启用内发光,设置如下

通过这种手法,我们就可以在图像上生成重现 SDF 效果的"伪 SDF"。

补充说明:

这种处理思路其实和法线贴图(Normal Map)中以 0.5 为基准记录法线的方法非常相似。在法线贴图的切线空间中,各通道的值原本应该在 -1 到 +1 之间,但由于纹理无法保存负值,因此也是转换到了 0 到 1(0.5为基准)的范围内进行保存。
工作环境搭建好了,在这里切换新图就可以直接生成了

记得缩放图像到250距离


第三步:导入 UE5 的资产设置

导出
  • 选择导出为

  • 使用精度高的PNG,但丢弃Alpha通道

  • 取消勾选sRGB,作为线性图导出

导入 Unreal Engine
  • 导入图片,将压缩设置改为遮罩,或者灰度
  • 视情况,可以更改MIP设置以提升图片清晰度

延伸应用

列举一些常见应用

拿回边缘

首先,通过Step0.5可以取边缘

还原为SDF
发光
线性插值
其他

既然是SDF,那以前见过的SDF玩法都可以

相关推荐
Designerpupu20 小时前
PS2026 移除工具灰色无法点击怎么办?2026 最新故障解决教程
photoshop·ps·nano banana·创成式填充·移除工具·ps2026·智能擦除
远离UE42 天前
UE5 UV邻接 Niagara潜水模拟 学习笔记
ue5·uv
AA陈超2 天前
005 T03 — 角色基类与移动系统 详细功能设计文档
ue5
AA陈超3 天前
004 T02 - 俯视角摄像机系统 设计文档
网络·c++·ue5·虚幻引擎
AA陈超3 天前
006 T03 — 蓝图操作指南
c++·游戏·架构·ue5·github·虚幻引擎
small-pudding4 天前
3D 麻将贴图开启 Mipmaps 后远处边缘发黑,关闭后又发白,为什么?
3d·贴图
Duo1J5 天前
【UE】Slate 编辑器工具开发01 - Slate语法 & 常用控件
ue5·编辑器·游戏引擎·ue4
朗迹 - 张伟6 天前
UE5.7 PCG从入门到精通系列课程【第五课:PCG沿一条样条线生成物体】
ue5·pcg
AA陈超6 天前
003 XiYou 西游 — P0 阶段实施计划
c++·笔记·学习·ue5
Designerpupu6 天前
怎么在PS中做产品精修?传统手工精修 VS Nano Banana AI金属修图
ai·photoshop·美工·产品精修·五金精修·精修·金属精修