【问题标题】:Imagemagick flip channels and create an alpha channel (Unreal RMA to Unity RMA)Imagemagick 翻转通道并创建 alpha 通道(Unreal RMA 到 Unity RMA)
【发布时间】:2021-07-06 06:18:07
【问题描述】:

所以我有一堆带有 RMAO 地图的 3D 模型来定义 PBR 通道。在虚幻引擎中,这样做是为了在遮罩纹理中分配粗糙度、金属度和环境光遮蔽通道:

  • 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 实现吗?

【问题讨论】:

    标签: unity3d imagemagick unreal-engine4


    【解决方案1】:

    我不使用 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 ... 几乎总是wrong


    如果不行,你可以在每个阶段输出每个通道,看看哪个是错误的这样:

    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
    

    【讨论】:

      猜你喜欢
      • 2021-07-21
      • 1970-01-01
      • 2021-09-29
      • 2011-02-04
      • 2016-05-09
      • 2022-12-05
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多