Ink deformation
Цифровые рукописные заметки позволяют быстро фиксировать идеи без формализации, а их ключевое преимущество — возможность менять свойства чернил после рисования, включая деформацию формы. Это открывает путь к программируемости: от ручной коррекции стрелок или рамок до динамических изменений, например, в параметрических CAD-моделях. Однако векторная графика, хотя и удобна для точных правок, теряет непосредственность свободного рисования.
Идеальное решение сочетает неформальность эскизов с динамичностью вычислений, используя «формальность по требованию». Основная сложность — найти баланс между свободным стилем и структурой: нужно определить управляющие элементы, сопоставить их с геометрией чернил и обеспечить интуитивные деформации. Упрощение геометрии (например, через аппроксимацию сплайнами) работает для чистых линий, но в хаотичных скетчах становится громоздким. Проблема в том, чтобы управляющая структура отражала замысел автора, а не только форму.
Комментарии (9)
- Участники обсуждают, является ли представленный проект готовым программным продуктом или теоретическим исследованием, отмечая запутанность описания.
- Поднимается вопрос о производительности и реальном времени работы предлагаемых технологий, с примерами из существующих инструментов вроде Puppet Warp в Illustrator.
- Отмечается интерес к идее преобразования рукописных эскизов в формальные CAD-модели и потенциале этого для упрощения проектирования.
- Высказываются предположения, что аналогичные методы уже используются в физических движках (например, инверсная кинематика), и что требования к "реальному времени" могут варьироваться в зависимости от устройства.
- Уточняется, что материал представляет собой лабораторные заметки, исследующие общую идею, со ссылками на предыдущие работы авторов.
Rasterizer: A GPU-accelerated 2D vector graphics engine in ~4k LOC
Rasterizer — GPU-ускоренный движок 2D-векторной графики от mindbrix.
Проект на GitHub: mindbrix/Rasterizer.
Комментарии (51)
- Автор показал компактный GPU-рендерер 2D-векторов (Rasterizer), 10 лет развивавшийся из VectorGL; использует «традиционный» граф-конвейер Metal, а не compute-шейдеры.
- Лицензия «personal-use zlib» вызывает вопросы: неясно, что считать личным/некомерческим и можно ли распространять ПО с этой библиотекой.
- Производительность конкурентна с Vello (Apache/MIT) и, вероятно, выше Rive на сложных сценах; у Vello бывают подвисания при зуме.
- Поддерживаются любые масштабы и огромные пути, но самопересечения и правило winding остаются главной головной болью параллелизации.
- Реализованы только базовые заливки; текста, градиентов, фильтров пока нет. Кеширование текстур не используется — 60 fps достигается полным перерисом.
- Планы: добавить коммерческую лицензию, написать подробный пост о методике, оценить порт на Vulkan/OpenGL.