問題タブ [opengl-es]
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.
objective-c - iPhone openGLES アプリを OSX に移植しますか?
iPhone 向けの開発は、objective-c での私の最初の経験であり、xcode での最初の詳細な経験でした。openGL を使用して、openGLES iPhone アプリを OSX デスクトップに移植するのはどれほど難しいでしょうか? ユーザー インターフェイスについて質問しているわけではありません。明らかに、デスクトップにはココア タッチ UI に相当するものはありません。アプリデリゲートとopenGLESレイヤーについて具体的に質問しています。大きなハードルはありますか?タイプ cocoa のプロジェクトで新しいアプリ デリゲートを作成するのと同じくらい簡単ですか?
iphone - iPhoneのメモリ消費について
OpenGL ES を使用して 2D の iPhone ゲームを作成していますが、24 MB のメモリ制限に達し続けています。アプリケーションがエラー コード 101 でクラッシュし続けています。私が期待するよりも大きい。
Memory Monitor、Object Alloc、Leaks、および OpenGL ES インストゥルメントを使用してアプリケーションを実行しました。アプリケーションが読み込まれると、空き物理メモリが 37 MB から 23 MB に減少し、オブジェクトの割り当ては約 7 MB で落ち着き、リークはサイズが数バイトの 2 つまたは 3 つのリークを示し、Gart オブジェクト サイズは約 5 MB であり、メモリ モニターは、アプリケーションは、約 14 MB の実メモリーを占有します。メモリがどこに行ったのか当惑しています。オブジェクトの割り当てを掘り下げると、ほとんどのメモリは予想どおりテクスチャにあります。しかし、私自身のテクスチャ割り当てカウンターと Gart Object Size の両方が、テクスチャが約 5 MB を占めるはずであることに同意しています。
言及する価値のあるものを他に割り当てていることは認識しておらず、Object Alloc も同意しています。記憶はどこへ行く?(これで十分でない場合は、詳細を提供していただければ幸いです。)
更新:私は本当に多くのメモリを割り当てることができる場所を見つけようとしましたが、結果はありませんでした. 私を夢中にさせるのは、オブジェクトの割り当て (~7 MB) とメモリ モニター (~14 MB) で示される実際のメモリ使用量の違いです。私が忘れている巨大なリークや巨大なメモリのチャンクがあったとしても、それは Object Allocationsに表示されるはずですよね?
私はすでに通常の 容疑者を試しました。キャッシングを使用しましたUIImage
が、それは役に立ちませんでした。各ステートメントがメモリ使用量に与える影響を監視しながら、メモリ使用量を「デバッガー スタイル」で 1 行ずつ追跡する方法はありますか?
私がこれまでに見つけたもの:
私は本当に多くのメモリを使用しています。実際のメモリ消費量を測定するのは簡単ではありませんが、たくさん数えてみると、メモリ消費量は本当に多いと思います。私のせいです。
使用されたメモリを測定する簡単な方法が見つかりませんでした。メモリ モニタの数値は正確ですが (これらは実際に重要な数値です)、メモリ モニタはメモリがどこにあるのか正確にはわかりません。Object Alloc ツールは、実際のメモリ使用量の追跡にはほとんど役に立ちません。テクスチャを作成すると、割り当てられたメモリ カウンタがしばらく上昇し (テクスチャをメモリに読み込む)、その後低下します (テクスチャ データを OpenGL に渡し、解放します)。これは問題ありませんが、常に発生するとは限りません。テクスチャが OpenGL に渡され、「自分の」メモリから解放された後でも、メモリ使用量が高いままになることがあります。これは、Object Alloc ツールで表示されるように割り当てられたメモリの合計量が、実際の合計メモリ消費量よりも少なく、実際の消費量からテクスチャを差し引いたものよりも大きいことを意味します (
real – textures < object alloc < real
)。図に行きます。プログラミング ガイドを読み間違えました。24 MB のメモリ制限は、アプリケーション全体ではなく、テクスチャとサーフェスに適用されます。実際の赤い線はもう少し先にありますが、明確な数字は見つかりませんでした。コンセンサスは、25 ~ 30 MB が上限であるということです。
システムがメモリ不足になると、メモリ警告の送信を開始します。解放するものはほとんどありませんが、他のアプリケーション、特に Safari (Web サイトをキャッシュしているようです) がメモリを解放してシステムに戻します。メモリ モニタに表示される空きメモリがゼロになると、システムは強制終了を開始します。
弾丸をかじり、コードの一部を書き直して、メモリをより効率的に使用する必要がありましたが、おそらくまだそれを推し進めています。私が別のゲームをデザインするとしたら、リソースのページングを思いつくでしょう。現在のゲームでは、別のスレッドで実行されたとしても、物が常に動いていて、テクスチャのロードが邪魔になるため、非常に困難です。他の人がこの問題をどのように解決するかに非常に興味があります。
これらは私の見解であり、それほど正確である必要はないことに注意してください。このトピックについて何か言いたいことがあれば、質問を更新します。問題を理解している誰かが答えたいと思う場合に備えて、質問を開いたままにします。これらはすべて、他の何よりも回避策と推測であるためです。
iphone - iPhone アプリケーションで単一ピクセルを画面に直接描画する最速の方法は何ですか?
非常にうまく機能するiPhoneアプリケーションで、個別に計算された数千のピクセルを画面に直接描画する最速の方法を探しています。
iphone - OpenGl ES スクロール可能な ListBox のクリッピングの問題
OpenGl ES (iPhone/iTouch 用) で一般的なリスト ボックスを作成しようとしていますが、ListBoxItems をクリッピングすることでちょっとした難問に直面しています。各 ListBoxItem オブジェクトは、それ自体を描画する方法を認識します。私が作成している ListBox は、次々と描画されます。しかし、アイテムの数が ListBox よりも多い場合はどうなるでしょうか。ListBoxItems を上下にスクロールできるようにする必要があります (問題ではありません)。スムーズなスクロールになるため、ListBoxItem が半分 (またはそれ以上、またはそれ以下) 表示され、残りの部分が ListBox 領域の「外側」にあるために非表示になる場合があります。ListBox ウィジェットを作成しているときに、このクリッピングを正しく機能させるにはどうすればよいですか?
あなたが持っている助けやリンクをありがとう、
〜エリック
iphone - iPhone で 3D モデルを表示したい: 開始方法?
iPhone で 1 つの 3D モデル (できればテクスチャ付き) を表示して回転させたいと考えています。拡大縮小したり、背景を設定したりする必要はありません。
私は次のものを持っています:
- iPhone
- マックブック
- iPhone SDK
- ブレンダー
私の知識ベース:
- さまざまな 3D プログラムで 3D モデルを作成できます (以前コースを受講した 3D Studio Max に最も慣れていますが、他のプログラムも使用したことがあります)。
- 数年前からの手続き型プログラミングの一般的な知識 (QuickBasic - 私は年をとっています!)
- 簡単な Java と C# のチュートリアルによるオブジェクト指向プログラミングの初心者向けの知識 (Head Start C# の本と、妻の Java を使用した OOP コースの紹介)
- 3D テクスチャ モデルを表示し、C# のチュートリアルを使用してそれを回転させることができました (コピー アンド ペーストしただけではなく、基本的にどのように機能するかを理解しています)。XNA ゲーム開発ライブラリは、Visual Studio を使用してウィンドウズ。
私は知らないもの:
- Objective C に関する多くのこと
- iPhoneが明らかに使用しているOpenGLまたはOpenGL ESに関するもの
- XCodeに関することなら何でも
私の主な問題は、どこから始めればよいかわからないことです。私が見つけたすべての iPhone の本は、OpenGL アプリではなく、GUI アプリケーションの作成に関するもののようです。OpenGL の本を見つけましたが、iPhone 開発にどれだけ当てはまるかわかりません。また、Objective C の構文は、奇妙なネストされたメソッドの命名、意味をなさない「id」のようなもの、手動でメモリ管理を行わなければならないという恐ろしい考えなど、やや混乱しています。
開始するのに最適な場所はどこですか? この種のチュートリアルは見つかりませんでしたが、Google-Fu が弱いのかもしれません。それとも、Objective C の学習から始めるべきでしょうか? 私は Aaron Hillgrass のような本を知っていますが、それらは時代遅れであり、サンプル コードの多くが iPhone SDK で機能しないことも読んだことがあります。 3D アプリに適しているようです。
基本的に、最初のステップがどうあるべきかについて混乱しています。
cocoa-touch - 1 つの Open GL ビューを含む NavigationBar ベースのアプリケーションの開発: どのように?
私の質問は問題から始まります:
Xcode でプロジェクトを開始しました: ナビゲーション バー ベースのプロジェクト (TableView を使用)。次に、IB を介して、またはプログラムでいくつかのビューを追加しました...これは完全に正常に動作します。
次に、UIView から継承され、OpenGlView (XCode の Basic OpenGlES プロジェクトによって提供されるビューに基づく) と呼ばれる独自の ViewClass と、そのOpenGlViewController
(から継承されたUIViewController
) を作成することにしました。
ビューコントローラーをnavBarにプッシュしようとするまで、これは正常に機能します。その後、「EXC__ BAD __ACCESS」を受け取ります。OpenGLコンテンツの表示に使用されるビュー以外のビューで問題ない理由がわかりません...
そして、実際には、OpenGLコンテンツを表示するビューを含むNavBarベースのアプリを開発する方法がわかりません...何か考えはありますか?
OpenGlView
(以前にNavigationBarに追加された基本のサブビューとしても追加しようとしUIView
ましたが、同じエラーを受け取りました)。
RootController で:
OpenGlViewController で:
iphone - OpenGL ES/iPhone のパフォーマンスと背景画像
OpenGL ES を使用して iPhone 用の 2D ゲームを開発しています。永続的な背景として 320x480 のビットマップ イメージを使用したいと考えています。
私が最初に考えたのは、320x480 のクワッドを作成し、その上に背景を表すテクスチャをマップすることでした。それで... 320x480 の画像を含む 512x512 のテクスチャを作成しました。次に、それを 320x480 クワッドにマッピングしました。
この背景をフレームごとに描画し、その上にアニメーションのスプライトを描画します。これらすべてのオブジェクト (背景 + スプライト) の描画が遅すぎることを除けば、これは問題なく機能します。
いくつかのテストを行ったところ、速度低下がピクセル パイプラインにあることがわかりました。当然のことながら、大きな背景画像が主な原因です。これを証明するために、背景の描画を削除し、他のすべてのレンダリングが非常に高速になりました。
バックグラウンドを維持し、パフォーマンスを向上させる方法についてアドバイスを求めています。
詳細は次のとおりです。
1) 私は現在、シミュレーターでテストしています (Apple からライセンスを待っています)。
2) 背景は 128k に圧縮された PVR テクスチャです。
3) この背景をカラー バッファにキャッシュする方法があるのではないかと期待していましたが、うまくいきませんでした。それは私の OpenGL ES の経験不足によるものかもしれませんし、うまくいかないばかげた考えかもしれません :)
4) 背景全体を常に更新する必要はなく、移動するスプライトによって描画された部分だけを更新する必要があることに気付きました。背景の一部を(必要に応じて)別のテクスチャとして、またはシザー ボックスを使用して更新する手法を調べ始めましたが、これはエレガントとは言えません。
ヒント/アドバイスをいただければ幸いです...
ありがとうございました。
iphone - このOpenGLESコードがiPhoneで遅いのはなぜですか?
OpenGLESの学習中にiPhoneSDKのGLSpriteの例を少し変更しましたが、かなり遅いことがわかりました。シミュレーターでも(最悪の場合)、テクスチャーのある三角形が400個しかないので、何か間違ったことをしているに違いありません。
drawViewは、画面がタッチされるか、画面上の指が動かされ、tx、tyがそのタッチが発生したx、y座標に設定されるたびに呼び出されます。
また、翻訳が事前に生成され、DrawArrayが1つしかないが、同じパフォーマンス(〜4 FPS)が得られたときに、GLBufferを使用してみました。
===編集===
一方、これを変更して、はるかに小さいクワッド(サイズ:34x20)が使用され、オーバーラップがはるかに少なくなるようにしました。画面全体に最大400個のクワッド->800個の三角形が広がっています。テクスチャサイズは512x512アトラスとRGBA_8888で、テクスチャ座標はフロートです。このコードは、APIの効率の点で非常に醜いです。2つのMatrixModeの変更と、2つのロードと2つの変換、そして三角ストリップ(クワッド)のdrawarrayがあります。現在、これにより最大45FPSが生成されます。
iphone - 画像のクォーツ 2D/OpenGLES 幾何学的歪み (できれば CGImage を使用)
ピンチ/フィッシュアイなどの幾何学的歪みを実装するための推奨される方法は何ですか? iPhone SDKを使用していますか?OSX 用の Core Image ライブラリにはこれらすべての種類のフィルタが組み込まれていますが、iPhone SDK 用ではありません。
元のソース ビットマップ データがあれば、特定の位置と半径でディスプレイスメント マップを作成できますが、このビットマップ データを CGImage の変換として適用する方法がわかりません。
これはアフィン変換ではありません。これは、歪みなどの領域で線が平行でなくなるためです。
CGImage を使用することは可能ですか、それとも OpenGLES を使用してこれを行う必要がありますか?
ありがとう