Буфер глубины таков, что не имеет значения, в каком порядке вы визуализируете объекты. Если вы рисуете пиксель «под» уже нарисованным, он просто пропускается. Если вы рисуете пиксель «выше» того, что на экране, он рисуется и перезаписывает содержимое экрана (и буфер глубины, который обеспечивает правильную глубину для сравнения со следующим нарисованным треугольником).
К сожалению, это не будет работать для прозрачных объектов. Если вы нарисуете прозрачный объект поверх вашей сцены, он будет смешиваться с видимой сценой. Но нет способа смешать глубину, поэтому он просто перезаписывает это. Поэтому, когда вы рисуете другой объект «под» этим прозрачным, он пропускается как обычно.
Вот общий процесс рендеринга сцены, содержащей прозрачные объекты:
Нарисуйте непрозрачные объекты в вашей сцене с включенными режимами чтения и записи глубины.
Сортировка ваших прозрачных объектов задом наперед.
Нарисуйте отсортированные прозрачные объекты с включенными показаниями глубины.
Когда вы сделаете это, ваши прозрачные объекты будут правильно скрыты непрозрачными объектами. Но поскольку они правильно отсортированы, у прозрачных объектов не будет возможности скрыть другие прозрачные объекты, которые еще предстоит нарисовать.