Решил попробовать ExplosiaFX, это объект динамики xParticles, который позволяет делать симуляции огня/дыма. Вводную информацию взял в этом уроке и в этом. В этой статье я хочу поделиться  тем, что у меня вышло и к каким выводам для себя я пришёл. Сразу скажу, не принимайте это прямо как истину в последней инстанции, для меня это небольшие тесты, уверен, что более опытные ребята подсказали бы, как улучшить результат и уменьшить время просчетов.

Сразу скажу, что хотелось получить детализированную симуляцию, поэтому размер вокселя поставил 1. Сцена самая простая: слева эммитер, который выпускает пару частиц, вокруг которых должен клубиться дым.

Все настройки оставил по умолчанию. Но дыма не появилось, оказалось, что в частицах необходимо добавить физическую составляющую в настройках, в моём случае Fuel (можно было и Smoke, потому что использовал я его)

Проделав пару опытов с более высокими значениями вокселя (например 2 и 5), подобрал значения, чтобы  всё клубилось (vorticity в основном), вернул voxel = 1 и нажал симуляцию.

Сначала ничего не предвещало беды, 15 часов я был готов подождать, лишь бы было здорово.

Через 2 часа я обнаружил, что уже ждать не ночь, а целый день, что немного не вписывалось в мои планы.

Тут я решил проверить, что же там насимулилось, сколько это уже занимает и стоит ли вообще продолжать.

Уже на этом этапе я понял, что заниматься симуляцией дыма в хПартиклз я не буду, долговато и результат далек от совершенства. Обидно, что нет ГПУ ускорения, как в TurbulenceFD, потому что просчет на видеокарте быстрее в несколько раз.

Настройки материал в редшифте тоже оставил по умолчанию, разве что увеличил Scatter Coefficient

Потом я случайно поднял настройку Old Min. Это подрезает уровень прозрачности, то есть как точка черного в уровнях/levels, объект становится рваным

Выглядит всё красиво, в инстаграме можно уже получать лайки. Издалека всё выгляди отлично, но при приближении, выясняются проблемы:

Вернув значение Old Min на ноль, я получил другой результат. Я был очень рад, мне показалось, что всё теперь идеально, но, на зуме выяснилось, что теперь виден воксель (ступеньками):

 

Ниже две картинки в половинном разрешении (исходники были 5000х2500), ориентировался на схожий уровень шума

Octane: 2 часа 7 минут 48 секунд

 

Redshift: 4 минуты 37 секунды

Какие выводы для себя я сделал после этих двухдневных тестов:

  1. Считать на домашнем компьютере проблема, как по скорости, так и по месту хранения кеша.
  2. Очень нужна ГПУ акселерация, без него всё работает в несколько раз медленнее, посмотрите сравнение на сайте Turbulence FD (ссылка на видео)
  3. Это для крайне терпеливых людей, потому что порой изменение на 1 достаточно сильно влияет на результат динамики.
  4. Redshift рендерит 5000х2500 за пару минут, это очень быстро, но IPR тормозит по причине подгрузки 1.5Gb файла с жесткого диска.
  5. Подобный рендер в анимации, на 1920х1080 выглядел бы вполне убедительно, но мне для стоков на 4к это не подойдет.

Ниже я приложил исходную сцену c4d с 4ыми партиклами, где настроена симуляция и один файл .vdb для ваших тестовых рендеров.

[скачать]

 

UPD. В комментариях в ВК знающие и умеющие люди объяснили, что надо учитывать физические размеры и в синеме надо всё уменьшать в несколько раз, получается, что рабочее разрешение должно быть 1 или 0.1 мм, то есть всё крайне маленькое, тогда и размер вокселя проще подстроить, и получить нормальный вес файлов, а так же более высокую скорость просчета. Так что я меняю свою точку зрения, по поводу того, что хПартиклз ну совсем не подходят для симуляции, можно, можно, но место на винте всё равно занимает неплохо.