問題タブ [eaglcontext]
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.
iphone - EAGLContext、EAGLSharegroups、RenderBuffers、FrameBuffers、なんてこった!
iPhone OS の OpenGL オブジェクト モデルに頭を悩ませようとしています。UIView
現在、画面上でいくつかの異なるs (ビルド オンs) にレンダリングしてCAEAGLayer
います。私は現在、これらのそれぞれを個別に使用しておりEAGLContext
、それぞれにカラーレンダーバッファーとフレームバッファーがあります。
私はそれらで同様のものをレンダリングしています。これらのインスタンス間でテクスチャを共有して、メモリのオーバーヘッドを節約したいと考えています。
私の現在の理解では、同じセットアップ (いくつかのコンテキスト、それぞれに FBO/RBO があります) をEAGLShareGroup
使用できますが、最初のコンテキストを使用して後のコンテキストをスポーンする場合は、テクスチャ名 (GLuints) を単純に使用できます。後のものの最初のもの。これは正確ですか?
これが事実である場合、フォローアップの質問は次のとおりだと思います:「共有グループ」にする利点は何ですか? 同じコンテキストを再利用して、複数の FBO/RBO をそのコンテキストに関連付けることはできますか? 「オブジェクト」(テクスチャやその他の名前付きのもの) を共有しているように見えますが、コンテキストによって所有されている「状態」(マトリックス、有効/無効状態) は共有していないようです。
これを考える最良の方法は何ですか?
啓発をありがとう!
iphone - ゲームでのUIImagePickerControllerの使用
ユーザーがテレビの写真に触れて、フォトライブラリから写真を選択できるゲームを作りたいです。
UITextFieldsを操作して、サブビューとしてEAGLViewに追加することに成功しましたが、UIImagePickerControllerで同じことを行うことはできませんでした。これは、やりたいことを行う唯一の方法のようです。
どんな助けでも大歓迎です!
アップデート
zpasternackの提案により、UIImagePickerControllerDelegate、UINavigationControllerDelegateを追加し、次のメソッドを使用して、メニューを表示することができました。
最初にchooseImageFromLibraryメソッドを呼び出します。インターフェイスが表示されますが、キャンセルを押すか、アプリを選択するとすぐに停止します。
誰かが私を提案できますか:
1)キャンセルと選択ボタンを機能させる方法。2)必要なときにいつでもUIImagePickerControllerを呼び出す方法(chooseImageFromLibraryを再度呼び出すことによって??)。3)ユーザーがchooseを押したとき、ユーザーが選択したUIImageはどこにありますか?、どのように選択しますか?
ありがとう。
performance - 複数のGLESコンテキスト、1つのフレームバッファー(iOS)
独自のEAGLContextとフレームバッファを備えたブラックボックスレンダリングライブラリがあり、独自のレンダリングを行うiOSアプリを実行しています。また、ブラックボックスライブラリの外側で追加のレンダリングを行う必要があります。
これまで、フレームごとに関連するすべての状態を注意深く読み、設定し、復元することでそれを行ってきました。これは機能しますが、面倒で保守が困難です。それから、「代わりに別のEAGLContextを持ってみませんか?」と思いました。
2番目のコンテキストを実装したので、フレームごとにすべての状態を設定/復元するのではなく、コンテキストを切り替えています。唯一の問題は、視覚的なアーティファクトがたくさん発生し、パフォーマンスが30FPSから約5FPSに変化したことです...
したがって、どうやら私はいくつかのコンテキストから同じフレームバッファにレンダリングすることを意図していません。誰かがこれを確認できますか?
objective-c - Vertex Array Objects (VAOs) は OpenGL ES の EAGLContexts 間で共有できますか?
ネタバレ: 私は答えがNO
であるとかなり確信していますが、それは非常に苛立たしいデバッグの 1 日後のことです。それが実際に当てはまるかどうか(もしそうなら、私がどのように知っていたのか)、それとも完全に間違ったことをしているだけなのかを知りたいです。
これが状況です。OpenGL ES 2.0 を使用して、さまざまなファイル (.obj、.md2 など) からロードしたメッシュをレンダリングしています。パフォーマンスとユーザー エクスペリエンスのために、これらのメッシュとそれに関連するテクスチャの実際の読み込みを、GCD を使用してバックグラウンド スレッドに委譲します。
Appleの 指示に従ってshareGroup
、各バックグラウンド スレッドで、メイン レンダリング コンテキストと同じ新しい EAGLContext を作成して設定します。これにより、バックグラウンド スレッドで作成されたテクスチャやバッファ オブジェクトなどの OpenGL オブジェクトを、メイン スレッドのコンテキストですぐに使用できます。
これは見事にうまくいきました。最近、特定のバッファーのコンテンツのレンダリングに関連する OpenGL の状態をキャッシュする方法として、Vertex Array Objectsについて学びました。見栄えが良く、各メッシュのレンダリングに必要なボイラープレートの状態チェックと設定コードを減らします。さらに、Apple は、Vertex Dataガイドのベスト プラクティスでそれらを使用することも推奨しています。
しかし、VAO を機能させるには深刻な問題がありました。すべての読み込みと同様に、バックグラウンド スレッドでメッシュをファイルからメモリに読み込み、関連するすべての OpenGL オブジェクトを生成します。glDrawElements()
必ず、 VAO を使用して初めて呼び出しを試みたときに、アプリがクラッシュしEXC_BAD_ACCESS
ます。VAO がなければ、問題なくレンダリングされます。
デバッグEXC_BAD_ACCESS
は、特に NSZombies が役に立たない場合 (明らかに役に立たない場合) は苦痛ですが、キャプチャされた OpenGL フレームをしばらく分析した後、バックグラウンド スレッドでの VAO の作成は問題なく行われていることに気付きました (いいえGL_ERROR
、.およびゼロ以外の id)、メイン スレッドで VAO にバインドするときが来ると、存在しない VAO にバインドしようとすると、ドキュメントの状態が発生しGL_INVALID_OPERATION
ます。確かに、レンダリング時に現在のコンテキスト内のすべてのオブジェクトを見ると、単一の VAO は表示されませんが、VAO AT THE SAME TIMEで生成されたすべての VBOが存在します。メイン スレッドに VAO をロードすると、正常に動作します。とてもイライラします。
読み込みコードをよりアトミックな形式に抽出しました。
EAGLContext
上記がメイン コンテキストと同じ有効なバックグラウンド スレッドで実行されるとshareGroup
、メイン コンテキストには 4 つの VBO がありますが、VAO はありません。メイン スレッドでメイン コンテキストを使用して実行すると、4 つの VBO と VAO が作成されます。EAGLContext
これにより、VAO を扱う場合の s のオブジェクト共有の性質には奇妙な例外があるという結論に至ります。もしそうなら、私はAppleのドキュメントがどこかにそれを指摘することを本当に期待していたでしょう. そのようなちょっとした情報を手で発見しなければならないのは非常に不便です。これは事実ですか、それとも何か不足していますか?
iphone - 異なる ViewControllers/EAGLViews で同じ EAGLContext を使用する
同じEAGLContext
全体を使用すると、いくつかの問題が発生しEAGLViews
ます。2 つの View Controller があり、それぞれに 1 つのEAGLView
.
各ビュー コントローラは新しいEAGLContext
を割り当て、後続のフレームバッファ/カラーバッファがそれぞれの ごとに作成されますEAGLView
が、これはメモリ リソースの無駄です。
EAGLContext
異なるフレームバッファ/カラーバッファを異なるにバインドするだけで、ViewController間で同じものを使用できることを私は知っていますEAGLViews
:
しかし、私はこれまでのところそれを達成することができませんでした。
何か案は?
前もって感謝します。
opengl-es - CoreImage: EAGLContext フレームバッファまたはレンダバッファが正しく構成されていません
CoreImage で描画するために GLKViewController/GLKView をセットアップすると、タイトルに通知が表示されることがあります。
セットアップは次のようになります。
GLKView に UIKit サブビューがあり、ビューを追加/削除すると、コンテキストが一時的に無効になるようです。事は(まだ角を曲がる必要があるいくつかのまれなケースを除いて)問題なくコンテキストで描画できる次の更新です.
失敗した場合は描画を再試行しても問題ありませんが、コンテキストが無効であることをどのように知ることができますか? どうすればそれを検出したり、無効化されないようにしたりできますか?
ios - iOSでEAGLContextでUIImageを描画する方法は?
「指絵アプリ」をやっています。私はAppleの例[ここ][1]を使用しています。
しかし、元に戻すオプションを追加したいと思います。これを行うために、アプリがタッチイベントの終了を処理するたびに、EAGLContextコンテンツを画像に保存しています。
次の方法で保存された最後の画像を描画したい場合に問題が発生します。
}
ただし、画像は描画されず、次のようなコンソール出力があります。
文脈に問題があると思いますが、理解できないようです。
ありがとう
objective-c - XcodeスクリーンショットEAGLContext
重複の可能性:
EAGLViewからUIImageを取得する方法は?
だから私は、EAGLContextに保存されているものをUIImageとして保存する方法を誰かが知っているかどうか疑問に思っていました。
私は現在使用しています:
私が持っている他のアプリでは、これは正常に機能しますが、明らかに、EAGLContextには.layerプロパティがありません。UIViewにキャストしようとしましたが、当然のことながら、機能しません。
OpenGLES 1を使用して、UIViewのEAGLContextプロパティ(技術的には、View Controllerの別のUIViewのUIViewのEAGLContextですが、違いはないと思います)を描画しています。
誰かがこれについて何か知っているなら、それが私が不可能な木を完全に吠えているというだけであっても、私に知らせてください!
マット
iphone - GLKViewController (GLKView) glReadPixels は iO6 の後に黒いピクセルを返します
私は GLKView で GLKViewController を使用しています。ios5 では正常に動作し、io6 の更新後に glReadPixels が動作を停止し、黒いピクセルのみが返されます。
preserveBackBuffer について何か読みましたが、まだ成功していません
私のGLKViewのセットアップ:
解決への道のりは?(私はここでそれを試みますが、まだ動作しません)
シェーダー処理後にカメラを記録するために glReadPixels を使用しています
すべてのヘルプが受け入れられます, ありがとう,
ios - サブビューとして複数の GLPaint の描画ビューを持つ UIScrollView ; 画面キャプチャ
UIScrollView
サブビューとして複数の描画可能なビューを持つがあります。Apple の GLPaint コードを使用しています。私の問題は、UIScrollView's
コンテンツをキャプチャして を形成するときUIImage
に、図面ビューの状態がキャプチャされないことです。以下は、キャプチャに使用するコードです。
誰でもこの問題を手伝ってもらえますか?
ありがとう!!