タグ付けされた質問 「opengl-es」

携帯電話などの組み込みデバイス用に設計されたOpenGL 3DグラフィックAPIのサブセット。

1
GLSL:floatをintにキャストするにはどうすればよいですか?
GLSLフラグメントシェーダーで、にキャストしようとしfloatていintます。コンパイラはエラーを発生させます: ERROR: 0:60: '=' : cannot convert from 'mediump float' to 'highp int' の精度を上げてみましたint: mediump float indexf = floor(2.0 * mixer); highp int index = indexf; しかし、無駄に。 どうすればint適切にキャストできますか?
40 opengl  glsl  opengl-es 

5
Androidが一時停止したときにOpenGLコンテキストが失われる回避策はありますか?
Androidのドキュメントには次のように書かれています: EGLレンダリングコンテキストが失われる状況があります。これは通常、デバイスがスリープ状態になってから起動したときに起こります。EGLコンテキストが失われると、そのコンテキストに関連付けられているすべてのOpenGLリソース(テクスチャなど)が自動的に削除されます。レンダリングを正しく維持するために、レンダラーは、必要な失われたリソースを再作成する必要があります。onSurfaceCreated(GL10、EGLConfig)メソッドは、これを行うのに便利な場所です。 ただし、OpenGLコンテキストですべてのテクスチャを再ロードする必要があるのは苦痛であり、一時停止後にアプリを再入力するときにユーザーのゲームエクスペリエンスが損なわれます。私は「Angry Birds」がどういうわけかこれを避けることを知っています、私は同じことを達成する方法についての提案を探していますか? 私はAndroid NDK r5(CrystaXバージョン)で作業しています。この問題に対するハッキングの可能性を見つけましたが、カスタムSDKバージョン全体のビルドを避けようとしています。

5
glScissorの目的は何ですか?
私はそれがステンシルテストよりも効率的であることを知っていますが、ビューポートで投影変換を使用して同じ機能を達成できると仮定していますか?
32 opengl  opengl-es 


3
OpenGL ES 2.0ポイントスプライトサイズ
OpenGL ES 2.0でポイントスプライトを描画しようとしていますが、頂点シェーダーでgl_PointSizeを高い値に設定しても、すべてのポイントは1ピクセルのサイズになります。 ポイントスプライトを大きくするにはどうすればよいですか?
15 opengl  3d  android  opengl-es 

2
OpenGL ES 2.0:2Dプロジェクションのセットアップ
この記事では、一般的に、固定機能パイプラインを使用してシャープなOpenGL 2Dグラフィックスを描画する方法について説明します。 http://basic4gl.wikispaces.com/2D+Drawing+in+OpenGL OpenGL ES 2.0には使用できないES 1.x関数(glOrtho()など)があるため、それらの機能はフラグメント/頂点シェーダーで置き換える必要があります。 私の質問は、プログラム可能な関数パイプラインで次の2D投影を設定する方法ですか? const XSize = 640, YSize = 480 glMatrixMode (GL_PROJECTION) glLoadIdentity (); glOrtho (0, XSize, YSize, 0, 0, 1) glMatrixMode (GL_MODELVIEW) 上記の固定機能2D投影設定を完全に置き換えるために、フラグメントシェーダーと頂点シェーダーをどのように構成する必要がありますか?

5
OpenGL ES 2.0ゲームで使用する完全な数学ライブラリですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 5年前に閉鎖されました。 OpenGL ES 2.0ゲームで使用するための完全な(またはほぼ完全な)クロスプラットフォームの数学ライブラリを知っていますか? ライブラリには以下が含まれている必要があります。 Matrix2x2、Matrix 3x3、Matrix4x4クラス 四元数 Vector2、Vector3、Vector4クラス オイラー角クラス 上記のクラス、変換などの操作。 3Dグラフィックスで標準的に使用される数学演算(ドット積、クロス積、SLERPなど) スタンドアロンまたはパッケージの一部として利用可能なそのようなMath APIはありますか? プログラミング言語:Visual C ++。ただし、OS XおよびAndroid OSに移植する予定。

1
シェーダーをコンパイルされた形式またはプレーンテキストで配布する必要がありますか?
GLSLで記述されたシェーダーを使用するアプリケーションがある場合、現実世界での配布とデスクトップおよびモバイルの最適な戦略は何ですか? 私はこれをバイナリ形式で、またはプレーンなシリアル化されたテキストとして配布することを目指しています。これについての良い提案をお願いします。

4
OpenGL ES 2.0でのジオメトリのインスタンス化
OpenGL ES 2.0でジオメトリのインスタンス化を行うことを計画しています。基本的に、同じジオメトリ(椅子)をシーンで1000回レンダリングする予定です。 OpenGL ES 2.0でこれを行う最良の方法は何ですか? モデルビューmat4を属性として渡すことを検討しています。属性は頂点データごとであるため、同じ三角形の各頂点に対してこの同じmat4を3回渡す必要があります(モデルビューは三角形の頂点全体で一定のままなので)。 これは、GPUに送信される多くの追加データに相当します(2つの追加頂点* 16フロート*(三角形の数)追加データの量)。 または、三角形ごとに一度だけmat4を送信する必要がありますか?しかし、属性は「頂点ごと」のデータとして定義されているため、属性を使用してどのように可能ですか? OpenGL ES 2.0でインスタンス化を行うための最良かつ効率的な方法は何ですか?

