Иньиго Килес (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.

В «Храбром сердце» Иньиго отвечал за создание, рендеринг, затемнение, кодирование травы, мха, сорняков, кустов, лишайников, крон деревьев и т. д.

Растительность в «Храбром сердце» создавалась процедурным генератором геометрии, который запускался во время рендеринга. Сид-число для генератора было номером телефона @iq с комментарием: «Позвоните, если не понимаете, как это работает; seed = 555-555-5555;»
Растительность в «Храбром сердце» создавалась процедурным генератором геометрии, который запускался во время рендеринга. Сид-число для генератора было номером телефона @iq с комментарием: «Позвоните, если не понимаете, как это работает; seed = 555-555-5555;»

Для пиксаровской «Лавы» (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/):

Другие демки автора см. здесь.

Математически сгенерированная улитка
Математически сгенерированная улитка

Процедурная графика

Процедурные текстуры — это текстуры, создаваемые алгоритмически, а не на основе изображений. Некоторые примеры:

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

  • Мрамор, дерево, облака.

  • Шахматные узоры, кирпичная кладка.

Они обладают неограниченным разрешением, низкими требованиями к памяти и высокой гибкостью.

«Lonely Boat», by Digimind, 1-е место на конкурсе 4-килобайтной графики TUM 2007. Полностью процедурные текстуры, обильное использование шумов Перлина, координатные тени
«Lonely Boat», by Digimind, 1-е место на конкурсе 4-килобайтной графики TUM 2007. Полностью процедурные текстуры, обильное использование шумов Перлина, координатные тени
Процедурный ландшафт, пошаговый рендеринг луча и рейтрейсинг, мягкие тени, атмосферное рассеивание и другие математические приёмы. Работа «ixaleno», by rgba, 1-е место на конкурсе 4-килобайтной графики Breakpoint 2008
Процедурный ландшафт, пошаговый рендеринг луча и рейтрейсинг, мягкие тени, атмосферное рассеивание и другие математические приёмы. Работа «ixaleno», by rgba, 1-е место на конкурсе 4-килобайтной графики Breakpoint 2008

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

wav 117, pitch 296 Hz
wav 117, pitch 296 Hz
wav 54, pitch 519 Hz
wav 54, pitch 519 Hz
wav 405, pitch 440 Hz
wav 405, pitch 440 Hz
wav 121, pitch 496 Hz
wav 121, pitch 496 Hz

Известные демки

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 — инструмент для построения графиков и проектирования математических функций, полезный в процедурном программировании.

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

Human Shader
Human Shader
  • 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 ООО «МТ ФИНАНС»

Комментарии (1)


  1. verax_mendax
    04.08.2025 09:10

    Вот Такие статьи мне на Хабре нравятся. Спасибо, почитаю подробнее на досуге.