私は奇妙な問題を抱えています。基本的には、ブレンダーモデルをテクスチャで表示することはできますが、テクスチャを適切にマッピングすることはできません。私はcocos2dを使用してテクスチャを描いてるBlender + OpenGL + Cocos2d
私は画像を投稿することはできませんので、ここでPicasaウェブ経由のリンクです、 https://picasaweb.google.com/112176813871298741669/January192012?authuser=0&feat=directlink
:私は私ができる最も簡単なモデルを作りました、これは私が得るものですCCSprite内そうのような方法を描く:
glBindTexture(GL_TEXTURE_2D, self.texture.name);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(3, GL_FLOAT, sizeof(vertexDataTextured), &MeshVertexData[0].vertex);
glTexCoordPointer(2, GL_FLOAT, 0, &MeshVertexData[0].texCoord2);
テクスチャがinitメソッド内CCTexture2Dとしてロードされます。
他のアイデアはありますか?そのテクスチャcoordsのかなり確信して、それをうまくすることはできません、彼らは右見て、データについてはこちらを参照してください。
{/*v:*/{1.000000, -0.000000, -1.000000}, /*n:*/{0.000000, 0.999969, 0.000000}, /*t:*/{0.000000, 0.000000}},
{/*v:*/{-1.000000, -0.000000, -1.000000}, /*n:*/{0.000000, 1.000000, 0.000000}, /*t:*/{1.000000, 0.000000}},
{/*v:*/{-1.000000, 0.000000, 1.000000}, /*n:*/{0.000000, 1.000000, 0.000000}, /*t:*/{1.000000, 1.000000}},
{/*v:*/{1.000000, -0.000000, -1.000000}, /*n:*/{0.000000, 0.999969, 0.000000}, /*t:*/{0.000000, 0.000000}},
{/*v:*/{-1.000000, 0.000000, 1.000000}, /*n:*/{0.000000, 1.000000, 0.000000}, /*t:*/{1.000000, 1.000000}},
{/*v:*/{1.000000, 0.000000, 1.000000}, /*n:*/{0.000000, 1.000000, 0.000000}, /*t:*/{0.000000, 1.000000}},
だからテクスチャ座標は以下のとおりです。
0.000000, 0.000000
1.000000, 0.000000
1.000000, 1.000000
0.000000, 0.000000
1.000000, 1.000000
0.000000, 1.000000
しかしに密接に見ています画像私はそれが座標です、多分何かには、OpenGLのパラメータと確かではないよ....
あなたの構造を正しく理解していれば、各頂点間のスペースは各tex-coordの値と同じであるため、 'glTexCoordPointer(2、GL_FLOAT、sizeof(vertexDataTextured)、&MeshVertexData [0] .texCoord2) – PeterT
くそ....それは簡単でした:)、ありがとう、明らかにあまりにも疲れて...... – Darren