Imagemagick 翻转通道并创建 alpha 通道(Unreal RMA 到 Unity RMA)
Imagemagick flip channels and create an alpha channel (Unreal RMA to Unity RMA)
所以我有一堆带有 RMAO 贴图的 3D 模型来定义 PBR 通道。在 unreal engine 中,这样做是为了在遮罩纹理中指定粗糙度、金属度和环境遮挡通道:
- R = 环境遮挡
- G = 粗糙度
- B = 金属度
现在我想将我的资产转移到 unity,但 unity 使用不同的系统并具有以下设置:
- R = 金属色
- G = 环境遮挡
- B = 空
- A = 平滑度(基本上是反粗糙度)
所以基本上这可以归结为执行以下操作:
R <- B
G <- R
B <- pure black
A <- Inverted G
我试过这个命令magick convert 'texture.png' -alpha opaque -separate -swap 0,2 -swap 1,2 -swap 3,2 -swap 2,2 -combine png32:texture_new.png
但结果没有单独的 alpha 通道,所以不透明度在 RGB 通道上。
所以我基本上想要做的是将 RGB 纹理转换为 RGBA 纹理,稍微翻转通道,然后反转 alpha 通道。这可以用 imagemagick 实现吗?
我不使用 Unreal 或 Unity,所以我无法检查它,但如果它不起作用,它可能会帮助您找到一种方法。
我正在布置它,所以每一行都应该产生您需要的输出通道之一:
magick texture.png -write MPR:orig -channel B -separate \
\( MPR:orig -channel R -separate \) \
\( MPR:orig -channel R -separate -threshold 100% \) \
\( MPR:orig -channel G -separate -negate \) \
-combine PNG32:result.png
顺便说一下,magick convert ...
几乎总是 。
如果不行,你可以在每个阶段输出每个通道,看看哪个是错误的:
magick texture.png -write MPR:orig -channel B -separate -write newR.png \
\( MPR:orig -channel R -separate -write newG.png \) \
\( MPR:orig -channel R -separate -threshold 100% -write newB.png \) \
\( MPR:orig -channel G -separate -negate -write newA.png \) \
-combine PNG32:result.png
所以我有一堆带有 RMAO 贴图的 3D 模型来定义 PBR 通道。在 unreal engine 中,这样做是为了在遮罩纹理中指定粗糙度、金属度和环境遮挡通道:
- R = 环境遮挡
- G = 粗糙度
- B = 金属度
现在我想将我的资产转移到 unity,但 unity 使用不同的系统并具有以下设置:
- R = 金属色
- G = 环境遮挡
- B = 空
- A = 平滑度(基本上是反粗糙度)
所以基本上这可以归结为执行以下操作:
R <- B
G <- R
B <- pure black
A <- Inverted G
我试过这个命令magick convert 'texture.png' -alpha opaque -separate -swap 0,2 -swap 1,2 -swap 3,2 -swap 2,2 -combine png32:texture_new.png
但结果没有单独的 alpha 通道,所以不透明度在 RGB 通道上。
所以我基本上想要做的是将 RGB 纹理转换为 RGBA 纹理,稍微翻转通道,然后反转 alpha 通道。这可以用 imagemagick 实现吗?
我不使用 Unreal 或 Unity,所以我无法检查它,但如果它不起作用,它可能会帮助您找到一种方法。
我正在布置它,所以每一行都应该产生您需要的输出通道之一:
magick texture.png -write MPR:orig -channel B -separate \
\( MPR:orig -channel R -separate \) \
\( MPR:orig -channel R -separate -threshold 100% \) \
\( MPR:orig -channel G -separate -negate \) \
-combine PNG32:result.png
顺便说一下,magick convert ...
几乎总是
如果不行,你可以在每个阶段输出每个通道,看看哪个是错误的:
magick texture.png -write MPR:orig -channel B -separate -write newR.png \
\( MPR:orig -channel R -separate -write newG.png \) \
\( MPR:orig -channel R -separate -threshold 100% -write newB.png \) \
\( MPR:orig -channel G -separate -negate -write newA.png \) \
-combine PNG32:result.png