Показать HN: Spark, усовершенствованный 3D-рендеринг Gaussian Splatting для Three.js ( sparkjs.dev ). Я являюсь одним из создателей и поддерживающим https://aframe.io/ и долгое время занимаюсь разработкой 3D-графики для веб-дизайна.
Очень рад новым методам создания / рендеринга / представления 3D. Spark — это библиотека с открытым исходным кодом для простой интеграции гауссовых пятен в сцену THREE.js. Я работал с друзьями и надеюсь, что вы найдете это полезным.
С нетерпением ждем, какие функции/методы рендеринга вы хотели бы увидеть в будущем.
Очень впечатляющая демонстрация, отлично работает на моем старом iPhone.
Как любитель-игровик, которому не хватает знаний в области 3D-программирования, я могу предложить только одно: вы могли бы дать определение “Gaussian Splatting” где-нибудь на github или на сайте. Одна строка из википедии помогает мне больше воодушевиться проектом и его возможными вариантами использования: Gaussian splatting — это метод объемного рендеринга, который занимается прямым рендерингом объемных данных без преобразования данных в поверхностные или линейные примитивы.
Суперэффективные облака, огонь, дым и т. п.? Потрясающе!
Спасибо. Нам определенно нужно добавить FAQ.

Демонстрация сканирования еды (раздел примеров “Интерактивность”) невероятна. Особенно Mel's Steak Sandwich, смотрящий в дырки в хлебе.
Производительность кажется удивительно хорошей для видимого уровня детализации, даже на моем ноутбуке с интегрированной графикой. Где эта техника чаще всего используется сегодня?
Есть сообщество людей, увлеченных сканированием всего короткого с помощью портативных устройств, дронов… Типатат великодушно разрешил нам использовать его сканы еды для демонстрации. Мне также нравятся сканы цветов котохиби: https://superspl.at/user?id=kotohibi
Редактировать: опечатки
Ого, какое устройство мне нужно, чтобы сделать свое собственное?

Сканы еды — это просто фотографии с телефона Pixel, обработанные с помощью postshot ( https://www.jawset.com/ ) для создания пятен.

Я уверен, что это не ультрасовременная технология, но приложение «Scaniverse» генерирует очень красивые пятна, если просто помахать телефоном вокруг объекта в течение минуты или около того.

Да, есть несколько приложений для телефона, которые генерируют пятна. Также Luma 3D Capture.

И размер передаваемых данных для такого уровня детализации не так уж и плох — всего около 80 МБ. (Это не сарказм, это действительно здорово.)

Да. А некоторые отдельные сканы, такие как «Моллюски и икра» или «Пад Тай», весят < 2 МБ.

Выглядит супер круто! Будет ли это работать в VR, если кто-то откроет веб-страницу из веб-браузера? Потому что это было бы еще более круто!

Работает в VR! Скоро будет доступна демоверсия.

О, это фантастика!

Это здорово, спасибо!
Я провел бесчисленное количество часов, играя с R3F – добавляя вершинные и фрагментные шейдеры, в конце концов сдался. Математика просто утомительна.
У нас есть шаблон для R3F, который может оказаться вам полезным:
https://github.com/sparkjsdev/spark-react-r3f
Супер круто! Поздравляю с запуском :))

Чуть более очевидная ссылка на репозиторий https://github.com/sparkjsdev/spark

Привет @dmarcos! Поздравляю с запуском!
от твоего друга по GH-акселератору, Винни!
Демо выглядят отлично! Я думаю, это не чистый javascript. Вы используете webgpu?

API WebGL основан на стандарте OpenGL ES, который отказался от множества процедурных конвейерных вызовов, упрощавших написание 3D-логики, привязанной к процессору.
Компромисс заключается в изначальной сложности (ваш «привет, мир» для WebGL, показывающий один объект, будет включать шейдер и массивы данных для этого шейдера), но в результате проектирования API как бы заставляет больше вычислений попадать на уровень графического процессора, поэтому тот факт, что JavaScript управляет этим, не имеет большого значения.
THREE.js добавляет поверх этого металла приятный слой абстракции.
Только WebGL2

Планируете ли вы расширить поддержку треугольных нашивок?

Мы определенно смотрим на это. Пока нет конкретных планов

Крутая штука. Есть примеры с полупрозрачными поверхностями? Что-то вроде игрушечной елки внутри стеклянной сферы, с просчитанными базовыми отражениями и преломлениями?

Ничего такого, что можно было бы назвать первостепенным. Посмотрите сканы людей на https://superspl.at/ Все, что там есть, также должно отображаться в Spark.

https://superspl.at/view?id=8c35f06d отрендерено очень хорошо. Этот Spark на удивление быстр: сцена размером 650 МБ отрендерилась со скоростью 120 кадров в секунду.

Интерактивная демонстрация на главной странице, которая прекрасно работала на моем Pixel 7, была просто ужасной!

PartCAD может экспортировать модели САПР в Three.js.
Например, расширение OCP CAD viewer для моделей build123d и cadquery также создано на Three.js. https://github.com/bernhard-42/vscode-ocp-cad-viewer
Подождите, вы переименовали Forge ( https://forge.dev ), выпущенный на прошлой неделе стартапом World Labs, собравшим 230 миллионов долларов.
Это «Я работал с друзьями и надеюсь, что вы найдете это полезным» или «Я так горжусь командой World Labs, которая сделала это возможным, и мы делаем это ПО с открытым исходным кодом для всех» (генеральный директор World Labs)?
https://x.com/drfeifei/status/1929617676810572234
Да. Я сотрудничал с одним из разработчиков в World Labs по этому вопросу. Цель — исследовать новые методы рендеринга и популяризировать принятие 3D гауссовского сплаттинга. С этим продуктом не связано.

Понял. Спасибо за разъяснение.

Мы переименовали из-за конфликта имен с другим рендерером/инструментом.
Source: news.ycombinator.com