ページ 11

OpenGL ESによる描画に関する質問

Posted: 2010年9月01日(水) 22:51
by どどんぱち
連投になり申し訳ございません。

iPhone / Objective-C
OpenGL ESによる描画に関する質問です。

書籍 : 「OpenGLで作るiPhone SDKゲームプログラミング」
WEB : http://iphone.pankaku.com/book/

の最初サンプル(glTest)に

著者のBLOG
http://syokoe.net/?p=332

に記述がある方法で
端末回転に対応させる実装を追加したところ、
横に回転させて表示した場合、テクスチャ描画
やライン描画が、下半分の画面に横に3重にぶれて
表示されてしまいました。シミュレータでは問題なく
描画されますが、実機(iPhone3GS / OS 4.0.2)では
表示がおかしくなります。

OpenGL描画のバッファのサイズが縦横で
変化するせいかなと思うのですが、どのように対応するのが
よいのか悩んでいます。

アドバイス頂けたら幸いです。
よろしくお願いします。

Re:OpenGL ESによる描画に関する質問

Posted: 2010年9月03日(金) 02:42
by Justy
>OpenGL描画のバッファのサイズが縦横で変化するせいかなと思うのですが
 一応この方法で回転できるはず、なんですけどね。
 何か処理を忘れているか、間違えているのか、環境的な問題なのか……。
 もう一度位置からやってみてはどうでしょうか?

 あ、あと
>5.ViewControllerのxibファイルを開き、EAGLViewクラスのビューを配置して大きさの調整等を行う。
は IB上でどう配置し、どのクラスの何に、アウトレットをつないだか、教えて貰えますか?

Re:OpenGL ESによる描画に関する質問

Posted: 2010年9月04日(土) 15:16
by どどんぱち
Justyさん
ご回答ありがとうございます。

>何か処理を忘れているか、間違えているのか、環境的な問題なのか……。

iPhone3G(GSではなくGでした) NG
iPhone4 問題なし
であることが確認できました。

powerVR MBXとPowerVR SGX の違いなのか?遅延レンダリング
という機能が影響しているのかわかりませんが、正常な場合と
ブレる場合のキャプチャー画像を添付しておきます。

>5.ViewControllerのxibファイルを開き、EAGLViewクラスのビューを配置して大きさの調整等を行う。
は IB上でどう配置し、どのクラスの何に、アウトレットをつないだか、教えて貰えますか?

OpenGL描画用のViewの方のAutosizingの画面内のスケール調整の上下と左右の矢印を
選択解除しておくと、iPhone3Gでもブレが出ずに描画されるようです。
横だけOFFにすると横方向だけぶれなくなります。

ブレル状態のソースも添付しておきますので、お気づきの点が何かありましたら
よろしくお願いします。

使用方法としては、今回、横になったから横方向へ引き伸ばすという使い方はしないので、
スケール変更はOFFにして実装することにしました。

一応、解決マークのチェックは入れておきます。

Justyさん、前回に続き、ご回答ありがとうございました。
また質問することがあると思いますが、よろしくお願い致します。

iPhone3GとiPhone4では実機での挙動が違うことが結構ありますね。
UITableViewの上にインジケーターをaddSubviewで追加して表示しようとしたら
iPhone3Gでは普通に表示されるのに、iPhone4ではテーブルの下に配置されて
インジケーターの表示が見えないと言う変な不具合もあるようですし。

この辺も情報がありましたら、よろしくお願いします。

Re:OpenGL ESによる描画に関する質問

Posted: 2010年9月05日(日) 11:57
by Justy
 確認しました。
 Autosizeingを有効にするとおかしくなりますね。
 うちで作成したサンプルも同様でした。


>iPhone3GとiPhone4では実機での挙動が違うことが結構ありますね
 うちに諸々3台ありますけど今のところこの手の機種間の挙動の違いに遭遇したことはないですね。
 あんまり深くやってないからかもしれませんが。

 UITableViewの上のインジケーターで不具合ですか。時間が合ったときにでも試してみます。