問題タブ [glsurfaceview]
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.
android - GLSurfaceViewのビューがちらつくか、まったく表示されない
大小のビューViewGroup
を含むを使用します。GLSurfaceView
ビューは。の上に描画されGLSurfaceView
ます。ビューはドラッグ中に表示されますが、移動が終了してタブレットから指を離すとすぐに消えます。これは、設定されている場合にのみ発生することがわかりましたsetRenderMode(RENDERMODE_WHEN_DIRTY)
。これは、画像が継続的にレンダリングされるときに機能しますが、パフォーマンスにかなり悪い影響を及ぼします。
ViewGroupの代わりに使用するRelativeLayout
と、タブレットから指を離した後にビューが表示されますが、ビューをゆっくり動かすとちらつきます。
GLSurfaceView
はViewGroup全体に塗りつぶされず、ViewはViewGroup全体に移動できるため、OpenGLでビューを描画することはできません。
これが問題を示す完全なサンプルです:
android - 通常のビューを GLSurfaceView に変換するチュートリアル
私はopenglのプログラミングとandroid sdkの使用の両方の経験がありますが、androidでopenglを使用したことはなく、通常のビューとキャンバスのみを使用してすべての描画を行うプロジェクトがあります。アプリを実世界で使用し始めるまでは問題ありませんでしたが、画面上に一度に 40 以上のビットマップが浮かんでいる可能性があり、新しいテスト ハードウェアでもアプリの速度が大幅に低下しました。
opengl es、ndk、または an を使用できることはわかっていますがGLSurfaceView
、コミュニティから知りたいです。
既存のビューを に変換するためのチュートリアルや資料はありGLSurfaceView
ますか?
opengl を使用すると、GLSurfaceView
パフォーマンスが大幅に向上すると考えています。書き直したいカスタム ビューは非常に簡単ですが、それを拡張GLSurfaceView
して適切に Renderer を作成するのに苦労しました。すべてを透明にした場合を除いて、すべてが黒くなり、どちらにしても何も見えませんでした。
したがって、誰かが「ドキュメントを読む」という回答を私に惜しまないで、3日間の読書時間を節約できるチュートリアルを教えてくれれば、喜んで感謝します:)
android - Android で複数の OpenGL ビューを動的に表示/非表示にする
Android 内の GLSurfaceView で画像を動的にレンダリングするために OpenGL を使用しています。アプリケーションは、カスタム GLSurfaceView の複数のインスタンスを持つ (静的) XML ベースのレイアウトに対して完全に正常に動作します。(画像の左上と右上)
これらのインスタンスが可視性値によって動的に交換される場合、最後に表示された OpenGL イメージが新しいイメージの上に表示されます。(画像左下と右下)
左上の写真: 4 インスタンス、通常サイズ
右上の写真: 4 つのインスタンス、大きいサイズ
左下の写真: 1 インスタンス、通常サイズ (不要なオーバーレイとしての左上の写真)
右下の写真: 1 つのインスタンス、大きなサイズ (不要なオーバーレイとしての左上の写真)
私がこれまでに試したこと:
- 不要なインスタンスを削除しませんでした:
- android::visibility="gone" で未使用の画像を非表示にします (スムーズに動作しません)
- ビューを可視領域の外に移動し、0 x 0 にサイズ変更します
- 出力を簡素化するために、動的画像の代わりに無地の色を使用する
- ビューを無効にすることでビューの再描画を強制します(実際、ビューが提供するほとんどすべての機能を試しました)
- onDraw() 関数のさまざまなバッファーをクリアします (GLSurfaceView が提供するほぼすべての関数を実際に試しました)。
- onPause() イベントで強制的にレンダラーを停止する
- ViewPager を使用してビューを切り替える
- 不要なインスタンスを正常に削除しました:
- アプリを再起動してOpenGLを再起動します(このようには使用できません)
- android::visibility="gone" で他のすべての GLSurfaceViews を再帰的に非表示にします (エンジンにバグが発生したため、動作しなくなりました)
不要な画像は、ビューの可視性の変更のようなレイアウトのリフローでは変更されません。GLSurfaceView が別の GLSurfaceView の上にある場合にのみ表示されます (android::visibility="gone" で非表示)。代わりに ImageView を使用しても問題ありません。最初に作成されたインスタンスには、この問題はありません。これは、子スタックの一番上 (または一番下?) にあり、その兄弟の上にあるためです。
Android は、GLSurfaceView のすべてのインスタンスで使用される OpenGL ベースのビューを 1 つだけサポートしていると思います。すべてのインスタンスはいくつかの設定 (特に可視性) を共有しているように見えるため、単にオフにしたり移動したりすることはできません。
GLSurfaceView クラス:
複数の OpenGL ビューを互いの内部 (特に上部) で使用することは可能ですか? 可視性の値を使用せずにそれらを交換するより良い方法はありますか?
android - glsurfaceviewのAndroidsetHeight
glsurfaceviewの高さをカスタムの高さで設定したい。幅は高さと同じにしたいです。android:layout_width="fill_parent"を使用します。width = height = width_of_the_screenにするにはどうすればよいですか?
どうもありがとう
android - OpenGL スクリーンショット Android
GLSurfaceView を使用して Android で 3-D の機能を実行するアプリケーションがあります。ユーザーがスクリーンショットを撮れるようにしてほしい。このコードのスニペットは、ピクセルの色を保存し、ビットマップ内に保存する必要があると思います。ただし、画面が使用している gl10 要素にアクセスする方法を誰かが知っているので、この関数にフィードできますか?
GLSurfaceView を呼び出すアクティビティ内からこれを実行しようとしました。
しかし、int バッファのすべての要素がゼロなので、これは正しくないと思います。
android - すべてのオブジェクト/座標を表示するために表示可能領域のサイズを変更する方法は?
GLSurfaceArea でいくつかのオブジェクトを作成しています (これに似ています: http://www.droidnova.com/android-3d-game-tutorial-part-ii,328.html )。すべて正常に動作しますが、座標が -1.0 ~ +1.0 の間隔にあるポイントのみが表示されます。表示可能な領域のサイズを変更して、この領域にない座標を表示する方法はありますか (たとえば、(-2.0、2.0、0.0))?
android - glReadPixels 遅すぎて使えない
の方法 glReadPixels
で定期的にスナップショットを撮るために使用しています。アプリの要件に従ってデータを保存し続けるために、定期的にこのスナップショットを作成する必要があります。drawFrame
GLSurfaceView.Renderer
ただしglReadPixels
、パフォーマンスは非常に遅く、ラグが発生します。メソッドの使用方法は次のとおりです。
使用する代替手段はありますglReadPixels
か? ラグを発生させずに画像を保存するにはどうすればよいですか?
android - Android GLSurfaceView
GLSurfaceViewにLinearLayoutを追加することは可能ですか?GLSurfaceViewにLinearLayoutをオーバーレイする方法は?多分GLSurfaceViewはゲームの遊び場であり、LinearLayoutはメニューバーです〜
android - 以前のバージョンの Android ハニカムで OpenGL ES オブジェクトの形状が正しく描画されない
私は円を描いていますが、AndroidでJava opengl ESを使用して基本的な形状(正方形、ダイヤモンドなど)を描いていても。
ハニカムでアプリケーションを実行すると、形状はうまくいきますが、ジンジャーブレッドで実行すると、描画される(散らばる)不要なポイントがさらに少なくなり、実行し続けると、それらのポイントがなくなることはめったにありません。
私のレンダラークラス、
私のサークルクラスでは
私は本当に手がかりが少ない.. Androidバージョン<3.0で正しく描画されない理由がわかりません。
編集:私はそれを解決しようとしましたが、ポイントをプロットしようとすると、Android 2.3.3 でビューポートから出て行く頂点がほとんどないことがわかりました (無限大かもしれません)。 Android 3.0 適切な形状を描画します。
手伝ってください。