VRCSmokeGlassのドキュメントです
SGHitBufferWriterシェーダは、平行投影カメラから取得した深度情報を、曇りガラスの曇り度合いの情報に変換するための CustomRenderTexture専用シェーダです。 お好みに合わせて SmokeGlassシェーダ と併せて設定していくことになります。
ここには平行投影カメラで取得された深度バッファが格納されるRender Texture
を指定します。
ここに指定するものは固定となりますので、基本的に一度設定したら変更はしないでください。
これは深度情報のどれぐらいの距離を当たり判定として扱うかを決めるものです。
デフォルトは 0.99
のため、これもできるだけ変更しないようにしましょう。
曇っている部分のエッジをぼかすかどうかです。 ぼかすことによりリアルな曇り具合を演出できますが、指で文字書いたりする場合はこれをオフにすると良いでしょう。 有効/無効ボタンを用意するのもいいと思います。
Blurをonにした場合の表示
Blurをoffにした場合の表示
このチェックボックスをonにするとデフォルトの状態にもどせます。
次で説明する Enable Restoration
をオフにしている場合に使います。
ワールド内にボタンを設置し、これを有効して即座に無効にすることで曇っていない状態にもどせるため、
そのような使い方を想定しています。
これを有効にすることによって曇りを拭った状態から徐々に曇った状態へ戻る機構を有効にできます。
逆に無効にすることによって拭った状態から戻らなくすることもできます。
無効にする場合は上記の Reset
を合わせてリセットボタンなどを用意すると良いでしょう。
Enable Restoration
を有効にするとこの設定がトグルされます。
曇った状態から徐々に戻る段階の値です。デフォルトは 0.002
で、これが最小値となります。
この値は小さいほど綺麗に戻っていくので基本的にデフォルトが良いでしょう。
曇った状態から戻る速度です。デフォルトは4で、数値を大きくすることにより遅く出来ます。
最大値は10となっていますので、これは後述する Interpolation Type
と併せて調整してください。
徐々に戻る場合、どのような戻り方をするかです。デフォルトは Linear
です。
Interpolation Type
にて Hermite
を指定した時にトグルされる項目です。
エルミート補間の2つのポイントを設定します。詳細は smoothstep
で調べてください。
https://thebookofshaders.com/glossary/?search=smoothstep