
Иньиго Килес (iq) более тридцати лет профессионально занимается компьютерной графикой (CG). За это время он опубликовал массу учебных проектов, курсов и лекций. Известен как автор нескольких выдающихся демок и программных проектов, включая Quill — инструмент для рисования и анимации в VR и Shadertoy — сайт для обучения компьютерной графике, создания и публикации работ.
Жизнь и карьера
Иньиго Килес родился и вырос в небольшом каталонском городке Сан-Себастьян (исп.) / Доностия (баск.) на севере Испании.

Закончил факультет электротехники в Университете Страны Басков. Тема дипломной работы: «Детектор высокоимпедансных сбоев в реальном времени с использованием вейвлет-пакетного анализа».
Всю жизнь посвятил CG в разных ипостасях: как технический художник, менеджер продукта, программист и научный инженер, см. резюме. По мере возможности публиковал все свои проекты в открытом доступе под свободными лицензиями, если работодатель разрешал.

С 1999 года практически ежегодно берёт первые призы на различных демопати, начиная с EuskalParty 7 в 1999 году в Сан-Себастьяне в категории «Интро 64k». Потом последовали победы на других конкурсах в Испании и за её пределами.
Кроме побед демопати, у него есть и другие призы. Например, награда от Visual Effect Society (VES) в 2013 году за «Создание выдающейся среды в полнометражном анимационном фильме», приз за «Лучшую исполняемую графику» Meteoriks Awards в 2021 в году. Наконец, престижная награда Practitioner Award от ACM SIGGRAPH в 2022 году за «Десятилетие плодотворной работы над Shadertoy» (о нём см. ниже в списке проектов).
C 2009 года Иньиго Килес живёт и работает в Калифорнии. Первой американской работой стала студия анимации Pixar, где он отвечал за создание процедурных декораций для фильмов, оформление, моделирование и шейдинг в кадрах, а также за разработку необходимого ПО, алгоритмов и архитектуры, включая низкоуровневую разработку.
В 2010 году он разработал программную систему Wondermoss для процедурных ландшафтов, растительности и листвы. Она использовалась во многих пиксаровских фильмах, от «Храброй сердцем» (2012) до «Коко» (2017). К сожалению, это закрытая программа, которая до сих пор остаётся в проприетарной собственности Pixar.
В «Храбром сердце» Иньиго отвечал за создание, рендеринг, затемнение, кодирование травы, мха, сорняков, кустов, лишайников, крон деревьев и т. д.

Для пиксаровской «Лавы» (2014) он делал деревья на среднем и заднем плане острова. В «Хорошем динозавре» (2015) отвечал за генерацию ландшафтов, процедурную траву, мох, кустарники, камни, речные камни и дальние деревья.
Затем несколько лет провёл в студии Oculus Story как супервайзер визуальных эффектов. Двухминутная VR-короткометражка «Генри» (2016) этой студии получила премию «Эмми», для неё Иньиго разработал технологии анимации меха, глаз и освещения. Также занимался шейдингом персонажей и освещением сцен.
После покупки Oculus корпорацией Facebook стал продуктовым менеджером и одновременно ведущим разработчиком Quill — инструмента для рисования и анимации в VR. Этот инструмент использовался в нескольких короткометражках, в том числе в «Дорогой Анжелике» (2017), отобранной для фестиваля Sundance:
После Facebook он немного отдохнул на фрилансе (2019−2022), а последние три года трудится в Adobe на должности ведущего научного инженера (Principal Research Engineer).
Математическая живопись
В понимании Иньиго Килеса, математическая живопись — это описание сцены с помощью формул, когда мы создаём художественную картину с помощью исполняемого файла, который содержит все объекты, текстуры и движок рендеринга. Например, вот «Худи» (2020) — исполняемая программа размером 3950 байт, которая генерирует картинку 2,99 МБ (если сохранить в PNG), видеоурок:

