Crystal

GPU-рендер для 3ds Max · движок Cycles

Рендерит сцены Corona на видеокарте без переделки. При одинаковом шуме Crystal на RTX 4080 был быстрее Corona на 24-ядерном i9 в 14 раз на 3D-модели, в 13 раз в сцене с лесом Forest Pack, в 1,6 раза в интерьере. На экстерьере жилого квартала они примерно наравне: от ×0,76 до ×1,3 в зависимости от уровня шума.

Жилой комплекс, рендер Crystal за 60 секунд с денойзером OptiXCrystal · 60 с · RTX 4080
×0,99Экстерьер: во сколько раз Crystal быстрее при равном шуме
×1,6Интерьер: во сколько раз Crystal быстрее при равном шуме
×143D-модель: во сколько раз Crystal быстрее при равном шуме
×13Растительность: во сколько раз Crystal быстрее при равном шуме

Итог

Время до одинакового шума

×0,5 ×1 ×2 ×4 ×8 ×16 Экстерьер ×0,99 Интерьер ×1,6 3D-модель ×14 Растительность ×13

Во сколько раз Crystal быстрее Corona, логарифмическая шкала. Сравнение при самом низком шуме, которого в замерах достигли оба рендерера.

сценашумCoronaCrystalбыстрее
Экстерьер0,39 %170,3 с171,9 с×0,99
Интерьер2,18 %168,2 с106,7 с×1,6
3D-модель0,14 %164,7 с11,4 с×14
Растительность0,62 %170,3 с12,8 с×13

Без денойзера, полное время вызова рендера. Повторный рендер Crystal берёт сцену из памяти; первый рендер после открытия сцены указан у каждой сцены отдельно.

Как мерили

Одинаковый шум, честное время

  1. Сцены открыты как есть, с настройками Corona, в которых они были сделаны. Crystal берёт из Corona тональную коррекцию, окружение и ограничение яркости сэмплов, поэтому картинки сравнимы без ручной подгонки.
  2. Каждый рендерер получает ряд бюджетов: 5, 10, 20, 40, 80 и 160 секунд рендера. Время на графиках — полное время вызова рендера, вместе с подготовкой сцены.
  3. Каждый бюджет рендерится дважды с разным зерном случайных чисел. Шум кадра — средняя разница двух рендеров по всем пикселям, делённая на √2, в процентах от диапазона экрана. Так шум каждого рендерера измерен относительно его собственной чистой картинки, и разница во внешнем виде двух движков в замер не попадает.
  4. Для замеров денойзер выключен у обоих: он прячет шум по-разному и сделал бы сравнение нечестным. Картинки в слайдерах сняты с денойзером каждого рендерера за одно и то же время.
  5. Время до одинакового шума берётся с кривой каждого рендерера между двумя замеренными точками, в логарифмическом масштабе. Значения за пределами кривой помечены как оценка.
  6. Шум падает как корень из времени: чтобы снизить его вдвое, нужно вчетверо больше сэмплов. Поэтому шум, меньший всего на 20 %, означает рендер в полтора раза быстрее, а вдвое меньший — вчетверо. Сравнивать стоит время, а не проценты шума.
  7. Шум здесь — среднее отклонение пикселя. Глаз сильнее замечает отдельные яркие точки на ровных поверхностях, поэтому у каждой сцены приведена и проверка среднеквадратичным шумом, где такие точки весят больше. Так, на ровной стене кухни за 20 секунд среднеквадратичный шум Corona в полтора раза выше, чем у Crystal, хотя средний по кадру отличается меньше: в тёмных местах шум у обоих почти одинаков, а в светлых и средних тонах, на стенах и потолке, у Crystal он ниже.
Corona 12.1Intel Core i9-13900KF, 24 ядра, 32 потока. UHD Cache, как в сценах.
CrystalNVIDIA GeForce RTX 4080, 16 ГБ, OptiX. Adaptive sampling, light tree, GI cache, как Crystal берёт их из сцены.
3ds Max 2024.2Windows 10 Pro, одна машина, рендер из 3dsmaxbatch, без других задач.

Сцена 1 из 4 · GKTest.max · 1200 × 800 px

Экстерьер: жилой комплекс

Жилой квартал под вечерним небом: CoronaSun и HDRI, 208 источников Corona, 387 декалей, трава и кусты из Chaos Scatter (201 337 и 973 копии), 662 дерева Forest Pack, 1864 объекта.

