OBJ Model Renderering Gaps

Когда я рендерим OBJ Wavefront-модель, которую я анализирую с помощью синтаксического анализатора, который я создал сам, я получаю следующий результат при рендеринге:

введите описание изображения здесь

Являются ли пропуски нормальными или это просто из-за неисправного кода рендеринга?

Вот код рендеринга:

glPushMatrix();
glColor3f(1.0f, 1.0f, 1.0f);
glScaled(scale, scale, scale);

glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

for (int i = 0; i < vertices_indexes.size()-3; i+=3) {
glBegin(GL_TRIANGLE_FAN);
if (is_normals) glNormal3f(normals.at(normals_indexes[i]).x, normals.at(normals_indexes[i]).y, normals.at(normals_indexes[i]).z);
glVertex3f(vertices.at(vertices_indexes[i]).x, vertices.at(vertices_indexes[i]).y, vertices.at(vertices_indexes[i]).z);

if (is_normals) glNormal3f(normals.at(normals_indexes[i+1]).x, normals.at(normals_indexes[i+1]).y, normals.at(normals_indexes[i+1]).z);
glVertex3f(vertices.at(vertices_indexes[i + 1]).x, vertices.at(vertices_indexes[i + 1]).y, vertices.at(vertices_indexes[i + 1]).z);

if (is_normals) glNormal3f(normals.at(normals_indexes[i+2]).x, normals.at(normals_indexes[i+2]).y, normals.at(normals_indexes[i+2]).z);
glVertex3f(vertices.at(vertices_indexes[i + 2]).x, vertices.at(vertices_indexes[i + 2]).y, vertices.at(vertices_indexes[i + 2]).z);
glEnd();
}

glPopMatrix();

-1

Решение

Вы проверили, что ваша модель создана с треугольниками, а не с квадратами? Большинство моделей, которые вы найдете, по умолчанию будут отображаться в четырехугольниках, поэтому вы можете либо загрузить их в 3D-программу (например, Blender или Maya) и преобразовать сетку в треугольники (Ctrl + T в Blender), либо изменить свой анализатор для обработки квадратов. ,

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector