問題タブ [glktextureloader]

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.

0 投票する
1 に答える
2238 参照

ios - GLKTextureLoader -textureWithCGImage:options:queue:completionHandler: malloc エラー

インスタンスを使用しGLKTextureLoaderて非同期的にテクスチャをロードしています。

このコードを初めて実行すると、正常に動作します。ただし、2 回目malloc: *** error for object 0xa0cb3c0: pointer being freed was not allocatedは、コンソールに警告が表示されます。GLKTextureLoaderバックトレースは、自身のワーカー スレッドでエラーが発生したことを示しているようです。

明らかに、テクスチャ ローダーが何かを過剰にリリースしているようです。ここで何が間違っていますか?


アップデート:

メソッドに渡される画像は、次のように取得されます。

画像生成をこれに変更すると、エラーが発生しなくなりました。

だから今、私は質問がなぜだと思いますか?キャッシュ動作が含まれていることは理解してい+imageNamed:ますが、なぜこのコードに影響するのでしょうか?


更新 2:

を使用してイメージを作成した場合も同様です[UIImage imageWithData:imageData](クラッシュが発生します)。のみ[UIImage imageNamed:imageName]が機能しているようです。理由はありますか?

0 投票する
1 に答える
369 参照

objective-c - glColor4f は、GLKTextureLoader を使用してテクスチャの読み込みを停止します

現在、新しい iPad の GLKView で OpenGL ES 2.0 を使用しています。glColor4f を呼び出すたびに、GL_INVALID_OPERATION エラーが発生する以外に何も起こらないようです (つまり、必要なポリゴンに色を付けません)。次に、テクスチャをロードしようとするとすぐに、次のエラー メッセージが表示されます。 Error loading file: The operation couldn't be completed. (GLKTextureLoaderErrorDomain error 8.)

しかし、glColor4f が呼び出される前は、すべて正常に動作します。drawInRect のコードは次のとおりです。

誰かが助けてくれれば、本当に感謝しています。ただし、指摘すべきことがいくつかあります。色を付けようとしているオブジェクトは VBO に保存されており、(赤くしようとしているにもかかわらず) 白い色できれいにレンダリングされます。

ありがとう

0 投票する
2 に答える
1261 参照

ios - GLKBaseEffect がテクスチャをロードしない (テクスチャがオブジェクト上で黒く表示される)

OpenGL プロジェクトで GLKit を使用しています。すべてが GLKView と GLKBaseEffect に基づいています (カスタム シェーダーはありません)。私のプロジェクトでは、3D オブジェクトを表示するための GLKViews を持ついくつかのビューがあり、それらのビューのいくつかを一度に「開く」ことができます (つまり、モーダル ビュー スタックにあります)。

これまではすべて問題なく機能していましたが、作成中の新しいビューでは、アプリの 3D ワールドの測定テープをシミュレートするテクスチャ付きの長方形が必要でした。なんらかの理由で、そのビューのみで、テクスチャは opengl コンテキストに正しく読み込まれません: テクスチャは GLKTextureLoader によって正しく読み込まれますが、長方形を描画すると黒になり、デバッグで OpenGL フレームを見るとわかります。空のテクスチャがロードされていること (テクスチャへの参照がありますが、すべてゼロまたは null になっています)。

私が描いている形状は次のように定義されています: (元々は三角形のストリップでしたが、問題がないことを確認するために三角形に切り替えました)

効果変数を次のように設定します。

レンダリング ループは次のとおりです。

また、他のオブジェクトを使用して別のビューでテクスチャ自体をテストしたところ、正常に動作するため、テクスチャ ファイルの障害ではありません。

この問題で 3 日以上立ち往生しているため、どんな助けも大歓迎です。

更新: また、レンダリング ループ中に glErrors はありません。

0 投票する
0 に答える
268 参照

ios - GLKTextureLoader を使用して写真ロールから縦向きの画像を適切な向きでロードするにはどうすればよいですか?

GLKTextureLoader を使用してフォト ロールから画像を読み込みますが、縦横比で撮影された画像が読み込まれるたびに、90 度回転した横向きの画像として扱われます。

フォト ロールの UIImage は、Quartz を使用して回転および再描画する必要があると思いますが、どこから始めればよいかわかりません。人気のある UIImage+Resize.h ライブラリを変更できるかもしれないと思っていましたが、そのライブラリで単純にサイズ変更された UIImage をロードしようとすると、GLKTextureLoader が失敗し、依存している情報の一部が失われていることが示唆されました。プロセス。

