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






