Я работаю над загрузчиком объектов (OBJ File) для моего приложения на iOS, в настоящее время я успешно прочитал вершины и грани объекта, и сейчас я просто добавляю цвета в импортированные модели.
Я столкнулся с серьезной проблемой сейчас. Из куба с шестью гранями, все окрашены в красный цвет, кроме двух противоположных граней, которые окрашены в синий цвет. Этот куб настроен на вращение, поэтому я могу видеть все стороны, но цвета не отображаются правильно, как показано на видео ниже:
http://youtu.be/0L2AIFkd2Qk
Синие лица отображаются только тогда, когда две синие секции перекрываются, я не могу понять, почему - я привык к OpenGL для ПК, мне чего-то не хватает, что вызывает эту странную окраску?
Раскраска достигается путем отправки большого массива с плавающей точкой формата RGBA RGBA RGBA и т. Д. Для каждой вершины;
// colours is the name of the array of floats
glColorPointer(colorStride, GL_FLOAT, 0, colors);
glEnableClientState(GL_COLOR_ARRAY);
glDrawArrays(renderStyle, 0, vertexCount);
Любая помощь, которую вы можете предложить, была бы великолепна,
Большое спасибо
[РЕДАКТИРОВАТЬ]
Проблема теперь решена, я просто рисовал все треугольники из модели, вызывая
glColor4f(0.5f, 0.5f, 0.0f, 1.0f);
glDrawArrays(GL_TRIANGLES, 4, 4);
только один раз для всего массива, когда я разделил это для каждого лица в модели, это позволило мне использовать GL_DEPTH_TEST, не заставляя экран становиться пустым!