0

私は Xcode 3.2.1 を使用しており、iPhone OpenGL ES1 プロジェクトを作成しようとしています。opengl プロジェクトのデフォルト テンプレートは問題ありませんが、コードを分割しようとしていたため、drawView() 呼び出しでフレームごとにすべてが実行されるわけではありません。

照明を設定し、深度テストをオンにし、カリングをオンにして、クリアカラーを設定する別の setupRC メソッドがあります。これは EAGLView の init で呼び出され、問題なく動作します。

glViewport() と glFrustrum() の呼び出しを取り、ES1Renderer.m ファイルの resizeFromLayer() メソッドの最後に配置しました。これは、アプリの起動時とアプリのサイズが変更されたときに発生します。

ここでの問題は、すべてのオブジェクトが切り取られたり切り取られたりするため、錐台の遠方が台無しになっているように見えることです。カメラの位置と角度を調整してみましたが、それでもすべてのオブジェクトがカット/クリッピングされます。far を 1000.0f から 30000.0f に増やしても、同じ結果が得られます。クレイジーなのは、drawView() で glViewport() と glFrustrum() の両方の呼び出しを呼び出すと、すべてのフレームが正しく見えることです。何も切り取られておらず、欲しいように見えます。私が読んできたすべてのものから、錐台とビューポートの呼び出しは、ウィンドウが作成されてサイズが変更されたときにのみ呼び出される必要がありますが、プロジェクトのすべてのフレームで呼び出さないと機能しません。何か案は?

前もって感謝します

4

2 に答える 2

0

絵を描き始める前に、どこかで余分な翻訳をしているのだろうか?おそらく、すべてを描画し始める前に loadIdentity() を実行して、自分がいると思う場所から開始していることを確認することができます。

于 2010-06-08T08:58:38.220 に答える
0

この錐台/ビューポートの状況を XCode の OpenGL iphone テンプレートで自分で解決しようとして、その底にたどり着くのに役立つ 1 つのリソースは次のとおりです。

http://iphonedevelopment.blogspot.com/2009/05/opengl-es-from-ground-up-table-of.html

于 2010-06-08T07:53:57.023 に答える