動作環境は Unity 2022.3 です。
Unity 上部メニューバーから Window -> Package Manager を選択し、 + ボタンを押して Add package from git URL... を選択します。
そして入力欄に以下の URL を入力し、 Add ボタンを押します。
https://github.com/Santarh/SthShader.git?path=/Packages/net.santarh.sth-shader
白黒二値テクスチャを入力に、SDF(符号付き距離場)テクスチャを生成します。
上部メニューバーから Sth Shader -> SDF Generator を選択し、ウインドウを表示します。
Input Textureに入力テクスチャをアサインします。Fix Texture Import Settingsボタンを押し、入力テクスチャの設定を正しくします。Generateボタンを押し、出力先を決めます。
生成したテクスチャは
Sth Shader/UnlitSdfシェーダでプレビューすることができます。
入力テクスチャは白黒の二値マスク画像が求められます。 白が「領域内」を示します。
入力テクスチャが満たすべき次の設定を自動で修正します。
Read/Writeフラグが ON であるCompressionがNoneである
Advanced Settings メニュー内にある、入力テクスチャのマスクのしきい値を決めることができます。
- しきい値よりも大きい値が「領域内」であると判定されます。
- しきい値は RGB チャンネルそれぞれに設定できます。
- RGB チャンネルのうちどれか一つでも「領域内」だと判定されれば、そのピクセルは「領域内」とみなされます。
たとえば R チャンネルのしきい値を
0.0にすると「R の色が 0 (黒) より明るければ「領域内」であると見做します。 逆にしきい値を1.0にすると、それより明るい色は通常ないので、すべてが「領域外」になります。
連番白黒二値テクスチャを入力に、Shadow Threshold Map(陰影しきい値マップ)を生成します。
上部メニューバーから Sth Shader -> Shadow Threshold Map Generator を選択します。
Input Textures に入力連番テクスチャをアサインします。
白領域の少ない順にアサインする必要があります。
最後に Generate ボタンを押します。
ファイル保存ダイアログで保存先を選び、画像ファイルを出力します。
テクスチャは Sth Shader/UnlitSdf シェーダでプレビューすることができます。