問題タブ [opengl-es-2.0]
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-es - Matrixmultiplication - glTranslate の独自の実装? 間違ったマトリックス
次の射影行列があると仮定します(gluPerspective(40, 1.0, 0.2, 200.0);
単位行列を使用して計算されます):
glTranslatef(0.0, 0.0, -10.0);
このマトリックスでコマンドを実行したいとします。openGL ES 1.1関数を使用すると、次のようになります(私の意見では正しいようです):
しかし、独自の実装 (openGL ES 2.0) を使用すると、奇妙な動作が発生します。
私のコードは、Apples openGLES1/2 Example とこのサイトhttp://iphonedevelopment.blogspot.com/2009/06/opengl-es-from-ground-up-part-7_04.htmlに非常に似ています:
これを2日間デバッグしていますが、何が欠けているのかわかりました...何かアイデアはありますか?
java - テクスチャがいつ破壊されたかを検出する方法
Android でテクスチャが破棄されたことを検出するにはどうすればよいですか? 現在、GLSurfaceView の Renderer クラスは次のようになっています。
問題は、それが常に機能するとは限らないことです。ゲームのホームボタンを押してからもう一度起動すると、魔法のように機能します。しかし、デバイスをロックしてから再度ロックを解除すると、すべてのテクスチャが真っ黒になります。ロックするとすべてがリセットされるようです (私のゲームは常にメイン メニューに戻ります)。ホームボタンでゲームを終了し、その後ロック/アンロックを行ってもゲームがリセットされません。
android - AndroidのネイティブコードでGLUtを使用するにはどうすればよいですか?
私は現在、Android 用の NDK で遊んでおり、OpenGL ES 2.0 の機能を試しています。しかし、画像を OpenGL テクスチャにロードする方法がわかりません。私の計画は、ネイティブ関数呼び出しでビットマップを送信し、GLUt を使用してテクスチャを作成することです。では、Android プラットフォームのネイティブ コードで GLUt を使用するにはどうすればよいですか?
それとも、これは彼が問題を間違って受け止めているのでしょうか?
(下手な英語でごめんなさい)。
事前にサンクス!
opengl-es - GLSLでテクスチャと色を一緒に?
OpenGL ES 2.0 で OpenGL ES 1.1 と同様の結果を得る方法がわかりません。実際に Sampler2D を使用して (テクスチャとアルファ チャネルをフレーム バッファにブレンドするため)、色も設定したいと考えています。テクスチャは色でペイントする必要があります-OpenGL ES 1.1のように、私のFragmentShaderは次のようになります:
しかし、「+ colorVarying」の部分は私のアルファチャンネルを黒で破壊し (AlphaValue が 0 の場合、colorVarying も追加するため)、奇妙なグラデーション効果を生み出します...固定関数パイプラインでテクスチャとカラーチャンネルをどのように組み合わせますか? glColor4f の私の代替品は次のとおりです。
そして、私は glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); を使用しています。これが何らかの形で関連している場合...
色 1.0、0.0、1.0、1.0 については、次のようになります。
そして、私は取得したい:
これを達成するためのアイデアはありますか?どんな助けでも大歓迎です。
java - OpenGL ES 2.0を使用したAndroidライブ壁紙?
誰かがOpenGLES2.0をライブ壁紙で動作させることができましたか?OpenGL ES 2.0を使用し、GLSurfaceViewのレンダラーとして正常に実行されるクラスがあります。ただし、ライブ壁紙として機能させたい。Robert GreenのGLWallpaperServiceを見つけましたが、これは古いバージョンのGLSurfaceViewに基づいており、OpenGLES2.0の実行に必要なsetEGLContextClientVersionをサポートしていません。
glsl - 単純な水面効果の GLSL
OpenGL ES 2.0 で単純な水面効果を実装する方法についての指針を探しています。反射や屈折のような派手なものはなく、時間とともに変化する基本的な波紋/波の効果です。パフォーマンスは重要です。これはシェーダーで行うのが最適だと思います。
これを最もよく処理する方法についての指針はありますか?
opengl-es - 個々のOpenGLUIコントロールの移動とスケーリング
私はOpenGLを初めて使用し、OpenGL2.0に関するすばらしいチュートリアルを読んだばかりです。私のターゲットはOpenGLES2.0です。
コントロールで構成されるUIを作成する必要があります。コントロールは編集モードで移動できます。コントロールごとに頂点を作成してGPUにアップロードし、単純な頂点シェーダーを使用してこれをすべて画面にマッピングすることには、個々のパーツ(コントロール)の移動とスケーリングに関して制限があると思います。私はここにいますか?
幅/高さ/左/上/スライダーの位置など、コントロールで定義されたその他の属性など、コントロールごとに統一された属性を作成する方がよいと思います。次に、巧妙なシェーダーを使用して、一定の頂点を画面にインテリジェントにマッピングします。その後、ホストアプリは、毎回新しい頂点のセットをアップロードするのではなく、コントロールの均一な属性を更新する必要がありました。
おすすめは何ですか?これに焦点を当てた例やチュートリアルはありますか?
opengl-es - OpenGL ES 2.0 の glTexGen
glTexGen の GLSL 置換を GL_OBJECT_LINEAR で実装するために数時間試みてきました。OpenGL ES 2.0 用。Ogl GLSL には、これを簡単にする gl_TextureMatrix がありますが、OpenGL ES 2.0 / OpenGL ES Shader Language 1.0 では利用できません。
いくつかのサイトでは、GLSL vert シェーダーでこれを行うのは「簡単」であると述べています。しかし、私はそれを機能させることができません。
私の直感では、飛行機を正しく設定していないか、私の理解に何かが欠けています。
私はウェブを熟読しました。しかし、ほとんどのサイトは投影されたテクスチャについて話しているので、平面投影に基づいて UV を作成しようとしているだけです。モデルは Maya で構築されており、50,000 個のポリゴンがあり、モデラーは平面マッピングを使用していますが、Maya は UV をエクスポートしません。だから私はこれを理解しようとしています。
glTexGen のマンページ情報を見てきました。
g = p1xo + p2yo + p3zo + p4wo
グとは?g は texture2d 呼び出しの s の値ですか?
私はサイトを見てきました:
http://www.opengl.org/wiki/Mathematics_of_glTexGen
別のサイズで同じ機能が説明されています。
座標 = P1*X + P2*Y + P3*Z + P4*W
coord (私の頭の中の UV vec2) が内積 (スカラー値) と等しいかどうかわかりませんか? 「g」で以前に発生したのと同じ問題。
飛行機を何に設定しますか?私のopengl c++ 3.0コードでは、[0、0、1、0](基本的にユニットz)に設定すると、glTexGenがうまく機能します。
私はまだ何かが欠けています。
私の頂点シェーダーは基本的に次のようになります: WVPMatrix = World View Project Matrix. POSITION はモデル頂点の位置です。
フラグ シェーダー
Fragシェーダーでtexture2DProjを試しました
ここに私が調べた他のリンクのいくつかがあります
http://www.gamedev.net/topic/407961-texgen-not-working-with-glsl-with-fixed-pipeline-is-ok/
前もって感謝します。
opengl-es-2.0 - Nvidia Tegra 用の OpenGL ES 2.0 オフライン シェーダ コンパイラ
Nvidia Tegra チップ用に OpenGL ES 2.0 シェーダーをオフラインでコンパイルする方法を知っている人はいますか? どのツールを使用すればよいですか? ありがとう。
android - OpenGL ES での GPU プロファイリングとコールバック
DirectX と同様に、OpenGL ES にコールバックを追加する方法はありますか? GPU のパフォーマンスをプロファイリングしようとしているので、GPU の特定の部分を実行するのにかかった時間を把握しようとしています。
理想的には、マーカー/コールバックを「プッシュ」してから、一連の GL 描画呼び出しを呼び出し、別のマーカーをプッシュしてから、1 フレーム後にこれら 2 つのマーカーの間で経過したミリ秒数を調べます。
(GPU パフォーマンスをプロファイリングする他の方法も役に立ちます。)