0

私はしばらく Android で OpenGL をいじっていて、多くのことを理解できたように感じています。私は本「Hello, Android!」から取り組んできました。NeHe 3D ワールド チュートリアルの Android ポート。楽しいのは、両者の実装が少し異なることです。そのため、両方から何かをつなぎ合わせるのはとても楽しいものです。問題は、HA チュートリアルでは、回転する立方体を作成し、非常に大きな int 値を使用することです。立方体は基本的に 65536x65536 です。これらの値を縮小すると、キューブが大幅に縮小されます。ただし、NeHe ポートははるかに小さいフロートを使用します。小さな世界の高さはわずか 6.0 ですが、カメラからの視点では、身長が約 1.0 ~ 2.0 単位に見えます。この 2 つを狂ったように比較対照して、これがどのように行われたかを突き止めようとしましたが、結果は空っぽでした。HAコードが正常に動作しているのに対し、NeHeコードは何も正常に動作していないことがわかります。たとえば、glNormal3f 関数を適用して、より大きな値を 1,0,0 に下げてから、TRIANGLE_STRIP でビルドします。これは、短時間で多くのジオメトリをポンピングするための簡単な方法のようです。OpenGL初心者なので、これが理由なのか、後でテクスチャを描画して適用するのが簡単になるだけなのか、はっきりとは言えません。おそらく無関係ですが、NeHe チュートリアルでは頂点/テクスチャ バッファを GL_FLOAT としてフィードし、HA ではそれらを GL_FIXED としてフィードします。後者を前者に変更すると、多くの醜いプレーニングが発生します。これは、短時間で多くのジオメトリをポンピングするための簡単な方法のようです。OpenGL初心者なので、これが理由なのか、後でテクスチャを描画して適用するのが簡単になるだけなのか、はっきりとは言えません。おそらく無関係ですが、NeHe チュートリアルでは頂点/テクスチャ バッファを GL_FLOAT としてフィードし、HA ではそれらを GL_FIXED としてフィードします。後者を前者に変更すると、多くの醜いプレーニングが発生します。これは、短時間で多くのジオメトリをポンピングするための簡単な方法のようです。OpenGL初心者なので、これが理由なのか、後でテクスチャを描画して適用するのが簡単になるだけなのか、はっきりとは言えません。おそらく無関係ですが、NeHe チュートリアルでは頂点/テクスチャ バッファを GL_FLOAT としてフィードし、HA ではそれらを GL_FIXED としてフィードします。後者を前者に変更すると、多くの醜いプレーニングが発生します。

私はviewportとtranslatefをいじりました(これは私を回転する立方体に入れました)が、それぞれが視点とその周りのポリゴンのサイズをどのように管理するかを理解できないようです. 誰でもこれに光を当てることができますか?ありがとう。

4

1 に答える 1

0

これが何であるかはわかりませんが、さまざまなOpenGL ES関数HA tutorialの固定小数点バージョン(通常はx代わりにサフィックスが付いている)を使用しているかどうかを確認してください。fその場合、OpenGL ES固定小数点形式はS15.16であるため、65536は1.0fまたはその前後にマップされることに注意してください。

于 2011-02-22T03:13:37.830 に答える