問題タブ [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.
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]
が機能しているようです。理由はありますか?
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 に保存されており、(赤くしようとしているにもかかわらず) 白い色できれいにレンダリングされます。
ありがとう
ios - GLKBaseEffect がテクスチャをロードしない (テクスチャがオブジェクト上で黒く表示される)
OpenGL プロジェクトで GLKit を使用しています。すべてが GLKView と GLKBaseEffect に基づいています (カスタム シェーダーはありません)。私のプロジェクトでは、3D オブジェクトを表示するための GLKViews を持ついくつかのビューがあり、それらのビューのいくつかを一度に「開く」ことができます (つまり、モーダル ビュー スタックにあります)。
これまではすべて問題なく機能していましたが、作成中の新しいビューでは、アプリの 3D ワールドの測定テープをシミュレートするテクスチャ付きの長方形が必要でした。なんらかの理由で、そのビューのみで、テクスチャは opengl コンテキストに正しく読み込まれません: テクスチャは GLKTextureLoader によって正しく読み込まれますが、長方形を描画すると黒になり、デバッグで OpenGL フレームを見るとわかります。空のテクスチャがロードされていること (テクスチャへの参照がありますが、すべてゼロまたは null になっています)。
私が描いている形状は次のように定義されています: (元々は三角形のストリップでしたが、問題がないことを確認するために三角形に切り替えました)
効果変数を次のように設定します。
レンダリング ループは次のとおりです。
また、他のオブジェクトを使用して別のビューでテクスチャ自体をテストしたところ、正常に動作するため、テクスチャ ファイルの障害ではありません。
この問題で 3 日以上立ち往生しているため、どんな助けも大歓迎です。
更新: また、レンダリング ループ中に glErrors はありません。
ios - GLKTextureLoader を使用して写真ロールから縦向きの画像を適切な向きでロードするにはどうすればよいですか?
GLKTextureLoader を使用してフォト ロールから画像を読み込みますが、縦横比で撮影された画像が読み込まれるたびに、90 度回転した横向きの画像として扱われます。
フォト ロールの UIImage は、Quartz を使用して回転および再描画する必要があると思いますが、どこから始めればよいかわかりません。人気のある UIImage+Resize.h ライブラリを変更できるかもしれないと思っていましたが、そのライブラリで単純にサイズ変更された UIImage をロードしようとすると、GLKTextureLoader が失敗し、依存している情報の一部が失われていることが示唆されました。プロセス。
textures - GLKTextureLoaderは、予期せずに透明なテクスチャをロードします
UIKit
(簡略化)を使用して画像としてテキストを生成します:
次に、それをキャッシュディレクトリに保存し、GLKTextureLoader
(-textureWithContentsOfFile:options:error:
; options = nil
)を使用してファイルからロードします。
ロードした後、「白いアーティファクト」が表示されます。テキストの周りの白いピクセルは、光がまっすぐでない場合(テクスチャのある表面に回転を適用している場合)に特によく見えます。
生成された画像を確認しました-画像エディタで開き、黒い背景を追加しました-黒い色以外は何も見えません。次に、テクスチャをチェックしました-テキストのテクスチャの後ろにもう1つのテクスチャを追加しました-単に黒い色で塗りつぶしました。また、3Dオブジェクトでは、境界線のように、テキスト文字の周りに「白い影」が表示されます。
テクスチャをGLKTextureLoaderApplyPremultiplication
有効にしてロードすると、問題は修正されますが、テキストがあまり明確に見えません(100%黒色が使用されていないなど)。
envMode
下部のテクスチャ(2d0)をに変更するGLKTextureEnvModeReplace
と、白いピクセルも修正されますが、光は削除されます。
私は何が間違っているのですか?
アップデート:
最近、自分のシェーダーを作成しました。また、アルファ事前乗算なしでロードされたテクスチャには問題はありません。したがって、GLKitシェーダー自体に問題があると思います。
ios - GLKTextureLoader と imageNamed の使用に関する問題: 同じ画像を複数回ロードする場合
次のコードを使用して画像を複数回読み込むと、奇妙な動作が発生します。
最初に画像の読み込みを実行すると期待どおりに動作しますが、同じ画像を再度読み込もうとすると、逆さまに描画されます。
これは、imageNamed: を使用しているため、テクスチャ ローダーに渡されるのは実際には同じ CGImage であるという事実に関係していると思います。したがって、フリップ変換は同じ画像に 2 回適用されます。
この問題を回避する方法はありますか?
iphone - GLKTextureLoader を使用してテクスチャ アトラスをロードする
私はopenGLs GLKTextureLoaderによって少し制限されているようです。スプライト アニメーションを機能させようとしているので、テクスチャ アトラスを読み込もうとしています。テクスチャ ローダーでは、画像をバラバラに分割できないようです。
これは関連するコードです
何かご意見は?
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 に変換するより良い方法があるかどうかを知りたいです。
glkit - GLKTextureLoader を使用して Web URL からキューブマップをロードする方法
Web から読み込まれた画像を GLKit スカイボックス (古い Apple/Google マップのストリートビューなど) のアセットとして使用する方法がわからない GLKTextureLoader を使用してキューブマップを読み込む方法は 2 つあります:
画像をローカルで取得すると、正常に動作します。
ウェブからロードされた画像からパスを取得し、ここで使用する方法はありますか?