Или «Лес» (2012) — программа 24 КБ (код и данные), которая генерирует видео в реальном времени, включая процедурные текстуры и рендеринг OpenGL, она используется в демо [Beautypi] (http://www.beautypi.com/):
Другие демки автора см. здесь.

Процедурная графика
Процедурные текстуры — это текстуры, создаваемые алгоритмически, а не на основе изображений. Некоторые примеры:
Шум Перлина — градиентный шум из псевдослучайных единичных векторов (направлений градиента) в определённых точках пространства, с функцией сглаживания между ними. Используется для увеличения реализма или графической сложности поверхности геометрических объектов. Также может использоваться для генерации эффектов дыма, тумана и т. д.
Мрамор, дерево, облака.
Шахматные узоры, кирпичная кладка.
Они обладают неограниченным разрешением, низкими требованиями к памяти и высокой гибкостью.


Вообще, генерация текстур — один из главных трюков в производстве 4k демок. Здесь используется много разных интересных приёмов, например, конвертация звука WAV (одномерный сигнал) в текстуры (2D):




Известные демки
Elevated
Elevated — последняя 4k-демка, которую создал Иньиго. И, возможно, самая известная. Победитель фестиваля Breakpoint 2009.
По ссылке выше лежат исходники, можно загрузить в Visual Studio и собрать, если положить рядом в папке Crinkler и Nasm. В файле constants.h
указано разрешение, по умолчанию 1920×1080
. Для рендеринга нужен Direcx 9.
Исполняемые бинарники лежат здесь, образец видео в avi, отдельно саундтрек.
Демка создана совместно с Purix (Кристиан Рёнде, музыка) и Mentor (Руне Стуббе) из демоколлектива TBC.
Есть презентация с интересными материалами и историей создания Elevated.
После создания Elevated Иньиго переехал в Калифорнию, начал серьёзную профессиональную карьеру и больше демок не выпускал.
Демо-фреймворки
Demo-Framework-4k и Demo-Framework-64k — демонстрационные фреймворки, то есть шаблоны для создания демок на 1k, 4k и 64k, соответственно. Сам Иньиго использовал их для создания Elevated и «Худи».
В пакете по одному проекту для каждой из базовых вариантов технологий, которые используются в таких маленьких демках: OpenGL с полигонами, OpenGL только с шейдерами, DirectX9 с полигонами, DirectX9 только с шейдерами, программный рендеринг (чисто на основе пикселей, многопоточный) и т. д. Некоторые демки реализуют и звук.
Все они требуют отдельной установки компрессора Crinkler, чтобы связать бинарник в самораспаковывающийся исполняемый файл. Проекты Visual Studio уже настроены для использования Crinkler при сборке в режиме Release.
Для проектов на шейдерах рекомендуется Shader Minifier, чтобы максимально сжать шейдеры.
Обучающие материалы
Список справочных статей по компьютерной графике. Это текстовые статьи на основе презентаций, лекций и докладов Иньиго, на самые базовые, ключевые темы. По разделам:
Индексы полезных функций (типа 2D SDF'ы и градиенты, фильтруемые процедурные текстуры и др.)
Процедурные шумы (FBM, рёбра Вороного и др.)
Трассировка лучей
Облака точек и сплэттинг
Воксели
Сжатие графики (генетические алгоритмы, вейвлеты и проч.)
Экстремально маленькие программы
Функции SDF и пошаговый рендеринг луча (raymarching)
Текстурирование и фильтрация
Освещение
Рендеринг/движки
Простые олдскульные эффекты
Полезная математика
Фракталы и сложная динамика
Рендеринг фракталов
Развлекательная математика
Отдельно есть список справочных видеолекций примерно на ту же тематику.
В целом, это уникальный и отборный контент для обучения основам компьютерной графики.
На YouTube-канале Иньиго тоже много любопытных и полезных материалов. Например, математическое рисование в электронных таблицах Google Sheets:
Другие проекты
Quill — инструмент для рисования и анимации в VR, использовался для создания нескольких известных VR-короткометражек. Первая версия разработана в 2017 году.
Cоавтор Shadertoy — сайт для обучения компьютерной графике, создания и публикации работ.
Made This Thing — удобная платформа для публикации кода и творческих работ, без социальной сети и других функциональных излишеств GitHub.
Graphtoy — инструмент для построения графиков и проектирования математических функций, полезный в процедурном программировании.

Human Shader — совместный проект в области математической живописи. Вручную попиксельно рассчитан и нарисован 1966 участниками.

CSS-Minifier — маленькая, быстрая, нативная утилита командной строки для минификации CSS-файлов, не требующая Python, Go или Node, а также без зависимостей в исходниках.
EFI Bootloader — загрузчик EFI для x64. Утилита размером 5 КБ, без зависимостей, с анимацией 2D.
piLibs-JS — простой минимальный набор библиотек для 3D-рендеринга (WebGL 2.0), чтения файлов и др., 47 КБ в минифицированном виде.
Tau-Digits — миллиард и миллион разрядов числа Тау в текстовом виде, если кому-то нужно для работы.
Stack-Parser — маленькая программа для извлечения символов стека вызовов из .PDB по текстовому логу сбоев
Старые программки на QBasic, которые автор написал в 1995-м.
To-Array — преобразование файлов в массивы и строки С.
Vectypes — хедер для математических операций в стиле glsl с векторами, преобразованиями, контурами, усечёнными фигурами и т. д.
Beautypi — генерация графики в реальном времени. Это студия, а по сути творческий дуэт Иньиго Килеса и Пола Жеремиаса (Pol Jeremias), с которым они вместе выпустили несколько проектов, включая Shadertoy.
Иньиго Килес также известен как соразработчик плагина для видеоконференций Memix с шейдерными фильтрами, который он успешно продал стартапу mmhmm (сейчас называется Airtime), тот выпускает профессиональные инструменты для видеоконференций. Наверное, над этим плагином Иньиго работал в годы фриланса и смог неплохо заработать.
Если подводить итоги, то Иньиго Килес [iq] — один из самых талантливых и креативных разработчиков в области компьютерной графики из ныне живущих, — говорят те, кому посчастливилось с ним поработать.
© 2025 ООО «МТ ФИНАНС»
verax_mendax
Вот Такие статьи мне на Хабре нравятся. Спасибо, почитаю подробнее на досуге.