問題タブ [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 - GLKViewはドローアブルプロパティを設定します
GLKitを使用するためにApplesGLPaintの例を移植しようとしています。UIViewを使用すると、ビューのCAEAGLLayerを返し、drawablePropertiesをkEAGLDrawablePropertyRetainedBackingを含むように設定できます。これには、予想どおり、レンダリングバッファを提示した後、ドローアブルコンテンツを保持する効果があります。このプロパティを削除すると、描画呼び出し後にちらつきが発生し、描画可能なコンテンツの一部が別のバッファに描画されているように見えます。
問題は、これがまさに現在GLKViewで発生している問題ですが、描画可能なプロパティを設定する方法がないようです。CAEAGLLayerを返してプロパティを設定しても効果はなく、保持されたバッキングを設定するためのGLKViewの関連するプロパティが表示されません。
他の誰かがこれに遭遇したか、解決策を持っていますか?
ios - GLKitを使用して、アトラスからスプライトの中心を中心に回転する方法
GLKitでユーザーの指に続くテクスチャがあります。2点間のアークタンを使用して角度を描くためにラジアンを計算します。
ここでの秘訣の一部は、オブジェクトを指の中心に置いておくということです。そこで、原点や中心を基準にして物を描くことができるように、アンカーポイントのアイデアを紹介しました。私の目標は、スプライトを所定の位置に移動してから回転させることです。レンダラーに次のコードがあります。
もう1つの注意点は、私のスプライトがテクスチャエイリアス上にあることです。回転を外すと、スプライトは指の下の中央に正しく描画されます。私のプロジェクトマトリックスはGLKMatrix4MakeOrtho(0、CGRectGetWidth(self.frame)、CGRectGetHeight(self.frame)、0、1、-1);です。そのため、UIkitとそれに埋め込まれているビューと一致します。
opengl-es-2.0 - GLKBaseEffect prepareToDraw パフォーマンス
同じ効果で多くのオブジェクトをレンダリングしたい。
したがって、transform プロパティを変更し、preparetodraw を呼び出します。
これは効率的ですか、それともより良いアプローチがありますか? これにより、余分な glUseProgram 呼び出しなどが発生しますか?
ビルドした古いシェーダー マネージャー クラスがありますが、代わりに glkit を使用したいと考えていました。
ヒントをお寄せいただきありがとうございます...
ios - GLKit TextureLoader のリークと割り当て
私は多くのテクスチャ(フレームの更新ごとに1つ)をロードしています
- (void)textureWithContentsOfData:(NSData *)data options:(NSDictionary *)textureOperations queue:(dispatch_queue_t)queue completionHandler:(GLKTextureLoaderCallback)block
方法。数分後、大量の割り当てと -[GLKShaderBlockNode copywithZone:] からのリークがあるため、アプリがクラッシュします。これを解決する方法がわかりません。Apple デフォームでは、GLKit のバグだと彼らは言っています。このリークと割り当ての問題を解決しようとしましたか?
opengl-es - GLKViewのDrawableWidthがViewDidLoadで設定されていないのはなぜですか?
GLKitのGLKViewController/GLKViewを使用して、基本的なOpenGL描画を行っています。
ViewDidLoadメソッドでViewPortを設定したいのですが。GLKViewリファレンスを読んだ後、私は次のようにそれを行うことができると思いました:
問題は、DrawableWidth
とDrawableHeight
プロパティの両方がゼロであるということです。何故ですか?GLKViewがDrawInRectを呼び出すと、それらが設定され、それらの値は私が期待するものです。
iphone - Open GL ES を使用した UIKit パーティクル システム?
Open GL ES 2.0 と GLKit を使用して iOS ゲームを作成しています。新しい iOS 5 UIKit パーティクル システムを使用することは可能ですか? それとも、独自のパーティクル システムを作成したほうがよいのでしょうか?
ios - GLKitのGLKMatrixStackライブラリを使用してモデルビューマトリックスを生成するにはどうすればよいですか?
GLKitには、次のコメントが付いたヘッダーファイルがあります。
GLKMatrixStackは、OpenGLのマトリックススタックと同様の4x4マトリックススタックの作成を可能にするCFTypeです。OpenGLの固定関数バージョンに見られるものと同様の関数を使用して、任意の数の行列スタックを作成および操作できます。
スタックの内容に基づいてモデルビューマトリックスを生成するにはどうすればよいですか?ヘッダーGLKMatrixStackRef
の外側にタイプへの参照が見つかりません。GLKMatrixStack
ios - glkView:drawInRect: と glkViewControllerUpdate: の違いは? OpenGL ES 2 - iOS
レンダー ループ内のこれら 2 つのメソッドの違いは何ですか?
アップルはこれを言う....
update() について ビュー コントローラは、デリゲートの glkViewControllerUpdate: メソッドを呼び出します。デリゲートは、画面への結果のレンダリングを伴わないフレーム データを更新する必要があります。
drawInRect について: GLKView オブジェクトは、その OpenGL ES コンテキストを現在のコンテキストにし、そのフレームバッファを OpenGL ES レンダリング コマンドのターゲットとしてバインドします。デリゲート メソッドは、ビューのコンテンツを描画する必要があります。
基本的に、ビュー コントローラーで GLKView を作成すると、そのコントローラーが delate になるので、これらのメソッドを並べて見ています。
update() には変換またはその他のロジックが含まれている必要があると想定しました。
c - GLKitのGLKMatrix「列メジャー」はどうですか?
前提A
線形メモリの「列メジャー」行列について話すとき、メモリの最初の4つのエントリが行列の最初の列に対応するように、列が次々に指定されます。一方、「行メジャー」行列は、メモリ内の最初の4つのエントリが行列の最初の行を指定するように、行を次々に指定すると理解されます。
AGLKMatrix4
は次のようになります。
メンバーのドキュメントには次のように書かれています。m
列優先順の行列要素の1次元配列。
構内B
GLKMatrix4の「行」は、水平方向に宣言された4つのフロートのセットです([m00, m01, m02, m03]
最初の「行」になります)。したがって、これらのエントリはmRowColとして解釈できます(m12
行1、列2のエントリになります)。
これらのGLKMatrix構造体メンバーが宣言の順序に基づいてどのように配置されているかを見ると、次のようになります。
[m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, ...]
最初の4つのエントリは、最初の列ではなく、マトリックスの最初の行を明確に表しています。
結論
m
実際には列メジャーではなく、ドキュメントが間違っています。
さて、私は実際には結論を信じていないことに注意する必要がありますが、2つの前提はかなり合理的であるように思われます。本当に、私は前提Bを最も信用していませんが、「行」を垂直に、「列」を水平に定義するのは奇妙に思えます。誰かがこれを説明できますか?
ios - GLKView を UIViewController にネストする
UIViewController で GLKView を使用しようとしています。コードは次のようになります。
CustomViewController.h
CustomViewController.m
GLKView の draw/render メソッドを定義するにはどうすればよいですか? どこでOpenGLを初期化できますか? 助言がありますか?