0

3Dデータの保存にはopenctmを使用しています。ここで、テクスチャ座標を保存できます。

テクスチャは後で次のようにロードされます。

const CTMfloat * texCoords = ctm.GetFloatArray(CTM_UV_MAP_1);
for(CTMuint i = 0; i < numVertices; ++ i)
{
  aMesh->mTexCoords[i].u = texCoords[i * 2];
  aMesh->mTexCoords[i].v = texCoords[i * 2 + 1];
}

texCoords は float 配列です (1 つのポイントに対して 2 つの float)。後で、テクスチャは次のように使用されます。

glTexCoordPointer(2, GL_FLOAT, 0, &aMesh->mTexCoords[0]);

私の問題は、texCoords 配列を生成する必要があることです。u と v とはどういう意味ですか? ピクセル位置ですか?それらを 1/255 でスケーリングする必要がありますか?

4

1 に答える 1

0

プログラミングとは関係ありませんが、このチュートリアルはUV 座標とは何かについての良い紹介を提供します: http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV_Map_Basics

一般に、UV マップをプログラムで「作成」または「生成」することはありません。モデリング プロセスの一環として、3D モデリング アーティストに作成してもらいます。

于 2013-05-27T15:25:33.100 に答える