問題タブ [shaderlab]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unity3d - Stencil とワールドスペースの「逆」クリッピングを組み合わせた HLSL (Unity 固有の OK、不要)
コンパニオンの「lookingGlass」シェーダーがカメラの視点から交差しない限り、非表示としてレンダリングされる作業面シェーダー (「ワンダーランド」と呼びます) を作成しました。シンプルなステンシル シェーダーの配置。
簡単です。
シェーダー設定を追加してプレーンを指定したり、ワールド空間の Z 値の最小値を指定したり、clip() を使用してそのプレーンの片側のピクセルのみをレンダリングしたりできます... (つまり、それを使用してコンテンツをトリミングできます)これは Stencil で許可されています。)
私がやりたいことは、「鏡を通して」(鏡の内側にあるジオメトリを明らかにするために) 表面にステンシルを使用し、鏡の「私たちの」側にあるときは常にそれらの表面をレンダリングすることです (常にルッキング グラス ポータルのこちら側にいるかどうかを示します)。たとえば、z<0 の場合、Stencil Ref 値が満たされていればレンダリングします。z>=0 の場合、関係なくレンダリングします。
Unity では、2 つのマテリアルを MeshRenderer コンポーネントにアタッチできます (1 つはステンシル シェーダー、もう 1 つは「プレーン カットオフ」シェーダー)。実際、少なくとも視覚的にはかなり素晴らしいです。しかし、まだベンチマークしていませんが、この配置で設定された多数のオブジェクト、かなり複雑なジオメトリなどがある場合、フレームレートに大きな影響を与えると本能的に信じています.
(コードでシェーダーのアタッチメントを管理することもできます。これは、何かが遷移することが予想される場合にのみ行いますが、不必要な描画呼び出しを避けるために、これから統合されたシェーダーを取得することを本当に望んでいます。)
unity3d - 霧の境界を越えるゲームオブジェクトを暗くする
生の画像とカスタムシェーダーで素材からフォグを作成しました。
ここで、霧の境界を越えるいくつかのゲーム オブジェクト (スプライト) を暗くしたいと考えています。
しかし、私はシェーダーの初心者です。どうすればこれを行うことができますか?マニュアル/チュートリアルまたはいくつかのアイデアへのリンクを書いてください。
わかりやすくするための図:
フォグ シェーダ:
unity3d - シェーダーで「数値型コンストラクターへの引数の数が正しくありません」というエラーが発生する
Unity シェーダーを数日間学んでいて、Shadertoy からこのオイル シェーダーを移植することにしました。
次のエラーが表示されます。
69行目の数値型コンストラクタへの引数の数が正しくありません(glcore上)
シェーダー コードの関連部分は次のとおりです。
行は、rot(p, T / 22.);
エラーがある場所です。面白いことに、このコード行を削除またはコメントアウトすると、シェーダーはコンパイルされ、正常に動作します。その行がコンパイルできない理由を知りたいです。
そのエラーの原因は何ですか?どうすれば修正できますか?
編集:
ヘリウムが指摘したように、float3x3
行列です。
以下は、元の腐敗関数です。
そして移植版:
HLSLでは同等の型であるため、 をmat2
どのように置き換えたかに注意してください。float2x2
問題はからだと思いますfloat2x2(sc.y,-sc.x,sc);
。3
これを行い、元のコードと同じようにパラメーターを使用する適切な方法は何ですか?
unity3d - Unity で光源を再現しようとしている Lara Croft Go
このビデオの効果を模倣するために、レベル ジオメトリの複数の平面に投影するライトが必要です: http://youtube.com/watch?v=vujrxOmh8Jc
しかし、私のプロジェクトは、ララ クロフト ゴー ゲームのような垂直面ではなく、平面にのみ投影されます。
私が間違っていることについての考えは大歓迎です。