UIImageから作ったテクスチャが上下反転する
UIImageをOpenGLのテクスチャに使う
↑ここでUIImageをOpenGLのテクスチャに使う方法を書いてるんだけど、最近不具合があることに気が付いたってお話。
上のを書いた時には上下対称のテクスチャだったので気が付かなかったんだけど、上下が非対称の画像を使うところがあったのよ。
そのテクスチャを使う場面でどういうわけか画像が上下反転するんだ。
そう言えば、このimageNamed:メソッドはキャッシュされるんだよね。
以前、GLKitを使わない場合にテクスチャを設定する時に座標軸の関係から上下を反転させる必要があった。
これらのことからすると、テクスチャ設定時にシステム側がキャッシュした元画像を上下反転してるんだろうか?
そんなことあるんかいな?って思うけど試しにキャッシュを避けてみる。リファレンスにはキャッシュされたくなければ
imageWithContentsOfFile:
を使えとあるからこれを使ってみたら、問題解決。
ちなみにこちらのメソッドだとファイル名にRetina用画像を示す”@2x"まで書かないといけないのが微妙なんだけどね。
↑ここでUIImageをOpenGLのテクスチャに使う方法を書いてるんだけど、最近不具合があることに気が付いたってお話。
上のを書いた時には上下対称のテクスチャだったので気が付かなかったんだけど、上下が非対称の画像を使うところがあったのよ。
そのテクスチャを使う場面でどういうわけか画像が上下反転するんだ。
{ UIImage *textureImage = [UIImage imageNamed:@“image.png”]; }テクスチャを作る時には何気なく普段通りに↑こんな感じで読み込んでる。
そう言えば、このimageNamed:メソッドはキャッシュされるんだよね。
以前、GLKitを使わない場合にテクスチャを設定する時に座標軸の関係から上下を反転させる必要があった。
これらのことからすると、テクスチャ設定時にシステム側がキャッシュした元画像を上下反転してるんだろうか?
そんなことあるんかいな?って思うけど試しにキャッシュを避けてみる。リファレンスにはキャッシュされたくなければ
imageWithContentsOfFile:
を使えとあるからこれを使ってみたら、問題解決。
ちなみにこちらのメソッドだとファイル名にRetina用画像を示す”@2x"まで書かないといけないのが微妙なんだけどね。
<< OpenGLのRetina対応 TopPage なばなの里へはタクシーは来てくれない >>
トラックバック
トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/917-9e3d99b8
http://ringsbell.blog117.fc2.com/tb.php/917-9e3d99b8