問題タブ [multitexturing]

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 に答える
1157 参照

opengl - フラグメント シェーダーに表示されるテクスチャを変更する

2 つのテクスチャをシェーダーに渡そうとしていますが、ここでの作業について少し混乱しています。これは OpenGL コードです

頂点シェーダーは

フラグメントシェーダーは

ラインを変えると

まだ最初のテクスチャしか表示されていませんが、以下の行をコメントアウトすると、2 番目のテクスチャが表示されます。なぜこれが起こっているのか説明していただけますか?

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

c++ - opengl multitexturing glsl - 一度に 1 つのテクスチャのみ

texture(texture0,textCoord)一度使用してから、別のテクスチャで再度使用しようとすると、texture(texture1,textCoord);(0,0,0,0) が返されるようです。理由はわかりません。

私のプログラムでは、深度が他のものよりも機能する場合、深さを使用しない場合は色のみが機能するなど、作業の順序のようです.(深さ、色、法線、位置、輝きが順序です)

これはバインディング部分です:

これはFBOクラスの可能性があります:

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

opengl - OpenGL シェーダー - 複数のテクスチャのオーバーラップ

テクスチャを重ねて描画するパターンが見つかりません。結果フラグメントの色を次のようにする必要があります。

tex1 + (1-tex1alpha)*tex2 + (1-tex1alpha-tex2alpha)*tex3

テクスチャを混合するのではなく、画像エディタでレイヤーのように重ねて配置します。

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

opengl - OpenGL 3.3マルチテクスチャ:GL_TEXTURE1以降は常に黒です(GL_TEXTURE0のみが正常に機能します)

GL_TEXTURE0(スロット0のテクスチャ)以降のすべてのテクスチャは黒です。

フラグメントシェーダー(重みを変更してさまざまなテクスチャをチェックするサンプルコード):

そのようなテクスチャをアップロードします(抜粋!):

テクスチャスロットを変更して別のテクスチャをアップロードしようとしましたが、GL_TEXTURE0でテクスチャを使用するまで、常に黒い画面が表示されます。

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

java - マルチテクスチャリングが LWJGL で機能しない

LWJGL でマルチテクスチャリングを試して達成するために、このチュートリアルに従いました。しかし、コードを実行するたびに、2 番目のテクスチャが表示されないか、最初のテクスチャが代わりに表示されます。テクスチャをバインドする方法は次のとおりです。

myTex と myTex2 の両方がTexturesdrawStuff()すべてを描画する関数です。私はテクスチャなどをロードするためにslickを使用しています。これが私のbindTexture関数です:

drawStuff()カスタムの「Face」クラスがあり、そこにすべてを描画する場所は次のとおりです。

私が作成した 3D ベクトル クラスのすべてのインスタンスはどこt1, t2, t3, norm1, norm2, norm3, p1, p2, p3にありますか (私はt1, t2、 との z コンポーネントに 0 を保持していますt3)。頂点シェーダーとフラグメント シェーダーのソースは、前述のチュートリアルとまったく同じです。すべてのコードは、単純な古いテクスチャで問題なく機能していました。これをどのように機能させることができるかについてのアイデアはありますか? それとも、LWJGL を使用するときに簡単に理解できる、より優れたチュートリアルでしょうか?

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

c# - SharpDx は、Texture2D、SamplerState の Shader 変数名を取得します

Texture2D と SamplerState の変数名を取得できるかどうか疑問に思っています。私はエフェクト フレームワークを介してそれらを取得できることを知っています。しかし、私はこのフレームワークなしで方法を探しています。Constantbuffers (ShaderReflection) の場合と同様です。このようなHLSLコードを作りたい

EffectsFrameworkなしでVariableNamesにアクセスする方法を知っている人はいますか?

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

opengl - マルチテクスチャリングによるバンプ マッピング

マルチテクスチャリングを使用してバンプ マッピングを実装しようとしていますが、法線はテクスチャ カラー値 (法線テクスチャ) からライト方程式に取得されます。そのオブジェクトの表面上でカメラを回転させると、カメラの回転に伴って鏡面ハイライトがいくつか表示され、カメラを回転させると、これらのハイライトが別の部分に表示されます。バンプ マッピングの正しい実装ですか?

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

canvas - ビデオを使用した WebGL マルチテクスチャリング

フラグメント シェーダーで 2 つのテクスチャを使用しようとしていますが、WebGL でテクスチャを適切に送信するのに問題があります。一度に 1 つずつ送信できますが、両方を同時に送信しようとすると、真っ黒になります。他にもマルチテクスチャリングの例をいくつか見てきましたが、それらはすべて画像の配列の読み込みを扱っています。

ビデオを 1 つのテクスチャにロードし、キャンバスを 2 つ目のテクスチャにロードしたいと考えています。私が書いた c++ opengl プログラムからシェーダーを移動しているだけなので、すべてのシェーダーが正常であることはほぼ確実です。また、動画やキャンバスをそれぞれコメントアウトすることで個別に表示することもできますが、上記のように一緒にするとエラーになるようです。

これは、テクスチャを作成して塗りつぶしているコードのスニペットです。

そして、私の描画ループ内:

次のような警告メッセージも表示されます。

GL_INVALID_ENUM : glActiveTexture: テクスチャは GL_FALSE でした

GL_INVALID_ENUM : glActiveTexture: テクスチャは GL_LINES でした

また:

WebGL: drawArrays: テクスチャ ユニット 0 にバインドされたテクスチャはレンダリングできません。2 の累乗ではなく、テクスチャ フィルタリングに互換性がないか、「テクスチャが完全」ではありません。または、OES_float_linear または OES_half_float_linear 拡張機能が有効になっていないときに、テクスチャがリニア フィルタリングを使用する Float または Half Float タイプです。

警告をトリガーする行は次のとおりです。

助けてくれてありがとう!