18

キューブマップについて OpenGL が従う規則は何ですか?

私はこの規則 (Web サイトで見つけたもの) に従い、対応する GLenum を使用して 6 つの面を指定しましたGL_TEXTURE_CUBE_MAP_POSITIVE_X_EXTが、常に間違った Y を取得するため、正の Y を負の Y 面で反転する必要があります。なんで?

          ________
         |        |
         | pos y  |
         |        |
  _______|________|_________________
 |       |        |        |        |
 | neg x | pos z  |  pos x |  neg z |
 |       |        |        |        |
 |_______|________|________|________|
         |        |
         |        |
         | neg y  |
         |________|
4

2 に答える 2

21

しかし、私はいつも Y を間違えるので、正の Y を負の Y 面で反転する必要があります。なんで?

そうそう、これはキューブ マップの最も奇妙な点の 1 つです。落ち込むのはあなただけではありませんのでご安心ください。分かりますか:

キューブ マップは (何らかの理由で) RenderMan 仕様に従うように指定されており、RenderMan は画像の原点が左下にあるという通常の OpenGL の動作とは対照的に、画像の原点が左上にあると想定しています。そのため、Y 方向に物事が入れ替わります。これは、通常の OpenGL のセマンティクスを完全に破っており、まったく意味がありません。しかし今、私たちはそれに行き詰まっています。

左上と左下は、モデル空間から NDC 空間への恒等変換のコンテキストで定義されることに注意してください。

于 2012-07-27T15:06:06.587 に答える
17

以下は、軸が OpenGL キューブマップでどのように機能するかを示す便利な図です。

ここに画像の説明を入力

于 2012-07-27T19:20:23.207 に答える