SamSuka
鍵束
鍵束

fanbox


KrShaderSystemLの仕組みに関する小話

 ちょっとこまごまとした話になります。 ●まず最初に各RTでのfxファイルの割り当ての維持について。  KrShaderSystemLノーマルやマテリアルなどマップを生成します。これはMainSystem.fxと関連しています。気づいている方もいると思いますが、  『MainSystem.xを入れ替えない限り、MainSystemD.x系をいくら入れ替えようが、割り当ては維持される』 ●想定した使い方と仕組み(想定外の使い方を推奨しないわけではない)  KrShaderSystemLは、ほかのシェーダーを利用した材質とある程度同居可能な、不透明材質の描画とPostSimpleBで行う処理のためのマップ出力を一元化する仕組みです。  KrShaderSystemLでは   MainSystem.fxでまず準備をし   MainSystemD.fx系で描画し   それをShader_simple.fxを使用した材質に適用する  という仕組みになっています  ではShader_Alpha系は何なのかというと、MainSystemD.fxを簡易的に模倣するものです。透明材質を扱いたいときのためのもので、屈折系を除いてMainSystemD.fxとは関係がありません。  仕組み的にはKrShaderSystemLのほぼ外部に位置するエフェクトで、おまけのようなものです。そのため代わりにKrShaderSystemLと関係ないエフェクトを使う方がいい場合もあります。例外は屈折系ですが、それらもKrSDhaderSystemLの本体部分とは距離を置く存在です。  ※書いていて気づきましたが影の挙動もアップデートしていないためAlpha系は不具合があります。普段使っていなかったため今気づきました。近いうちに直します。  ゲームグラフィックでは不透明をディファードレンダリングで、半透明をフォワードレンダリングで行うことが多いかと思われます。  このディファードレンダリングにあたるのがKrShaderSystemLのMainSystem系で、それを反映するのがShader_simple.fx、フォワードレンダリングの部分はShader_Alpha系や外部シェーダーで行うことになります。  見える材質すべてにShader_simple.fxを使っていてパーティクルなども表示していない場合の使い方として、Shader_simple.fxを使っているスカイドーム以外をMainタブで非表示にするというものがあります。上記のやり方でもすべての材質がKrShaderSystemLを利用する形で表示されると思います。  『Shader_simple.fxを使用した材質が見えているところがMainSystemD系で描画した結果に置き換わる』  それが現行の仕組みです。 追記 記述にある影の不具合についてはVer1.142で対応しました。

Comments

説明感謝です 助かりました

RAIRAItabsa


More Creators