Meschers: Geometry Processing of Impossible Objects
Мешеры: геометрия невозможного
Кратко
Невозможные объекты — рисунки, которые мозг воспринимает, но в 3D не существуют. Раньше их «впихивали» в 3D: резали или гнули. Резка портит геометрию, гнутье мешает освещению и ломает алгоритмы (расстояния, диффузия и т.д.).
Мешер — новая сетка: у каждой вершины только 2D-координаты экрана, а у рёбер — разница глубин. Сумма этих разниц по циклу может быть ≠ 0; в этом вся «невозможность». Построено на дискретном внешнем исчислении.
Что умеет
- Сглаживание, диффузия тепла, геодезические расстояния.
- Инверсный рендеринг: из 2D-фото невозможного треугольника восстанавливаем мешер.
- Легко менять освещение, не портя форму.
Демо
Слева — сглаживание 2D-координат, в центре — сглаживание глубин, справа — всё вместе.
Из обычного тора оптимизацией получаем настоящий невозможный Penrose-треугольник.
Код и статья — на сайте проекта.
Комментарии (5)
- Авторы фактически оцифровали «трюки Эшера»: в 3D-модели хранят только x, y и разность z между концами рёбер, вместо полных z-координат.
- Это превращает невозможные геометрии в «возможные» для нашего зрения, обманывая 2.5-D «прошивку» мозга.
- Комментаторы спорят: обман ли это или топологическая, неевклидова интеграция, которую приматье зрение легко переваривает.
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.
How do I get into the game industry
Краткий путь в геймдев
-
Делай игры.
Не жди вакансий — пили прототипы, моды, демо. Любой код, который запускается, уже плюс в карму. -
Показывай.
Заливай на GitHub, пиши посты, записывай гифки. HR ищут не диплом, а живые примеры. -
Учись у сообщества.
Discord, Reddit, форумы. Задавай вопросы, ревьюь чужой код, участвуй в джемах. -
Специализируйся.
Выбери узкое: AI, рендер, сетевой код. Глубина ценится выше широты. -
Отправляйся в инди.
Маленькие студии берут джунов без опыта, если видят портфолио. Зарплата ниже, но опыт растёт быстро. -
Не сдавайся.
Отказов будет много. Каждый «нет» — шанс улучшить портфолио и попробовать снова.
Формула: игра в релизе > тестовое задание > резюме.
Комментарии (137)
- Войти в индустрию сейчас проще технически, но сложнее выделиться: рынок переполнен, зарплаты и студии сокращаются, особенно в США.
- Работодатели требуют показать небольшие законченные проекты (от «Виселицы» до «Тетриса») и подтвердить навыки онлайн-вниманием.
- Специализация в дефицитных нишах (физика, рендер, движки) повышает шансы, как и платформы вроде Roblox с готовой аудиторией.
- Корпоративная разработка игр требует «рабского» ритма; многие советуют остаться инди или вообще не лезть в AAA.
- ИИ и «holodeck-генераторы» пока вызывают споры: кто-то видит конец профессии, кто-то — лишь новый инструмент.