Текстурированный куб C++ OpenGL Мисс отображает некоторые лица со странным узором?C++

Программы на C++. Форум разработчиков
Anonymous
 Текстурированный куб C++ OpenGL Мисс отображает некоторые лица со странным узором?

Сообщение Anonymous »

Итак, я начал изучать openGL где-то около дня и решил сделать клон Minecraft (я знаю, на основе, но это то, что есть). Я просто хочу изучить OpenGL и шейдеры, так что это отличный проект для начните с.
Итак, прямо сейчас мое приложение может визуализировать куб с текстурой, которая имеет правильную ориентацию на каждой грани куба. как я сделал этот куб (мне потребовалось некоторое время, чтобы достичь правильной ориентации и GL_CULL_FACE для правильной работы), я до сих пор мало что понимаю в том, что касается вращения по часовой стрелке и против часовой стрелки, но я доберусь до этого.
После того, как мне удалось правильно отрендерить этот куб, я решил создать больше кубов, а затем понял, что с некоторыми кубами что-то не так. И самое странное то, что это, кажется, своего рода шаблон, который заставляет меня думать о порядке против часовой стрелки или по часовой стрелке, но я не знаю, и поэтому мне нужна помощь.
Изображение
Код, который я использую для создания всех кубов:

Код: Выделить всё

void addBlockVerticesAndIndices(std::vector &Outvertices, std::vector &Outindices, const glm::vec3 &pos)
{
std::array vertices = {
pos.x + -1.0f, pos.y + -1.0f, pos.z + -1.0f,   1.0f, 0.0f, 0.0f,  // 0: Left-bottom-back
pos.x +  1.0f, pos.y + -1.0f, pos.z + -1.0f,   0.0f, 0.0f, 0.0f,  // 1: Right-bottom-back
pos.x +  1.0f, pos.y +  1.0f, pos.z + -1.0f,   0.0f, 1.0f, 0.0f,  // 2: Right-top-back
pos.x + -1.0f, pos.y +  1.0f, pos.z + -1.0f,   1.0f, 1.0f, 0.0f,  // 3: Left-top-back
pos.x + -1.0f, pos.y + -1.0f, pos.z +  1.0f,   0.0f, 0.0f, 0.0f,  // 4: Left-bottom-front
pos.x +  1.0f, pos.y + -1.0f, pos.z +  1.0f,   1.0f, 0.0f, 0.0f,  // 5: Right-bottom-front
pos.x +  1.0f, pos.y +  1.0f, pos.z +  1.0f,   1.0f, 1.0f, 0.0f,  // 6: Right-top-front
pos.x + -1.0f, pos.y +  1.0f, pos.z +  1.0f,   0.0f, 1.0f, 0.0f,  // 7: Left-top-front
pos.x + -1.0f, pos.y + -1.0f, pos.z +  1.0f,   1.0f, 0.0f, 0.0f,  // 8: Left-bottom-front
pos.x + -1.0f, pos.y + -1.0f, pos.z + -1.0f,   0.0f, 0.0f, 0.0f,  // 9: Left-bottom-back
pos.x + -1.0f, pos.y +  1.0f, pos.z + -1.0f,   0.0f, 1.0f, 0.0f,  // 10: Left-top-back
pos.x + -1.0f, pos.y +  1.0f, pos.z +  1.0f,   1.0f, 1.0f, 0.0f,  // 11: Left-top-front
pos.x +  1.0f, pos.y + -1.0f, pos.z +  1.0f,   0.0f, 0.0f, 0.0f,  // 12: Right-bottom-front
pos.x +  1.0f, pos.y + -1.0f, pos.z + -1.0f,   1.0f, 0.0f, 0.0f,  // 13: Right-bottom-back
pos.x +  1.0f, pos.y +  1.0f, pos.z + -1.0f,   1.0f, 1.0f, 0.0f,  // 14: Right-top-back
pos.x +  1.0f, pos.y +  1.0f, pos.z +  1.0f,   0.0f, 1.0f, 0.0f,  // 15: Right-top-front
pos.x + -1.0f, pos.y + -1.0f, pos.z +  1.0f,   0.0f, 1.0f, 0.0f,  // 16: Left-bottom-front
pos.x +  1.0f, pos.y + -1.0f, pos.z +  1.0f,   1.0f, 1.0f, 0.0f,  // 17: Right-bottom-front
pos.x +  1.0f, pos.y + -1.0f, pos.z + -1.0f,   1.0f, 0.0f, 0.0f,  // 18: Right-bottom-back
pos.x + -1.0f, pos.y + -1.0f, pos.z + -1.0f,   0.0f, 0.0f, 0.0f,  // 19: Left-bottom-back
pos.x + -1.0f, pos.y +  1.0f, pos.z +  1.0f,   0.0f, 0.0f, 0.0f,  // 20: Left-top-front
pos.x +  1.0f, pos.y +  1.0f, pos.z +  1.0f,   1.0f, 0.0f, 0.0f,  // 21: Right-top-front
pos.x +  1.0f, pos.y +  1.0f, pos.z + -1.0f,   1.0f, 1.0f, 0.0f,  // 22: Right-top-back
pos.x + -1.0f, pos.y +  1.0f, pos.z + -1.0f,   0.0f, 1.0f, 0.0f   // 23: Left-top-back
};

const GLuint offset = Outindices.size();
//std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79060401/c-opengl-textured-cube-miss-renders-some-faces-with-a-weird-pattern[/url]

Вернуться в «C++»