Substance Designerのディザノイズ削除
SubstanceDesignerのテクスチャですが、実は書き出すときに自動的にディザノイズがかかるという仕様になっています。
これは書き出して8bitテクスチャに落とし込まれたときのマッハバンドを抑えるための仕様なのですが、作成するものによってはひどく邪魔なときがあります。
今回はSubstanceDesignerで書き出す際のディザノイズをなくす方法について書きます。
ディザノイズはなぜ必要か?
まず、なぜ自動的にディザが入るという使用になっているのかについて解説します。
わかりやすいのがPerlinNoiseのように滑らかなグラデーションを持つテクスチャです。
SubstanceDesignerは内部的に32bitの深度を扱えるので非常に滑らかなグラデーションに見えるのですが、書き出す際にゲームなどで扱いやすいように8bitに変換するとマッハバンドが目立ってしまいます。
※ 正確にはこのような階調不足で発生する擬似輪郭をマッハバンドと呼ぶのは間違いです。トーンジャンプと呼ぶほうが意味合い的には合っていますが、なかなか言葉が通じないのでここではあえてマッハバンドと読んでいます。
このように階調不足を補うためにディザノイズを加えることは、CG屋的には慣習的に行うことですし複雑な絵の場合は気にならないので、デフォルトで有効になっているというのは気の利いた機能だということもできます。
ディザノイズがあることで困るデータとは?
色情報のようなものは概ね問題がないのですが、SubstanceDesignerではそれ以外の、例えばUVを変異させるデータを作りたくなることもあります。
例えばこのようなデータです。
ここでやりたいことはグリッド状にUVを変異させるデータなので、各セルの中身が均等に塗りつぶされていなければならないということです。
当たり前ですが、SubstanceDesignerのInfomationWindowで表示しても、値に特に問題がありません。
ところが書き出した画像をPhotoshopでみてみると、一見同じ色に見える部分でも微妙に変化があります。これがディザノイズの悪影響です。
ディザノイズをなくすには?
結論からかくと8bitでエクスポートするときにディザをなくすというオプションはありません。
ですが逆に、8bit以上のテクスチャであればディザは入らないという仕様になっているので、設定を行えばディザのないテクスチャを扱えます。8bit以上のデータを書き出すためには複数の設定を変更する必要があるので気をつけてください。
outputノードの設定で8bit以上のデータを選択します。
書き出し設定で、フォーマットを8bit以上のデータを扱えるものに変更します。(TGAは8bitのみです)
outputノードの直前のノードで、OutputFormatを8bit以上に変更します。
以上になります。
ディザノイズは便利なのですが、仕様を知らないとハマることがあるので気をつけましょう!