Corona, 73 с, с денойзером Crystal, 72 с, с денойзером Corona · 73 сCrystal · 72 с
Одинаковый бюджет рендера, 60 с (на метках полное время), у каждого свой денойзер: Corona — Intel, Crystal — OptiX. Двигайте границу.

Шум от времени

20 50 100 200 0,5 1 2 5 10 время рендера, с (лог. шкала) шум, %

Corona 12.1, CPU Crystal, GPU равный шум

Время до одинакового шума

шумCoronaCrystalбыстрее
1,92 %18,6 с24,4 с×0,76
1,64 %22,6 с26,3 с×0,86
1,14 %32,2 с31,4 с×1
1,10 %33,9 с32,0 с×1,1
0,80 %52,1 с44,3 с×1,2
0,69 %66,3 с52,0 с×1,3
0,56 %92,1 с72,4 с×1,3
0,48 %119,5 с91,9 с×1,3
0,39 %170,3 с171,9 с×0,99
0,39 %172,0 с≈ 175,0 с×0,98

Без денойзера. Время одного рендерера — замер, другого — по его кривой между двумя замерами. «≈» — оценка за пределами кривой, по продолжению её последнего отрезка.

По среднеквадратичному шуму, где отдельные яркие точки весят больше, Corona тратит на тот же шум ×0,64–×1 времени Crystal.

Первый рендер после открытия сцены с бюджетом 5 с: Corona — 29,3 с, Crystal — 28,4 с (загрузка ядер, сцены и текстур на GPU). Повторные рендеры Crystal берут сцену из памяти.

Окна квартала — комнаты wParallax за стеклом. Их самосвечение подключено через Map Output Selector с индексом 0 над CoronaMultiMap, и Corona оставляет такие окна тёмными; Crystal теперь делает так же (до исправления он зажигал 1730 окон и был здесь на 10–15 % медленнее). Отдельный замер с выключенным GI cache: 20 с — шум 1,16 % (с кэшем 1,10 %), 80 с — 0,50 % (0,48 %), 160 с — 0,41 % (0,39 %): кэш выгоднее на всём диапазоне, его стоит оставить включённым.

Corona, 20 с без денойзера, фрагмент 1:1Corona · 20 с
Crystal, 20 с без денойзера, фрагмент 1:1Crystal · 20 с
Те же 20 секунд без денойзера, фрагмент в масштабе 1:1. У Crystal шум здесь на 4 % меньше; Corona понадобилось бы 34 с, чтобы дойти до такого шума, в 1,1 раза дольше: шум падает как корень из времени.

Сцена 2 из 4 · InteriorTest.max · 900 × 1200 px

Интерьер: скандинавская кухня

Кухня с дневным светом из окна: CoronaSun, 7 источников Corona, 1587 объектов, текстуры на дереве, плитке и тканях, стекло и растения.

Corona, 70 с, с денойзером Crystal, 63 с, с денойзером Corona · 70 сCrystal · 63 с
Одинаковый бюджет рендера, 60 с (на метках полное время), у каждого свой денойзер: Corona — Intel, Crystal — OptiX. Двигайте границу.

Шум от времени

10 20 50 100 200 2 5 10 время рендера, с (лог. шкала) шум, %

Corona 12.1, CPU Crystal, GPU равный шум

Время до одинакового шума

шумCoronaCrystalбыстрее
9,16 %14,8 с7,1 с×2,1
8,04 %18,2 с8,7 с×2,1
6,74 %23,4 с11,4 с×2,1
5,92 %28,2 с14,8 с×1,9
4,93 %38,6 с21,3 с×1,8
4,33 %48,2 с27,6 с×1,8
3,53 %70,2 с41,3 с×1,7
3,12 %88,2 с52,7 с×1,7
2,50 %131,4 с81,4 с×1,6
2,18 %168,2 с106,7 с×1,6
1,77 %≈ 245,1 с161,3 с×1,5

Без денойзера. Время одного рендерера — замер, другого — по его кривой между двумя замерами. «≈» — оценка за пределами кривой, по продолжению её последнего отрезка.

По среднеквадратичному шуму, где отдельные яркие точки весят больше, Corona тратит на тот же шум ×1,5–×2,2 времени Crystal.

