問題タブ [glsles]

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

java - Android OpenGL ES 2.0 VBO

OpenGL ES 2.0 を使用して Android で VBO を動作させるために数日を費やしましたが、動作させることができないようです。

私が使用しているコードは次のとおりです。

各頂点が異なる色である三角形を描画しようとしているだけなので、現時点では法線またはテクスチャの使用を実装していません。同じシェーダーと頂点/色データを使用して 1 つの色のみでレンダリングして、これを機能させたので、シェーダーが機能するはずです。

LogCat を見ると、メッセージ: : GL_INVALID_VALUE が出力されていました。次に、glGetAttribLocation を使用して見つかった colorAttribute の値を出力することにしましたが、これは -1 であることがわかりました。さらに調査したところ、 https ://www.opengl.org/sdk/docs/man/html/glGetAttribLocation.xhtml が見つかりました。これは、「名前付き属性変数がアクティブな属性ではない場合、-1 の値が返される」と述べています。指定されたプログラムオブジェクトで」。

Google を検索した後、三角形がレンダリングされないという問題の解決策が見つからなかったので、助けていただければ幸いです。

ありがとうございました。

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

ios - iOS 上の OpenGL ES 2.0 を使用したインスタンス化された描画

要するに:

iOS で OpenGL ES 2.0 を有効にして、頂点シェーダーで組み込み変数gl_InstanceID(または)を使用できるかどうかを確認できますか?gl_InstanceIDEXTGL_EXT_draw_instanced


より長いです:

glDrawArraysInstancedgl_InstanceIDを使用してオブジェクトの複数のインスタンスを描画し、iOS を含む複数のプラットフォームでアプリケーションを実行したいと考えています。

仕様には、これらの機能には ES 3.0 が必要であることが明確に記載されています。iOS Device Compatibility Referenceによると、ES 3.0 はいくつかのデバイス (A7 GPU ベースのデバイス、つまり iPhone 5s に基づいており、iPhone 5 以前では使用できません) でのみ使用できます。

そのため、古い iOS デバイスではインスタンス化された描画を使用しないようにする必要があるというのが最初の想定でした。

ただし、互換性リファレンス ドキュメントのさらに下には、 EXT_draw_instanced拡張機能がすべての SGX シリーズ 5 プロセッサ (iPhone 5 および 4s を含む) でサポートされていることが記載されています。

これにより、 glDrawArraysInstancedの適切な拡張関数 (EXT または ARB) を検索して使用することで、古い iOS デバイスでもインスタンス化された描画を実際に使用できると思います。

現在、Windows でSDLGLEWを使用していくつかのテスト コードを実行しているだけなので、iOS ではまだ何もテストしていません。

ただし、現在のセットアップでは、頂点シェーダーでgl_InstanceID組み込み変数を使用すると問題が発生します。次のエラー メッセージが表示されます。

'gl_InstanceID': 変数は現在の GLSL バージョンでは使用できません

GLSL で「draw_instanced」拡張機能を有効にしても効果はありません。

ES 3.0 (GLSL 300 ES) が必要であることを具体的に宣言すると、エラーはなくなります。

私の Windows デスクトップ マシンでは ES 2.0 コンテキストで問題なく動作するように見えますが、これが iPhone 5 で動作するとは思えません。

では、古い iOS デバイスでインスタンス化された描画を使用できるという考えを放棄しますか?

0 投票する
3 に答える
3538 参照

three.js - three.js で GLSL 3 ES を使用する

three.jsライブラリで GLSL 3 ES シェーダーを使用することに成功した人はいますか? 私が知っていることから、最新のリビジョン(r68)では不可能であるため、ディレクティブを設定することさえできないためです(これは必須であり、シェーダーコードで他の何よりも前にある必要があります):

three.js によって各シェーダーに追加されるプレフィックスのためです。

誰もその問題の解決策を知っていますか? three.js コードを変更して、threejs シェーダー プレフィックスの先頭にディレクティブを追加するだけで十分でしょうか?

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

three.js - vec4.x > 5 の単純な比較

次のフラグメント シェーダーをコンパイルできません。

(texel.x > 5) を (1 > 5) に変更すると、正常に動作します。しかし、なぜか texel.x がコンパイル エラーを引き起こします。このコードに明らかな問題がある人はいますか?

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

c# - Monodroid を使用した実際の Android デバイスで頂点スキニングが乱雑に見える

三次元アニメーションの「頂点スキニング」を問題なく行うことができます。エミュレーター(およびgenymotion)を使用すると、すべてうまくいきます。ただし、実際のデバイス(Samsung や Lenovo など)で実行すると、乱雑に見えます。

スクリーンショット (エミュレーター)

http://1drv.ms/1BzZ9Ib

ここに画像の説明を入力

スクリーンショット (実機)

1drv.ms/1BzZ2we

ここに画像の説明を入力

スキン変換行列を渡す

GLSL頂点

APK

http://1drv.ms/1BzYV3Q タッチスクリーンでアニメーションのオン/オフを切り替えます。

情報

  1. Xamarin.Android = 4.10.xx
  2. エミュレータ ターゲット = API 16 または 4.1
  3. 実デバイス ターゲット = API 16 または 4.1
  4. アプリ ターゲット = API 10 または 2.3 (API 14 および API 16 でもテスト済み)、結果は同じまま

この問題を解決する解決策はありますか?

よろしくお願いします。

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

libgdx - GLSL ES - テクスチャを直交座標から極座標に繰り返しマッピングする

長方形のテクスチャを極座標のテクスチャにワープする必要があります。私の問題に光を当てるために、私はそれを説明するつもりです:

私はイメージを持っています: 元の画像

シェーダーを使用して次のように変形する必要があります。 結果

次に、それを平面にマッピングします。これどうやってするの?どんな助けでも大歓迎です!