Я не уверен, почему это происходит, я только рендеринг нескольких простых примитивных квадроциклов. Красный должен быть перед желтым.
Желтый всегда идет впереди красного, даже если он позади него.
Это ошибка или просто я неправильно вижу куб?
Включите буфер глубины и тест глубины, иначе OpenGL начертил бы то, что является последним сверху.
Ваше приложение должно сделать по крайней мере следующее, чтобы заставить буферизацию глубины работать: Запросить буфер глубины при создании окна. Поместите вызов glEnable (GL_DEPTH_TEST) в процедуру инициализации вашей программы после того, как контекст создан и сделан текущим. Убедитесь, что плоскости отсечения zNear и zFar установлены правильно и таким образом, который обеспечивает адекватную точность буфера глубины. Передайте GL_DEPTH_BUFFER_BIT в качестве параметра в glClear, обычно побитовое OR, с другими значениями, такими как GL_COLOR_BUFFER_BIT.
Ваше приложение должно сделать по крайней мере следующее, чтобы заставить буферизацию глубины работать:
Запросить буфер глубины при создании окна.
Поместите вызов glEnable (GL_DEPTH_TEST) в процедуру инициализации вашей программы после того, как контекст создан и сделан текущим.
Убедитесь, что плоскости отсечения zNear и zFar установлены правильно и таким образом, который обеспечивает адекватную точность буфера глубины.
Передайте GL_DEPTH_BUFFER_BIT в качестве параметра в glClear, обычно побитовое OR, с другими значениями, такими как GL_COLOR_BUFFER_BIT.
Смотрите здесь http://www.opengl.org/resources/faq/technical/depthbuffer.htm
У меня была та же проблема, но она не была связана с буфером глубины, хотя я видел некоторые изменения в лучшую сторону, когда включил это.Это было связано с используемыми функциями наложения, которые комбинировали интенсивность пикселей на последнем этапе рендеринга.Поэтому мне пришлось отключить glBlendFunc ()