Femidko
Кстати метод Вонг мне совершенно не нравится, обычные партиклы, смотрится на 3 с большим минусом.
Osiris
> А как упроститься?
Тесселяция, гипертекстуринг, несколько юнитов на один фрагмент. Я не стал настолько сильно углубляться в свою реализацию, привел лишь пример, как это делают другие.
Osiris
Рендер ведется за один дип на ячейку октри (по которой идет фрустум кулинг) некоторого уровня лода . А это тысячи патиклов.
Osiris
> это уже не тривиальная задача
Как раз таки на частицах - это тривиальная задача. Описана в некоторых книгах, что я привел (конечно, если мы говорим о неанизотропном). Особенно, если решать задачу воксельным способом - объем есть, влияние вокселей "над" есть.
Про Opacity Mapping не слышал, наверное изобретал велосипед. У меня любой воксель - это квад с одной текстурой, несущей информацию об объеме (нет ни шумовой текстуры, ни диффуза) . Для глубины (рассеивания) делаем один проход, рендерим простые "воксели" в небольшую тестуру (в 2-3 раза меньше экрана, там такая точность не нужна), никакого "over draw" нет .
KaronatoR
Согласен, но он прост и быстр. Для общего развития - хороший материал
А вот мои Вонг с блекджеком:
http://oi50.tinypic.com/fc7f5y.jpg
http://oi48.tinypic.com/2njzuis.jpg
http://oi50.tinypic.com/5clisk.jpg
http://oi45.tinypic.com/2v8onl2.jpg
http://oi45.tinypic.com/2yu0pxh.jpg
Femidko
Скрины!
Mr F
> Скрины!
Сори, некогда сейчас, позже
Femidko
> Как раз таки на частицах - это тривиальная задача. Особенно, если решать задачу воксельным способом ...
И это тривиально? Резать сцену на дерево вокселей, реализовывать процессинг аля облака в движении затем генерить данные для рассчета на GPU, паковать чтобы влезло ... буэ
Osiris
Речь шла о тривиальном расчете Multiple scattering для частиц, при чем здесь дерево вокселей, движение и какая-то паковка? Прошу прощение, но Вы сейчас кашу намесили из всего.
Мне нужен был более точный расчет + дополнительные эффекты. И так как у меня пространство заполняется вокселями (что значительно уменьшает их количество по отношению к реализации на спрайтах), я выбрал расчет скаттеринга в фоновом потоке на cpu. Нечасто считается по октри-ячейчкам, записывается кусочно в отдельный инстансинг буфер, подхватывается шейдером. Все чинно мирно. Повторю, что мой метод отличен от метода на спрайтах, который тривиален и есть даже исходники.
В доке "Interactive multiple anisotropic scattering in clouds" предложен вариант расчета на гпу.
Femidko
> Прошу прощение, но Вы сейчас кашу намесили из всего.
Я понял суть вашего метода, просто описал его не совсем корректно и в своем представлении. Это не тривиально, то есть использовать сходу любой не может, как как Shadow Maps, например. Кстати, воксель то как рендерится?
> В доке "Interactive multiple anisotropic scattering in clouds" предложен
> вариант расчета на гпу.
To manage efficiently the surface processing (e.g., filtering, computing
distances) on the GPU we rely on depth maps. We create
two depth maps ZminL, ZmaxL and a normal map NL from the
light point of view. This is done at each frame to allow for the
animation of the cloud shape and of the light.
Так вот, две карты глубины для каждого отдельного облака маленького возможно и хватит, а вот для сцены полностью заполненной облаками - сомневаюсь. Я, конечно вижу картинки, но хотелось бы посмотреть в движении, уж больно это грубый расчет между двумя слоями глубины.
Потому я говорил про Opacity Mapping. Жрет оно жутко, особенное если нет тесселяции, но дает нужные карты и техника масштабируемая.
Тема в архиве.