問題タブ [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.

0 投票する
1 に答える
213 参照

unity3d - Stencil とワールドスペースの「逆」クリッピングを組み合わせた HLSL (Unity 固有の OK、不要)

コンパニオンの「lookingGlass」シェーダーがカメラの視点から交差しない限り、非表示としてレンダリングされる作業面シェーダー (「ワンダーランド」と呼びます) を作成しました。シンプルなステンシル シェーダーの配置。

簡単です。

シェーダー設定を追加してプレーンを指定したり、ワールド空間の Z 値の最小値を指定したり、clip() を使用してそのプレーンの片側のピクセルのみをレンダリングしたりできます... (つまり、それを使用してコンテンツをトリミングできます)これは Stencil で許可されています。)

私がやりたいことは、「鏡を通して」(鏡の内側にあるジオメトリを明らかにするために) 表面にステンシルを使用し、鏡の「私たちの」側にあるときは常にそれらの表面をレンダリングすることです (常にルッキング グラス ポータルのこちら側にいるかどうかを示します)。たとえば、z<0 の場合、Stencil Ref 値が満たされていればレンダリングします。z>=0 の場合、関係なくレンダリングします。

Unity では、2 つのマテリアルを MeshRenderer コンポーネントにアタッチできます (1 つはステンシル シェーダー、もう 1 つは「プレーン カットオフ」シェーダー)。実際、少なくとも視覚的にはかなり素晴らしいです。しかし、まだベンチマークしていませんが、この配置で設定された多数のオブジェクト、かなり複雑なジオメトリなどがある場合、フレームレートに大きな影響を与えると本能的に信じています.

(コードでシェーダーのアタッチメントを管理することもできます。これは、何かが遷移することが予想される場合にのみ行いますが、不必要な描画呼び出しを避けるために、これから統合されたシェーダーを取得することを本当に望んでいます。)

0 投票する
0 に答える
122 参照

unity3d - 霧の境界を越えるゲームオブジェクトを暗くする

生の画像とカスタムシェーダーで素材からフォグを作成しました。

ここで、霧の境界を越えるいくつかのゲーム オブジェクト (スプライト) を暗くしたいと考えています。

しかし、私はシェーダーの初心者です。どうすればこれを行うことができますか?マニュアル/チュートリアルまたはいくつかのアイデアへのリンクを書いてください。

わかりやすくするための図:写真 写真

フォグ シェーダ:

0 投票する
1 に答える
1052 参照

unity3d - シェーダーで「数値型コンストラクターへの引数の数が正しくありません」というエラーが発生する

Unity シェーダーを数日間学んでいて、Shadertoy からこのオイル シェーダーを移植することにしました。

次のエラーが表示されます。

69行目の数値型コンストラクタへの引数の数が正しくありません(glcore上)

シェーダー コードの関連部分は次のとおりです。

行は、rot(p, T / 22.);エラーがある場所です。面白いことに、このコード行を削除またはコメントアウトすると、シェーダーはコンパイルされ、正常に動作します。その行がコンパイルできない理由を知りたいです。

そのエラーの原因は何ですか?どうすれば修正できますか?

編集:

ヘリウムが指摘したように、float3x3行列です。

以下は、元の腐敗関数です。

そして移植版:

HLSLでは同等の型であるため、 をmat2どのように置き換えたかに注意してください。float2x2

問題はからだと思いますfloat2x2(sc.y,-sc.x,sc);3これを行い、元のコードと同じようにパラメーターを使用する適切な方法は何ですか?

0 投票する
2 に答える
819 参照

unity3d - Unity で光源を再現しようとしている Lara Croft Go

このビデオの効果を模倣するために、レベル ジオメトリの複数の平面に投影するライトが必要です: http://youtube.com/watch?v=vujrxOmh8Jc

次のように、ポイント ライトで再現しようとしました。 カスタム減衰のユニティ ライト

しかし、私のプロジェクトは、ララ クロフト ゴー ゲームのような垂直面ではなく、平面にのみ投影されます。 ここに画像の説明を入力

私が間違っていることについての考えは大歓迎です。