問題タブ [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.
opengl - フラグメント シェーダーに表示されるテクスチャを変更する
2 つのテクスチャをシェーダーに渡そうとしていますが、ここでの作業について少し混乱しています。これは OpenGL コードです
頂点シェーダーは
フラグメントシェーダーは
ラインを変えると
まだ最初のテクスチャしか表示されていませんが、以下の行をコメントアウトすると、2 番目のテクスチャが表示されます。なぜこれが起こっているのか説明していただけますか?
c++ - opengl multitexturing glsl - 一度に 1 つのテクスチャのみ
texture(texture0,textCoord)
一度使用してから、別のテクスチャで再度使用しようとすると、texture(texture1,textCoord);
(0,0,0,0) が返されるようです。理由はわかりません。
私のプログラムでは、深度が他のものよりも機能する場合、深さを使用しない場合は色のみが機能するなど、作業の順序のようです.(深さ、色、法線、位置、輝きが順序です)
これはバインディング部分です:
これはFBOクラスの可能性があります:
opengl - OpenGL シェーダー - 複数のテクスチャのオーバーラップ
テクスチャを重ねて描画するパターンが見つかりません。結果フラグメントの色を次のようにする必要があります。
tex1 + (1-tex1alpha)*tex2 + (1-tex1alpha-tex2alpha)*tex3
テクスチャを混合するのではなく、画像エディタでレイヤーのように重ねて配置します。
opengl - OpenGL 3.3マルチテクスチャ:GL_TEXTURE1以降は常に黒です(GL_TEXTURE0のみが正常に機能します)
GL_TEXTURE0(スロット0のテクスチャ)以降のすべてのテクスチャは黒です。
フラグメントシェーダー(重みを変更してさまざまなテクスチャをチェックするサンプルコード):
そのようなテクスチャをアップロードします(抜粋!):
テクスチャスロットを変更して別のテクスチャをアップロードしようとしましたが、GL_TEXTURE0でテクスチャを使用するまで、常に黒い画面が表示されます。
java - マルチテクスチャリングが LWJGL で機能しない
LWJGL でマルチテクスチャリングを試して達成するために、このチュートリアルに従いました。しかし、コードを実行するたびに、2 番目のテクスチャが表示されないか、最初のテクスチャが代わりに表示されます。テクスチャをバインドする方法は次のとおりです。
myTex と myTex2 の両方がTextures
、drawStuff()
すべてを描画する関数です。私はテクスチャなどをロードするためにslickを使用しています。これが私のbindTexture関数です:
drawStuff()
カスタムの「Face」クラスがあり、そこにすべてを描画する場所は次のとおりです。
私が作成した 3D ベクトル クラスのすべてのインスタンスはどこt1, t2, t3, norm1, norm2, norm3, p1, p2, p3
にありますか (私はt1, t2
、 との z コンポーネントに 0 を保持していますt3
)。頂点シェーダーとフラグメント シェーダーのソースは、前述のチュートリアルとまったく同じです。すべてのコードは、単純な古いテクスチャで問題なく機能していました。これをどのように機能させることができるかについてのアイデアはありますか? それとも、LWJGL を使用するときに簡単に理解できる、より優れたチュートリアルでしょうか?
c# - SharpDx は、Texture2D、SamplerState の Shader 変数名を取得します
Texture2D と SamplerState の変数名を取得できるかどうか疑問に思っています。私はエフェクト フレームワークを介してそれらを取得できることを知っています。しかし、私はこのフレームワークなしで方法を探しています。Constantbuffers (ShaderReflection) の場合と同様です。このようなHLSLコードを作りたい
EffectsFrameworkなしでVariableNamesにアクセスする方法を知っている人はいますか?
opengl - マルチテクスチャリングによるバンプ マッピング
マルチテクスチャリングを使用してバンプ マッピングを実装しようとしていますが、法線はテクスチャ カラー値 (法線テクスチャ) からライト方程式に取得されます。そのオブジェクトの表面上でカメラを回転させると、カメラの回転に伴って鏡面ハイライトがいくつか表示され、カメラを回転させると、これらのハイライトが別の部分に表示されます。バンプ マッピングの正しい実装ですか?
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 タイプです。
警告をトリガーする行は次のとおりです。
助けてくれてありがとう!