В этом документе представлен обзор Helidon и Mitsuba 3, двух разных проектов с разными направлениями. Helidon — это набор библиотек Java для создания микросервисов, использующий виртуальные потоки Java 21 для повышения производительности и упрощения разработки. Mitsuba 3, с другой стороны, представляет собой исследовательско-ориентированную систему рендеринга, предлагающую высокопроизводительные кроссплатформенные возможности и интеграцию с Python. Оба проекта предлагают обширную документацию и доступны для использования по разрешительным лицензиям с открытым исходным кодом.
Helidon: библиотеки Java для микросервисов
Project Helidon — это набор библиотек Java для написания микросервисов.
Helidon поддерживает две модели программирования:
В любом случае ваше приложение представляет собой программу Java SE, работающую на
новый веб-сервер Helidon Níma, написанный с нуля
используйте виртуальные потоки Java 21. С Helidon 4 вы получаете высокую пропускную способность реактивного сервера и простоту программирования в стиле «поток на запрос».
API Helidon SE в Helidon 4 значительно изменился по сравнению с Helidon 3. Использование виртуальных потоков позволило перевести эти API с асинхронного на блокирующий. В результате получается гораздо более простой код, который легче писать, поддерживать, отлаживать и понимать. Более ранний код Helidon SE потребует модификации для работы с этими новыми API. Для получения дополнительной информации см. Руководство по обновлению Helidon SE.
Helidon 4 поддерживает MicroProfile 6. Это означает, что ваши существующие приложения Helidon MP 3.x будут работать на Helidon 4 лишь с небольшими изменениями. А поскольку сервер Helidon MicroProfile основан на новом веб-сервере Níma, вы получаете все преимущества работы с виртуальными потоками. Для получения дополнительной информации см. Руководство по обновлению Helidon MP.
Впервые в Гелидоне? Тогда прыгайте и начинайте.
Для использования Helidon 4 требуется Java 21.
Лицензия
Helidon доступен по лицензии Apache 2.0.
Документация
Последняя версия документации и javadocs доступна по адресу https://helidon.io/docs/latest.
Технический документ Helidon доступен здесь.
Начать
См. раздел «Начало работы» на https://helidon.io.
Загрузки/Доступ к двоичным файлам
Загрузок Helidon нет. Просто используйте наши выпуски Maven (GroupID io.helidon).
См. раздел «Начало работы» на https://helidon.io.
Хелидон CLI
macOS:
Линукс:
Окна:
См. этот документ для получения дополнительной информации.
Строить
Для сборки Helidon 4 вам понадобится JDK 21.
Вам также понадобится Maven. Мы рекомендуем версию 3.8.0 или новее.
Полная сборка
Чекстиль
Авторское право
Спотжуки
Документация
Скрипты сборки
Скрипты сборки находятся в папке etc/scripts. Они в основном используются в нашем конвейере,
но парочку из них удобно использовать на рабочем столе для проверки изменений.
Получить помощь
Содействие
Будьте в курсе
пример:
Мицуба Рендерер 3
Документация | Обучающие видео | Линукс | MacOS | Окна | ПиПИ |
---|---|---|---|---|---|
️
Предупреждение
️
В настоящее время в мире ведется большой объем недокументированной и нестабильной работы.
master
ветка. Мы настоятельно рекомендуем вам воспользоваться нашим
последний выпуск
до дальнейшего уведомления.
Если вы уже хотите опробовать предстоящие изменения, ознакомьтесь с
это руководство по портированию.
Он должен охватывать большинство новых функций и предстоящих кардинальных изменений.
Введение
Mitsuba 3 — это исследовательская система рендеринга прямого и обратного света.
транспортное моделирование, разработанное в EPFL в Швейцарии.
Он состоит из базовой библиотеки и набора плагинов, реализующих функциональность.
начиная от материалов и источников света и заканчивая полными алгоритмами рендеринга.
Mitsuba 3 является перенацеливаемой : это означает, что базовые реализации и
Структуры данных могут трансформироваться для выполнения различных задач. Для
Например, один и тот же код может моделировать скалярный (классический по одному лучу) транспорт RGB
или дифференциальный спектральный транспорт на графическом процессоре. Все это основано на
Dr.Jit — специализированный JIT -компилятор, разработанный специально для этого проекта.
Основные характеристики
Кроссплатформенность : Mitsuba 3 была протестирована на Linux ( x86_64
), macOS.
( aarch64
, x8664
) и Windows ( x8664
).
Высокая производительность : базовый компилятор Dr.Jit объединяет код рендеринга.
в ядра, которые достигают высочайшей производительности, используя
серверная часть LLVM, ориентированная на ЦП, и серверная часть CUDA/OptiX
ориентированы на графические процессоры NVIDIA с аппаратным ускорением трассировки лучей.
Python прежде всего : Mitsuba 3 глубоко интегрирован с Python. Материалы,
текстуры и даже полные алгоритмы рендеринга могут быть разработаны на Python,
который система JIT-компилирует (и, при необходимости, дифференцирует) на лету.
Это позволяет проводить эксперименты, необходимые для исследований в области компьютерной графики и
другие дисциплины.
Дифференциация : Mitsuba 3 — это дифференцируемый рендерер, то есть он
может вычислять производные всей симуляции относительно входных данных
такие параметры, как поза камеры, геометрия, BSDF, текстуры и объемы. Это
реализует последние алгоритмы дифференцируемого рендеринга, разработанные в EPFL.
Спектральный и поляризационный : Mitsuba 3 можно использовать как монохроматический.
рендерер, рендерер на основе RGB или спектральный рендерер. Каждый вариант может
при необходимости, при необходимости, учтите эффекты поляризации.
Обучающие видеоролики, документация
Мы записали несколько видеороликов на YouTube, которые дают краткое представление.
Мицуба 3 и Доктор Джит. Помимо этого вы можете найти полные блокноты Juypter.
охватывающий различные приложения, практические руководства и справочную документацию.
на прочтенной документации.
Установка
Мы предоставляем предварительно скомпилированные двоичные колеса через PyPI. Установить Mitsuba таким способом так же просто, как запустить
pip установить Мицубу
в командной строке. Пакет Python по умолчанию включает тринадцать вариантов:
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
Первые два выполняют классическое моделирование по одному лучу с использованием RGB
или спектральное представление цвета, тогда как последние два могут использоваться для обратного
рендеринг на CPU или GPU. Чтобы получить доступ к дополнительным вариантам, вам необходимо
скомпилируйте собственную версию Dr.Jit с помощью CMake. Пожалуйста, ознакомьтесь с
документация
для получения подробной информации об этом.
Требования
Python >= 3.8
(необязательно) Для вычислений на графическом процессоре: Nvidia driver >= 495.89
(необязательно) Для векторизованных/параллельных вычислений на ЦП: LLVM >= 11.1
Использование
Вот простой пример «Hello World», который показывает, насколько просто визуализировать
сцена с использованием Mitsuba 3 из Python:
# Импортируйте библиотеку, используя псевдоним "mi"import mitsuba as mi# Установите вариант renderermi.setvariant('scalarrgb')# Загрузите сценуscene = mi.loaddict(mi.cornellbox())# Отрисуйте сценуimg = mi. render(scene)# Запишите визуализированное изображение в файл EXRmi.Bitmap(img).write('cbox.exr')
Учебные пособия и блокноты с примерами, охватывающие различные приложения, можно найти.
в документации.
О
Этот проект создал Венцель Якоб.
Значительные функции и/или улучшения кода были внесены
Себастьян Шпейерер,
Николя Руссель,
Мерлин Нимье-Дэвид,
Делио Вичини,
Тициан Зельтнер,
Батист Николе,
Мигель Креспо,
Винсент Лерой и
Цзыи Чжан.
При использовании Mitsuba 3 в академических проектах указывайте:
@software{Mitsuba3,title = {рендерер Mitsuba 3},author = {Венцель Якоб и Себастьян Шпейерер и Николя Руссель и Мерлин Нимьер-Давид и Делио Вичини и Тициан Зельтнер и Батист Николе и Мигель Креспо и Винсент Лерой и Зийи Чжан},note = {https://mitsuba-renderer.org},версия = {3.1.1}, год = 2022}