30.03.2010, 15:47
IDoL,Вторник, 30 Марта 2010, 14:25 Написал:Дважды перерисовывать тоже не выход.Смысла в двойной отрисовке я вообще не вижу.
IDoL,Вторник, 30 Марта 2010, 14:25 Написал:Тоесть в кроне дерева [skip] происходит множественное перекрытие треугольников. [skip] Для этого нам надо сортировать треугольники веток [skip]Метод, предложенный Durane'ом позволяет добиться относительно качественной картинки без особых усилий. Если у вас сквозь одну ветку не будет видно другую ветку того же дерева на противоположной стороне - это можно вполне себе спокойно пережить. Если же сквозь ветку дерева не будет видно стоящий за деревом дом - это уже плохо.
Таким образом метод предложенный Durane не годится.
Для перебора моделей с прозрачностью он бы сработал, если бы не наложение [частично прозрачных] треугольников внутри объекта.
Есть такая поговорка в программистских кругах: "90% результата достигается за 10% времени, а остальные 90% времени тратится на достижение оставшихся 10% результата". То же самое применимо и к алгоритмам. Сортируя только объекты можно добиться относительно "качественной" картинки с высокой производительностью но с осознанной скидкой на мелкие артефакты, видимые на отдельных редких объектиках.
IDoL,Вторник, 30 Марта 2010, 14:25 Написал:(Вообще я не совсем понимаю как решать с прозрачностью объект или нет - пробегать все текстуры при загрузке и смотреть их на предмет альфа?)Обычно это определяется исходя из свойств материала, которым отрисовывается объект. Материал сам знает, прозрачный он или нет, а т.к. все объекты на конвейер рендеринга и так должны быть отправлены в отсортированных по материалам списках, рендерер сам сможет понять, где у него полупрозрачные объекты, а где нет.
IDoL,Вторник, 30 Марта 2010, 14:25 Написал:К технологиям Order-independent transparency, я так понимаю, Вы относитесь с некоторым скепсисом.Это не я отношусь со скепсисом Просто нормальный OIT реализуется только на DX11. А на младших DX'ах он реализуется либо с ограничениями, либо через анус. Чисто для справки, в UE3 его нет, объекты сортируются по удаленности от камеры, треугольники на объектах НЕ сортируются, из примитивов сортируются только квады партиклов, ибо это относительно "просто" и их обычно не много. Но опять же, сортировка партиклов происходит только в пределах одного эмиттера. Если в сцене присутствует партикл-система с двумя эмиттерами или две разных партикл-системы, то они будут рисоваться одна целиком поверх другой в зависимости от того, чей "центр" ближе к камере.
З.Ы. Или может UE3 вам тоже не авторитет? :lol:
Duty is everything, the greatest of joys, the deepest of sorrows.