Светящаяся пирамида — 3D-виджет на WebGL
Объёмная пирамида, посчитанная шейдером, а не полигонами: 30 КБ без зависимостей и сборки, логотип вплавлен в материал граней, вставляется в любой сайт одной строкой.
- Период
- 2026
Ключевые показатели проекта
- вес виджета, 10 КБ в gzip
- 30 КБ
- зависимостей и шагов сборки
- 0
- объём считает шейдер, а не полигоны
- SDF
Состав работ по проекту
Услуги
- Raymarch-шейдер по SDF
- Виджет для шапки сайта
- Настройка палитры под бренд
- Оптимизация под мобильные
О проекте
Шапке сайта нужен объект, который выглядит дорого и при этом ничего не весит. Обычный путь — модель плюс движок: three.js тянет за собой сотни килобайт, к ним добавляется сам файл модели, и всё это ради одной фигуры, которая просто красиво крутится.
Подробнее о проекте
Хотелось обойтись без модели вообще и получить виджет, который вставляется в любой сайт — Tilda, WordPress, статический HTML — двумя строками и без сборки.
Ход работы
- пирамида описана математически: SDF-функция анизотропного октаэдра, пересечённого полупространством, — файла модели не существует в принципе;
- объём и свечение набираются raymarch-циклом, сто шагов на пиксель, с накоплением цвета вдоль луча;
- логотип не наклеен сверху текстурой, а подмешивается в материал внутри цикла марширования — поэтому он светится тем же светом, что и грань, и живёт под её поверхностью;
- палитра выведена в параметры: фазы R/G/B — главный регулятор, от них зависит весь характер свечения;
- собственное вращение дополнено обратной зависимостью от курсора с инерцией — пирамида уходит от мыши, а не следует за ней;
- защита производительности: потолок devicePixelRatio и площади буфера, остановка рендера за пределами экрана, уважение системного «уменьшить движение».
Результат
Один файл на 30 КБ, 10 КБ после сжатия, без единой зависимости и без шага сборки. Живая пирамида в шапке этой страницы — это она и есть, а не видео.
Считается всё шейдером, поэтому вес не зависит от сложности формы: у геометрии нет ни вершин, ни треугольников, ни текстур. Цена другая — заливка: сто шагов на каждый пиксель каждый кадр. Отсюда потолки разрешения на узких экранах, иначе телефон грелся бы ради фоновой картинки.
Есть продукция, которую нужно визуализировать?
Средний бюджет проекта — от 30 000 ₽.
Небольшие отдельные задачи оцениваются индивидуально.
