я был действительно нравится играть с OpenGl и последовали некоторые примеры и т.д.iPhone OpenGL: Текстурирование вопрос куб
Мой вопрос текстурирования куб. Большинство боковых текстур тонкие (спереди, сзади, слева), но справа - сплошной беспорядок.
Мой куб
// cube
static const GLfloat cubeVertices[] = {
-5.0f, 15.0f, 5.0f,
5.0f, 15.0f, 5.0f,
5.0f,0.0f, 5.0f,
-5.0f,0.0f, 5.0f,
-5.0f, 15.0f,-5.0f,
5.0f, 15.0f,-5.0f,
5.0f,0.0f,-5.0f,
-5.0f,0.0f,-5.0f
};
static const GLubyte cubeNumberOfIndices = 36;
const GLubyte cubeVertexFaces[] = {
0, 1, 5, // Half of top face
0, 5, 4, // Other half of top face
4, 6, 5, // Half of front face
4, 6, 7, // Other half of front face
0, 1, 2, // Half of back face
0, 3, 2, // Other half of back face
1, 2, 5, // Half of right face
2, 5, 6, // Other half of right face
0, 3, 4, // Half of left face
7, 4, 3, // Other half of left face
3, 6, 2, // Half of bottom face
6, 7, 3, // Other half of bottom face
};
Моя Texture карта
const GLshort squareTextureCoords2[] = {
0, 5, // top left
0, 0, // bottom left
15, 0, //bottom right
15, 5 //top right
};
Мой куб код
//tell GL about our texture
glBindTexture(GL_TEXTURE_2D, 1);
glTexCoordPointer(2, GL_SHORT, 0, squareTextureCoords2);
glVertexPointer(3, GL_FLOAT, 0, cubeVertices);
for(int i = 0; i < cubeNumberOfIndices; i += 3) {
//glColor4ub(cubeFaceColors[colorIndex], cubeFaceColors[colorIndex+1], cubeFaceColors[colorIndex+2], cubeFaceColors[colorIndex+3]);
int face = (i/3.0);
if (face % 2 != 0.0) {
}
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_BYTE, &cubeVertexFaces[i]);
}
Так как я уже говорил, все делает, но с одной стороны куба (не могу видеть вершины и внизу так не волнуйтесь) текстура идет все странно
Благодаря
UPDATE **
теперь я попробовал эти COORDS и текстуры не отображается на каждой стороне его текстурами его спереди назад и поэтому стороны, как линии от другого края текстуры , Я должен быть близок к взлому
const GLfloat squareTextureCoords3[] = {
// Front face
0, 5, // top left
0, 0, // bottom left
5, 0, // bottom right
5, 5, // top right
// Top face
0, 5, // top left
0, 0, // bottom left
5, 0, // bottom right
5, 5, // top right
// Rear face
0, 5, // top left
0, 0, // bottom left
5, 0, // bottom right
5, 5, // top right
// Bottom face
0, 5, // top left
0, 0, // bottom left
5, 0, // bottom right
5, 5, // top right
// Left face
5, 5, // top left
0, 5, // bottom left
0, 0, // bottom right
5, 0, // top right
// Right face
0, 5, // top left
0, 0, // bottom left
5, 0, // bottom right
5, 5, // top right
};
Здравствуйте, спасибо за Ваш ответ. Я использую примеры из книг и т. Д., Чтобы создать свой код. Как бы вы шли по текстурированию куба. Я действительно новичок в этом, и у меня все работает так, как я хочу (намного больше кода), за исключением этого кровавого текстурирования. – Burf2000
В качестве первого шага просто используйте 24 вершины - по четыре для каждого лица, каждый со своим набором текстурных координат , Поэтому сохраните ранее добавленный squareTextureCoords3, но разверните массив cubeVertices и настройте свой cubeVertexFaces. Теперь я должен броситься из своего стола, но я попытаюсь привести пример позже вечером, если проблема остается открытой. – Tommy