Первый рендер после открытия сцены с бюджетом 5 с: Corona — 15,1 с, Crystal — 49,5 с (загрузка ядер, сцены и текстур на GPU). Повторные рендеры Crystal берут сцену из памяти.

Corona, 20 с без денойзера, фрагмент 1:1Corona · 20 с
Crystal, 20 с без денойзера, фрагмент 1:1Crystal · 20 с
Те же 20 секунд без денойзера, фрагмент в масштабе 1:1. У Crystal шум здесь на 17 % меньше; Corona понадобилось бы 39 с, чтобы дойти до такого шума, в 1,8 раза дольше: шум падает как корень из времени.

Сцена 3 из 4 · car_copy.max · 1000 × 1000 px

3D-модель: автомобили

Три автомобиля под HDRI: лакокраска, хром, стекло фар, шины; 19 материалов CoronaLegacyMtl и 21 текстура.

Corona, 66 с, с денойзером Crystal, 67 с, с денойзером Corona · 66 сCrystal · 67 с
Одинаковый бюджет рендера, 60 с (на метках полное время), у каждого свой денойзер: Corona — Intel, Crystal — OptiX. Двигайте границу.

Шум от времени

10 20 50 100 200 0,02 0,05 0,1 0,2 0,5 время рендера, с (лог. шкала) шум, %

Corona 12.1, CPU Crystal, GPU равный шум

Время до одинакового шума

шумCoronaCrystalбыстрее
0,18 %103,2 с10,4 с×10
0,14 %164,7 с11,4 с×14
0,10 %≈ 357,7 с13,4 с×27

Без денойзера. Время одного рендерера — замер, другого — по его кривой между двумя замерами. «≈» — оценка за пределами кривой, по продолжению её последнего отрезка.

По среднеквадратичному шуму, где отдельные яркие точки весят больше, Corona тратит на тот же шум ×5,2–×12 времени Crystal.

Первый рендер после открытия сцены с бюджетом 5 с: Corona — 9,5 с, Crystal — 16,9 с (загрузка ядер, сцены и текстур на GPU). Повторные рендеры Crystal берут сцену из памяти.

Corona, 20 с без денойзера, фрагмент 1:1Corona · 20 с
Crystal, 20 с без денойзера, фрагмент 1:1Crystal · 20 с
Те же 20 секунд без денойзера, фрагмент в масштабе 1:1. У Crystal шум здесь на 81 % меньше; Corona не дошла до такого шума и за 165 с, самый долгий рендер в замере.

Сцена 4 из 4 · ForestPack_Test.max · 1200 × 800 px

Растительность: Forest Pack

46 клёнов Forest Pack Pro на плоскости под HDRI: густая листва с просвечивающими листьями, свет сквозь кроны. Камера поставлена низко, через стволы.

Corona, 73 с, с денойзером Crystal, 66 с, с денойзером Corona · 73 сCrystal · 66 с
Одинаковый бюджет рендера, 60 с (на метках полное время), у каждого свой денойзер: Corona — Intel, Crystal — OptiX. Двигайте границу.

Шум от времени

10 20 50 100 200 0,1 0,2 0,5 1 2 время рендера, с (лог. шкала) шум, %

Corona 12.1, CPU Crystal, GPU равный шум

Время до одинакового шума

шумCoronaCrystalбыстрее
0,74 %118,3 с10,7 с×11
0,62 %170,3 с12,8 с×13
0,50 %≈ 261,4 с15,9 с×16

Без денойзера. Время одного рендерера — замер, другого — по его кривой между двумя замерами. «≈» — оценка за пределами кривой, по продолжению её последнего отрезка.

По среднеквадратичному шуму, где отдельные яркие точки весят больше, Corona тратит на тот же шум ×12–×14 времени Crystal.

Первый рендер после открытия сцены с бюджетом 5 с: Corona — 15,6 с, Crystal — 15,1 с (загрузка ядер, сцены и текстур на GPU). Повторные рендеры Crystal берут сцену из памяти.

Corona, 20 с без денойзера, фрагмент 1:1Corona · 20 с
Crystal, 20 с без денойзера, фрагмент 1:1Crystal · 20 с
Те же 20 секунд без денойзера, фрагмент в масштабе 1:1. У Crystal шум здесь на 80 % меньше; Corona не дошла до такого шума и за 170 с, самый долгий рендер в замере.