0 投票する
1 に答える
703 参照

textures - GLKTextureLoaderは、予期せずに透明なテクスチャをロードします

UIKit(簡略化)を使用して画像としてテキストを生成します:

次に、それをキャッシュディレクトリに保存し、GLKTextureLoader-textureWithContentsOfFile:options:error:; options = nil)を使用してファイルからロードします。

ロードした後、「白いアーティファクト」が表示されます。テキストの周りの白いピクセルは、光がまっすぐでない場合(テクスチャのある表面に回転を適用している場合)に特によく見えます。

生成された画像を確認しました-画像エディタで開き、黒い背景を追加しました-黒い色以外は何も見えません。次に、テクスチャをチェックしました-テキストのテクスチャの後ろにもう1つのテクスチャを追加しました-単に黒い色で塗りつぶしました。また、3Dオブジェクトでは、境界線のように、テキスト文字の周りに「白い影」が表示されます。

テクスチャをGLKTextureLoaderApplyPremultiplication有効にしてロードすると、問題は修正されますが、テキストがあまり明確に見えません(100%黒色が使用されていないなど)。

envMode下部のテクスチャ(2d0)をに変更するGLKTextureEnvModeReplaceと、白いピクセルも修正されますが、光は削除されます。

私は何が間違っているのですか?

アップデート:

最近、自分のシェーダーを作成しました。また、アルファ事前乗算なしでロードされたテクスチャには問題はありません。したがって、GLKitシェーダー自体に問題があると思います。

0 投票する
1 に答える
691 参照

ios - GLKTextureLoader と imageNamed の使用に関する問題: 同じ画像を複数回ロードする場合

次のコードを使用して画像を複数回読み込むと、奇妙な動作が発生します。

最初に画像の読み込みを実行すると期待どおりに動作しますが、同じ画像を再度読み込もうとすると、逆さまに描画されます。

これは、imageNamed: を使用しているため、テクスチャ ローダーに渡されるのは実際には同じ CGImage であるという事実に関係していると思います。したがって、フリップ変換は同じ画像に 2 回適用されます。

この問題を回避する方法はありますか?

0 投票する
1 に答える
221 参照

iphone - GLKTextureLoader を使用してテクスチャ アトラスをロードする

私はopenGLs GLKTextureLoaderによって少し制限されているようです。スプライト アニメーションを機能させようとしているので、テクスチャ アトラスを読み込もうとしています。テクスチャ ローダーでは、画像をバラバラに分割できないようです。

これは関連するコードです

何かご意見は?

0 投票する
0 に答える
2162 参照

ios - GLK テクスチャの作成に使用できる CIImage から CGImageRef への変換

CIFilter の結果/出力イメージである CIImage があります。次に、GLKTextureLoader を使用してその画像のテクスチャを作成します。私はそれを達成するために CGImageRef を必要とする次の関数を使用しています。

問題は、CIImage を GLKTextureLoader で使用できる CGImageRef に変換する最良の方法は何ですか?

次の方法を試しましたが、失敗しました。

fullscreenCIは CIFilter の outputImage です。

上記の方法では、次のエラーが発生します。

GLK テクスチャの作成中にエラーが発生しました: エラー ドメイン=GLKTextureLoaderErrorDomain コード=12 「操作を完了できませんでした。(GLKTextureLoaderErrorDomain エラー 12.)」 UserInfo=0x1438a880 {GLKTextureLoaderErrorKey=画像のデコードに失敗しました}

色空間の問題が原因である可能性があることがわかり、次の方法を試しました。

上記の方法で問題なく動作するようになりました!しかし、UIImagePNGRepresentation を使用せずに CIImage を CGImageRef に変換するより良い方法があるかどうかを知りたいです。

0 投票する
1 に答える
530 参照

glkit - GLKTextureLoader を使用して Web URL からキューブマップをロードする方法

Web から読み込まれた画像を GLKit スカイボックス (古い Apple/Google マップのストリートビューなど) のアセットとして使用する方法がわからない GLKTextureLoader を使用してキューブマップを読み込む方法は 2 つあります:

画像をローカルで取得すると、正常に動作します。

ウェブからロードされた画像からパスを取得し、ここで使用する方法はありますか?