Поэтому я пытаюсь найти лучший способ визуализации 3D-модели в OpenGL, когда для некоторых из применяемых к ней текстур есть альфа-каналы.
Когда у меня включен буфер глубины, и начинаю рисовать всетреугольники в 3D-модели: если он рисует треугольник, который находится перед другим треугольником в модели, он просто не будет отображать задний треугольник, когда доберется до него.Проблема в том, что передний треугольник имеет альфа-прозрачность, и его можно увидеть сквозь треугольник позади него, но треугольник позади все еще не отображается.
Отключение буфера глубины устраняет эту проблему, но создаеточевидная проблема в том, что если треугольник является непрозрачным, то он все равно будет отображать треугольники за ним сверху, если будет отображаться после.друг с другом, которые имеют прозрачную основу.На следующем рисунке показана проблема, которая возникает при включении буфера глубины:
Вы можете увидеть, как вы все еще можете видеть контур прозрачных треугольников.
На следующем рисунке показано, как это выглядит, когда буфер глубины отключен.
Здесь вы можете увидеть, как некоторые из треугольников на задней части дерева отображаютсяперед остальной частью дерева.
Есть идеи, как решить эту проблему и правильно отрисовать сосну?
PS Я использую шейдеры для рендеринга всего.