4
GLM:四元数に対するオイラー角
私が問題を抱えているので、GL数学(GLM)を知っていることを望みます、私は破ることができません: オイラー角のセットがあり、それらの間のスムーズな補間を実行する必要があります。最良の方法は、それらをクォータニオンに変換し、SLERPアルゴリズムを適用することです。 私が抱えている問題は、オイラー角でglm :: quaternion を初期化する方法です。 GLMドキュメンテーションを何度も読みましたが、適切なが見つからずQuaternion constructor signature、3つのオイラー角が必要です。私が見つけた最も近いものは 、角度の値とその角度の軸をとるangleAxis()関数です。注意してください、私が探しているのは、方法、解析方法RotX, RotY, RotZです。 参考までに、これは上記のangleAxis() 関数のシグネチャです。 detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)

1
glDrawArraysとglDrawElementsの違い
OpenGL ESの上で私の心をリフレッシュしている間、私は出くわしたglDrawArraysとglDrawElements。 私はそれらがどのように使用されるかを理解し、なぜそれらが異なるのかを理解しています。 私が理解していないように見えるのは、glDrawElements描画呼び出しを保存する方法がわからないということです(描画呼び出しの保存は、私が読んだほとんどの本で言及されている説明なので、ここで言及します)。 2つの三角形を使用して正方形を描こうとした単純なシナリオを想像してみてください。 を使用するglDrawArraysときに使用する6つの頂点のセットglDrawElementsが必要です。6つの要素を持つインデックス配列に加えて、4つだけ必要です。 上記を踏まえて、ここに私が理解していないものがあります: glDrawElementsインデックス配列(正方形の場合は6つのインデックス)を使用して、4つの要素(6回)を持つ頂点配列にインデックスを付ける必要がある場合、どのように描画呼び出しを保存できますか?言い換えれば、glDrawElementsそれでも合計6回の描画呼び出しが必要になるということglDrawArraysですか? glDrawElementsそれでも2つの配列、つまり頂点とインデックスの2つの配列が必要な場合、どのように保存スペースを使用しますか? 2つの三角形から正方形を描画する場合、簡単にするために、glDrawElements(頂点配列に4項目、インデックス配列にglDrawArrays6項目)および(頂点配列にのみ6項目)の描画呼び出しを個別に何回行う必要がありますか? ありがとう。

3
OpenGLでオブジェクトを曲げるにはどうすればよいですか?
OpenGLを使用して円柱や平面などのオブジェクトを曲げることができる方法はありますか? 私はOpenGL初心者(OpenGL ES 2.0を使用しています。問題があったとしても、この場合は数学が最も重要であるため、どういうわけかバージョンに依存しません)、変換、回転、行列変換などの基本を理解しています。 。オブジェクトのジオメトリを実際に変更できる(この場合はオブジェクトを曲げて)ことができるテクニックがあるかどうか疑問に思っていましたか? リンク、チュートリアル、その他の参考資料を歓迎します!

2
2.5Dワールドで深度テストとテクスチャの透明度を一緒に使用するにはどうすればよいですか?
注:私はすでに答えを見つけました(この質問の後に投稿します)-私はそれを正しく行っているのか、それとももっと良い方法があるのか​​と思っていました。 OpenGL ES(JOGL)を使用して「2.5D」アイソメトリックゲームを作成しています。「2.5D」とは、世界が3Dであることを意味しますが、2Dアイソメトリックタイルを使用してレンダリングされます。 私が解決しなければならなかった元々の問題は、テクスチャを順番に(後ろから前に)レンダリングする必要があり、タイルが適切に重なり合って適切な効果が得られるようにすることでした。少し読んだ後、私はこれが「古い帽子」の2Dアプローチであることにすぐに気付きました。3Dワールドはプレーヤーによって変更できるため(これは3D空間のどこにでも表示される可能性があるため)、これを効率的に行うことは困難になりました。深度バッファーを利用するのは理にかなっているようです。これは、私がものを正しい順序でレンダリングすることについて心配する必要がなかったことを意味しました。 しかし、私は問題に直面しました。GL_DEPTH_TESTとGL_BLEND一緒に使用すると、オブジェクトがzオーダーで「ソート」される前にオブジェクトが背景とブレンドされる効果が作成されます(つまり、透明度が必要な場所で奇妙なオーバーラップが発生します)。 問題を説明する疑似コードをいくつか示します(ちなみに、私はAndroidでlibgdxを使用しています)。 create() { // ... // some other code here // ... Gdx.gl.glEnable(GL10.GL_DEPTH_TEST); Gdx.gl.glEnable(GL10.GL_BLEND); } render() { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); Gdx.gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); // ... // bind texture and create vertices // ... } だから問題は:透明性の重なり問題をどうやって解決するのですか?

2
OpenGLでは、深度バッファーの深度範囲をどのように発見できますか?
iOS用のGLマルチパスレンダリングアプリを実行しています。最初のパスは、深度バッファーテクスチャにレンダリングします。2番目のパスでは、深度バッファーの値を使用して、フラグメントシェーダーのアプリケーションを制御します。深度バッファーの値を有用なものに再スケーリングしたいのですが、その前に、深度バッファー値の深度値の範囲を知る必要があります。どうすればいいですか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.