В соответствии с законом Мура вычислительная мощность растёт экспоненциально, и в определённый момент нас так или иначе ждёт качественный скачок в развитии графики. Произойдёт ли это до того, как миниатюризация микросхем столкнётся с фундаментальными физическими ограничениями? Ответ зависит от того, насколько правдоподобной картинки мы ждём: разнообразных приёмов, сближающих изображение с реальностью, изобретено множество, и их совокупность уже совсем скоро может дать потрясающие результаты.
На пресс-конференции, прошедшей в конце марта 2013 года в Сан-Хосе, директор NVidia Женьсюнь Хуан демонстрировал новейшую видеокарту GeForce GTX TITAN, и заодно показывал разные технологические демо, созданные партнёрами NVidia. Наибольшее внимание публики привлекла «говорящая голова» — реалистичная компьютерная модель лица человека.
В своём выступлении Женьсюнь Хуан не забыл упомянуть «зловещую долину» (uncanny valley) — известную проблему, преследующую тех, кто пытается сделать фотореалистичную модель человека. Этот термин придумал профессор Масахиро Мори, занимавшийся не графикой, а роботами: он подметил, что чем точнее мы воссоздаём человеческие черты, тем больше шансов, что результат будет казаться пугающим.
Наш мозг натренирован замечать мельчайшие детали в лицах людей, и обмануть его очень тяжело. Любые неточности оборачиваются тем, что качественная и дорогая в производстве компьютерная модель оказывается «пластмассовой» и «странной», а в результате — непривлекательной. Кривая, показывающая зависимость привлекательности от правдоподобности, сперва нарастает, а потом в самом конце делает глубокий изгиб. Его и называют зловещей долиной.
Нужно учитывать, что этот график никак не привязан к темпу прогресса: если заменить шкалу правдоподобности показателем времени, которое требуется на приближение к фотореализму, части кривой растянутся по-разному. Главный вопрос: насколько большой при этом окажется зловещая долина и, главное, насколько близко к выходу из неё мы находимся?
Если речь идёт о спецэффектах в кино, то край Зловещей долины уже близок: в сценах, где нужны трюки или компьютерной графики и так слишком много, теперь принято использовать трёхмерные модели актёров — зрители даже не замечают этого перехода (см. статью «Невидимые иллюзии: cемь доказательств того, что вы не различите спецэффекты в кино и реальность»).
Следующий этап — это компьютерные игры. Их графика развивается по тому же пути, что и кинематографическая, и главная разница — в том, что в кино каждый кадр может обсчитываться часами и потом пройдёт пост-обработку. В игре же кадры должны поступать со скоростью не менее 24 штук в секунду, а если нужно стерео или тем более виртуальная реальность, то не менее 60. Получается, что игровая графика отстаёт на определённое время, но потихоньку нагоняет кино. Первые примеры этого уже можно увидеть.
Вывести на экран статичную картинку с лицом человека, неотличимым от фотографии, — уже давно не проблема. Настоящее достижение — сделать так, чтобы это лицо не теряло реалистичности в движении. Стоит нарисованной голове улыбнуться или, скажем, зевнуть, как мы сразу начинаем подмечать подделку.
Как инженерам NVidia удалось сделать столь реалистичную модель лица человека? Основу этой технологии изобрели в лаборатории ICT Университета Южной Калифорнии. Для захвата мимики учёными была создана сферическая комната со 156 камерами, каждая из которых снабжена светильником. Человек, зашедший в эту комнату, последовательно демонстрирует разные выражения лица или жесты, а камеры — снимают.
Тридцати гримас достаточно, чтобы из записанного видео программа смогла составить реалистичную модель мимики, которую затем можно использовать для анимации. Однако такая база данных занимает больше чем 32 Гбайта — многовато для генерации картинки в режиме реального времени. В NVidia смогли оптимизировать технологию и получить базу, занимающую всего 440 Мбайт. Для анимации, подобной той, что показывали на сцене, требуется система с вычислительной мощностью около 2 терафлопс. Может показаться, что это много, но производительность GeForce GTX TITAN превышает эту цифру примерно вдвое.
Реалистичная лицевая анимация — не единственная, но очень важная технология, которая сделает игры более похожими на реальность. Вот демонстрационное видео, созданное в студии Quantic Dream и использующее захват мимики. Оно не требует видеокарты последнего поколения и работает на Playstation 3 — приставке, выпущенной в 2006 году.
Сюжет этой короткометражки, кстати, заслуживает особой похвалы: мы видим, как робот превращается в девушку по имени Кара, но робота в данном случае можно считать метафорой для компьютерной графики. В какой-то момент модель становится такой реалистичной, что ещё чуть-чуть и спутаешь с человеком.