Что умеет Crystal

Ваша сцена Corona рендерится без переделки

Материалы и карты Corona

CoronaPhysicalMtl, Legacy, Layered, Light, Select, Volume, а также Physical, PBR, glTF, Multi/Sub, Blend. Около восьмидесяти настроек материалов сверены с Corona рендером шара в обоих движках. Карты, которым нет пары в Cycles, 3ds Max запекает сам.

Свет и небо

CoronaLight, CoronaSun и CoronaSky с куполом, HDRI в CoronaBitmap, порталы в окнах. Light tree рассчитан на сцены с тысячами источников.

Тональная коррекция Corona

Экспозиция, ACES OT, Filmic, контраст, насыщенность, баланс белого, Tint, LUT (.cube), виньетка и резкость. Значения те же, что в Corona.

Рассадки и декали

Forest Pack Pro, RailClone, Chaos Scatter (Crystal расставляет копии сам по настройкам рассадки), CDecal, Corona Proxy.

Свой Frame Buffer

Финальный и интерактивный рендер в одном окне: LightMix, пассы, уровень шума, Region, сравнение A|B, цвет пикселя по правой кнопке, сохранение в PNG и EXR.

ActiveShade на GPU

Интерактивный рендер во вьюпорте и в окне Crystal: движения камеры и правки сцены видны сразу, а DLSS Ray Reconstruction позволяет считать превью в уменьшенном размере.

Каустика фотонами

Фотонная каустика и дисперсия в стекле и воде, через собственный патч Cycles: блики от бокалов и бассейнов собираются чисто, без россыпи ярких точек.

Ограничения рендера

Лимит шума, лимит времени, автосохранение каждого рендера. Остановка в любой момент даёт денойзенную картинку, а не обрывок.

Куда движется

Что уже заложено в основу

Быстрый первый рендер

Первый рендер после открытия тяжёлой сцены сейчас дольше, чем у Corona (интерьер: 50 с против 15 с): текстуры и геометрия загружаются на видеокарту. Повторные рендеры берут сцену из памяти.

Кэш текстур с уровнями детализации и сохранение сцены между рендерами уже работают; дальше — фоновая загрузка при открытии сцены.

Другие версии 3ds Max

Сборки под 3ds Max 2023, 2025, 2026 и 2027.

SDK этих версий уже подготовлены в проекте; плагин собирается под SDK одной версии.

Видеокарты AMD и Intel

Рендер на Radeon через HIP и на Arc через oneAPI.

Сам Cycles умеет оба бэкенда; Crystal сейчас собран с CUDA и OptiX.

Несколько видеокарт

Один кадр на двух и более GPU в одной машине.

Cycles делит рендер между устройствами; нужна настройка выбора устройств.

Сетевой и пакетный рендер

Backburner и Deadline для анимаций и пачек ракурсов.

Batch Render 3ds Max работает уже сейчас; лимиты шума и времени, автосохранение готовы.

Больше Corona

CoronaHairMtl, CoronaDistance, CoronaSlicerMtl, форма боке, связи источников с объектами.

Перенос Corona сделан по замерам: каждая настройка сверена рендером в обоих движках, тем же способом пойдут и эти.

Сегодня

Что нужно знать до покупки

  • Нужна видеокарта NVIDIA с драйвером для CUDA 12.4 и OptiX 8; на тесте RTX 4080, 16 ГБ.
  • Сейчас поддерживается 3ds Max 2024.
  • Сцена должна поместиться в память видеокарты; большие текстуры подгружаются по уровням детализации.
  • Картинка близка к Corona, но не совпадает пиксель в пиксель: это другой движок.
  • Пока не читаются CoronaHairMtl, CoronaSlicerMtl, CoronaDistance, отдельные карты фона для отражений и преломлений, форма боке, размытие деформируемых объектов.
  • CoronaMultiMap выбирает вариант на объект; выбор на элемент сетки (у Corona он бывает, например, на каждое окно фасада) пока не повторяется.

Замеры сделаны 20.10.2026 на одной машине. Исходные кадры, журнал замеров и сценарии рендера сохранены и могут быть показаны по запросу.

Corona Renderer, 3ds Max, Forest Pack, RailClone, Chaos Scatter, NVIDIA, OptiX и DLSS — товарные знаки их владельцев. Cycles — движок Blender под лицензией Apache 2.0.