Итак, прямо сейчас мое приложение может визуализировать куб с текстурой, которая имеет правильную ориентацию на каждой грани куба. как я сделал этот куб (мне потребовалось некоторое время, чтобы достичь правильной ориентации и 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]