問題タブ [glkit]
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 - IOS:UIScrollViewとOpenGL
だから私はスクロールしようとしているメニューをレンダリングしているOpenGL(glView)ビューを持っています。UIScrollViewの再発明を避けようとしていたので、glViewの上にscrollviewを配置しました。
問題は、scrollviewをスクロールするとレンダリングが一時停止することです
同様の問題がここで説明されましたiPhoneでUIScrollViewをドラッグすると、OpenGLESビューのアニメーションがフリーズします
問題は、[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]が何であるかわからないことです。を指します
私は新しいCADisplayLinkを作成し、運が悪かったので上記を実行しようとしました
scrollViewDidScrollでrenderメソッドを呼び出してみました
[self.viewsetNeedsDisplay]を呼び出してみました。
また、timerLoopを呼び出すことへの言及を見つけましたか?
誰か助けてくれませんか
ios - GLKMathUnprojectの使用方法
GLKitを使用してシンプルな3Dワールドを作成しました。画面のタップに基づいて、3Dの世界で特定のポイントを見つけようとしています。GLKMathUnprojectを使いたいようです。メソッドのシグネチャは次のとおりです。
いくつかのことが、必要なパラメータについて私を混乱させます。まず、ウィンドウの座標をGLKVector2にするべきではありませんか?そして最も重要なのは、画面上のポイントを3D空間に投影しないことで、単一のポイントではなく光線を作成することです。3D空間のポイントを2Dプレーン(別名スクリーン)に投影すると、そのポイントに関する情報の1次元が失われます。では、ポイントを「投影解除」する深さを指定せずに、2Dスクリーンポイントを3Dワールドポイントに変換するにはどうすればよいでしょうか。この方法については、インターネット上のどこにもコメントはありません(アップルドキュメントを除く)。
ios - テクスチャ上にシェイプを描画すると、OpenGL によってテクスチャが半透明になります
概要
いくつかの画像とグラデーションを組み合わせて、ゲーム内にグラフィックを構築しようとしています。Core Graphics を使用することから始めました。これは素晴らしく機能しましたが、非常に遅かったです。GLKit を使用して OpenGL に移植しようとしましたが、非常に近いですが、最後の問題が 1 つあります。
画面上の三角形にテクスチャを描画しました。その上に、グラデーションを描きたいと思います。グラデーションを描くには、2 つの頂点を黒色、3 つ目の頂点を完全に透明 (アルファ = 0) にする三角形を描くのが最も簡単だと考えました。グラデーションはそれ自体で適切にレンダリングされますが、テクスチャの上にレンダリングされると、テクスチャのアルファも影響を受けているように見え、背景が透けて見えます。
私が欲しいもの:
代わりに得られるもの:
私は OpenGL や GLKit にあまり詳しくないことを認めます。三角形のすべての点でのテクスチャのアルファは (1 - グラデーション アルファ) であり、テクスチャがコーナーで完全に不透明である理由と、テクスチャとグラデーションの両方が中央で部分的に透明に見える理由を説明していると思います。
GLKit でやりたいことを実現できますか? それは GLKit と GLKBaseEffect にも関係していますか、それともオフにすることができる OpenGL でファンキーなマルチテクスチャ処理を行っているだけですか?
コード スニペット
テクスチャを描画するために、スプライト クラスのレンダリング関数:
グラデーション付きの三角形を描画するための、私の形状クラスのレンダリング関数:
よろしくお願いします。
編集: glBlendFunc(...) には私の答えが含まれているようです。しかし、私はさまざまなモードを理解していません。私はここで正しい軌道に乗っていますか?
編集:まだ解決策はありませんが、質問の仮定を更新しました。
iphone - glkit または cocos3d を使用する必要がありますか?
3D を使用して 2 つ目のアプリを作成する準備が整いました。2011年4月に最初のアプリが完成。前回はopengl-esを使いましたが、難しかったですが、なんとか乗り切ることができ、アプリは3Dに関してかなり洗練されています。
今回は、glkit を見ていて、これによりデバイスが IOS 5 のデバイスに制限されることがわかりました。glkit を使用することの他の長所/短所はわかりません。Cocos3d も同様に機能しますが、この 2 つの機能を比較している人を実際に見つけることはできません。
modo を使用して 3D メッシュを作成しますが、Max または Maya も使用できます。3D アプリから collada ファイルをエクスポートし、これを POD に変換します。アプリを使用すると、ユーザーはモデルを回転させ、その 3D パーツの色を変更するためにモデルのさまざまなパーツを選択 (タップ) できます。
これら 2 つのテクノロジを比較対照できる人はいますか? または、私が正しい方向に進んでいるかどうかを教えてもらえますか?
iphone - GLKBaseEffect prepareToDraw が漏れている
誰もがこれが壊れていることに同意しているようで、リークを止めるには GLKBaseEffect を取り除く必要があります。しかし、それを何に置き換えるかについては誰も言及していません。
誰かが私を正しい方向に向けることができますか? いくつかのサンプル コードまたはチュートリアルは非常に役立ちます。
2D スプライトを描画するだけで、非常に基本的なことを行っています。すべてのリークを除けば、うまく機能します:p
prepareToDraw が何をしているかを知り、それを機能するコードに置き換えるだけです。私が見つけたすべてのチュートリアルは、3D レンダリングに焦点を当てているようです...
おそらく2の代わりにOpenGL ES1を使用できますか?
ios - IOS GLKit : レンダリング ループが停止しました
奇妙な問題ですが、レンダリングされたオブジェクトを移動するために UIScrollview を上に配置した GLKit レンダリングであるこのプロトタイプ プロジェクトを作成しました。スクロールするとレンダリングが停止するため、CADisplayLinkなどを使用してうまく機能させる必要がありました。すべて大丈夫でした!
次に、クラスを別のプロジェクトにコピーして起動しましたが、1 秒ごとに x 回レンダリング ループを起動しないことを除いて、すべて正常に動作しているように見えました。一度だけ(スクロールビューがそれを呼び出すまで)。
以下のメソッドが自動的に呼び出されるのを止めるにはどうすればよいでしょうか?
ios - IOS GLKit : Turing GLKViewDrawableMultisample4X はオブジェクトのピッキングを停止します
ピクセル カラー ピッキングを使用して、クリックした OpenGL オブジェクトを特定しています。
ビューで GLKViewDrawableMultisample4X をオンにするとすぐに、ピッキングが機能しなくなりますか?
画面に触れたときにこれをオンまたはオフにしようとしましたが、一度しか機能しません。
ピッキングコード:
ios - OpenGL GLKit を使用した UIScrollView のスナップ
これはちょっと興味深いものでした。
そのため、スクロールビューが上にあるOpenGl画面があります。スクロール時にCADisplayリンクを使用してレンダリングを更新します(以下のコード)。これは非常にうまく機能します。
ただし、ポイントにスナップすることはできません(アニメーション)。CADisplay リンクを解放すると、スクロールビューのアニメーションが停止すると思います (snapToItem を参照)。
2 秒後に CADisplay のリリースを開始しようとしましたが、他の問題が発生します。
uinavigationcontroller - IOS : CADisplay / UIScrollview およびナビゲーション コントローラー
それで、素敵なGLKit 3DメニューをUIScrollviewで動作させることができました.別のView Controllerにプッシュして戻ってくるまで、人生は良いです.
完全にスムーズな動きなので、次のコントローラーに移動して戻ってきます。UIScrollview がバウンスまたはフローしませんか?
CADisplay Linkは、スクロールビューが移動および停止するたびに初期化およびnilされます。これは、別のコントローラーにプッシュして戻ってくるまでうまくいくようです。
ランダムにアイテムをクリックすると、スクロールビューが移動してすべてのコードが起動し、その後、元に戻ります。悲しいことに、ビューでこれを起動しようとすると、同じことをしないように見えました。
ios - cicontext drawImage:inRect:fromRect が ios6 でクラッシュする
カメラからビデオを取得し、CoreImage と OpenGL を使用してレンダリングしようとしています。実行すると、期待どおりに画面に自分の写真が表示され、EXEC_BAD_ACCESS が表示されます。ARCを使用しています。iOS6 Beta1. 修正するのを手伝ってください。
更新: 5.1 では動作しますが、6.0 ではクラッシュします。すべての例外ブレークポイントを発生させましたが、EXEC_BAD_ACESS が presentRendedBuffer > gpus_ReturnGuiltyForHardwareRestart で発生することしかわかりません
Update2: カメラ関連のコードを削除しましたが、まだクラッシュします。
更新 3: glClearColor と glClear コマンドをコメントアウトすると、アプリがクラッシュしなくなりました。しかし、OpenGL と Core Image を同時に使用する方法を知りたいです。
私の新しいコードは次のように単純です:
このコードは iPhone および iPad 6.0 シミュレーターで動作します。iPad2 iOS 6.0 Beta2 では EXEC_BAD_ACCESS でクラッシュします。iPad 1 と iPhone 4S iOS 5.1.1 で緑色の画面が表示され、コンソールにメッセージが表示されます。
何が間違っている可能性がありますか?