私はMinecraft風の地形エンジンを作成してOpenGLと3Dを学習していますが、満足していないFPSを除いてすべてが正常に機能します。
現在:私は現在、可視面のみを描画しており、錐台カリングを使用しています。キューブは16 x 16 x 32のキューブチャンクになっています(今のところ)。
チャンクごとに6つのディスプレイリストを使用します。各サイド(左、右、前、後ろ、上、下)に1つずつあるため、立方体は1つずつではなく、チャンクの側面全体に描画されます。
この方法で私は約20〜100fpsを取得しますが、これは素晴らしいことではありません。プロファイリングによると、グラフィックカードに約100kの頂点を送信し、空を見て頂点が10kを下回るとすぐに、最大200 + fpsになるので、それが私のボトルネックだと思います。
私がやりたいこと:少ないほど多いので、これを見つけました: http://ogre3d.org/forums/viewtopic.php?f=2&t=60381& p=405688#p404631
私が理解していることから、Kojackは巨大な平面の3Dメッシュを使用し、どういうわけか2Dテクスチャアトラスからこれらの巨大な平面の特定の場所にテクスチャを描画します。彼は、256x256x256の3Dテクスチャと、緑と青のチャネルを使用して2Dテクスチャアトラスにマッピングすると述べています。
彼の方法では、平面の頂点の数は一定であり、マップが適用されている場合は役に立たないこともありますが、それでも現在の頂点よりも少なくなっています。
私の問題:彼の言ったことは何も理解できませんでした:(、彼の方法を試したいのですが、彼が何をしたのか正確にはわかりません。ほとんどの場合、3Dテクスチャの経験が不足していると思います(ブロックを想像しています) 3Dテクスチャマップを使用して、テクスチャアトラスから平面の一部のみにテクスチャをどのようにマッピングしましたか。
誰かがコジャックが何をしたかを説明したり、私に役立つ場所を教えてもらえますか?グーグルでさえ今は何の助けにもなりません。