Сегодня 08 ноября 2026
18+
MWC 2018 2018 Computex IFA 2018
реклама
Видеокарты

Технологии создания трехмерного изображения

⇣ Содержание

Как заставить это выглядеть настоящим?

Не важно, насколько большим и насыщенным будет виртуальный 3D мир. Компьютер может отображать его только одним способом: помещая пиксели на 2D экран. В этой части статьи вы узнаете, как изображение на экране становится реалистичным, и как сцены становятся похожими на те, которые вы видите в реальном мире. Сначала мы посмотрим, как придается реалистичность одному объекту. Потом мы перейдем уже ко всей сцене. И напоследок, мы рассмотрим, как компьютер реализует движение: реалистичные объекты движутся с реалистичными скоростями.

Прежде чем изображение станет реалистичным, объекты проходят несколько стадий обработки. Самые важные стадии это создание формы (shape), обтягивание текстурами, освещение, создание перспективы, глубины резкости (depth of field) и сглаживания (anti-aliasing).

Создание формы

Если мы выглянем в окно, то увидим что все объекты имеют форму, они созданы из прямых и кривых линий разных размеров и положений. Точно также, при взгляде на трехмерную графическую картинку на компьютерном мониторе, мы будем наблюдать изображение, созданное из различных форм, хотя большинство из них состоят уже из прямых линий. Мы видим квадраты, прямоугольники, параллелограммы, круги и ромбы. Но больше всего мы видим треугольников. Для того чтобы составить достоверную картинку с кривыми линиями как в окружающем мире, приходится компоновать форму из множества мелких формочек. Например, человеческое тело может потребовать тысячи этих формочек. Вместе они будут образовывать структуру, называемую каркасом. Каркас очень напоминает эскиз объекта, вы можете легко идентифицировать объект по каркасу. Следующий шаг после создания формы также не менее важен: каркас должен получить поверхность.


 Каркас руки, изготовленный из малого количества полигонов - всего 862
На иллюстрации показан каркас руки, изготовленный из малого количества полигонов - всего 862

 Здесь замыкающие объект линии выглядят более естественными и закругленными. Но это требует большего количества полигонов: уже 3444
Здесь замыкающие объект линии выглядят более
естественными и закругленными. Но это требует большего
количества полигонов: уже 3444.

Поверхностные текстуры (surface textures)

Когда мы встречаем какую-нибудь поверхность в реальном мире, мы можем получить информацию о ней двумя способами. Мы можем посмотреть на поверхность, под разными углами, и можем потрогать ее и определить, мягкая она или твердая. В трехмерной графике мы можем только смотреть на поверхность, получая при этом всю доступную информацию. И эта информация складывается из трех составляющих:

  • Цвет: Какого поверхность цвета? Однородно ли она окрашена?
  • Текстура: Ровная ли поверхность или на ней есть вмятины, бугры, рихтовка или что-то подобное?
  • Отражающая способность: Отражает ли поверхность свет? Четкие ли отражения или они размазаны?

Один из способов придания "реальности" объекту и состоит в подборе комбинации этих трех составляющих в различных частях изображения. Посмотрите вокруг себя: ваша компьютерная клавиатура имеет отличающийся цвет/текстуру/отражающую способность от вашего стола, который в свою очередь отличается цветом/текстурой/отражающей способностью от вашей руки. Для того чтобы цвет изображения был похож на настоящий, важно чтобы компьютер мог выбирать цвет пикселя из палитры в миллионы различных цветов. Разнообразие текстур зависит как от математической модели поверхности (от кожи лягушки до желеобразного материала) так и от карт текстур (texture maps), которые накладываются на поверхности. Также необходимо заложить в объекты те качества, которые нельзя увидеть: мягкость и твердость, теплоту и холод с помощью различных комбинаций цвета, текстуры и отражающей способности. Если ошибиться хотя бы в одном из этих параметров, ощущение реальности мгновенно рассеется.


 Добавление поверхности к каркасу начинает изменять изображение от чего-то математического до картинки, в которой мы без труда обнаруживаем руку
Добавление поверхности к каркасу начинает изменять
изображение от чего-то математического до картинки,
в которой мы без труда обнаруживаем руку.

Освещение

Когда вы входите в темную комнату, вы включаете свет. Вы не задумываетесь, как же свет, выходя из лампочки, распределяется по всей комнате. Но при разработке 3D графики необходимо постоянно это учитывать, потому что все поверхности, окружающие каркас, должны быть откуда-нибудь освещены. Один метод, называемый методом бегущего луча (ray-tracing), вычерчивает путь, который воображаемый луч пройдет после выхода из лампы, отражения от зеркальных поверхностей и который, в конце концов, закончится на предмете. Луч осветит его с различной интенсивностью под различными углами. Метод кажется достаточно сложным даже при построении лучей от одной лампы, но в большинстве комнат существует множество источников света: несколько ламп, окон, свечей и т.д.

Освещение играет ключевую роль в двух эффектах, придающих ощущение веса и цельности объектам: затенения (shading) и тени (shadow). Первый эффект затенения заключается в изменении интенсивности освещения объекта от одной его стороны к другой. Благодаря затенению шар выглядит круглым, высокие скулы выпирают на лице, а одеяло кажется объемным и мягким. Эти различия в интенсивности света совместно с формой усиливают иллюзию, что объект кроме высоты и ширины имеет еще и глубину. Иллюзия веса создается вторым эффектом: тенью.


 Подсветка изображения не только добавляет глубину объекту через затенение, но и 'привязывает' объект к земле посредством тени
Подсветка изображения не только добавляет глубину
объекту через затенение, но и "привязывает"
объект к земле посредством тени.

Оптически плотные тела при освещении отбрасывают тень. Вы можете увидеть тень на солнечных часах или посмотреть на тень дерева на тротуаре. В настоящем мире объекты и люди отбрасывают тени. Если в трехмерном мире будут присутствовать тени, то вам будет еще больше казаться, что вы смотрите через окно на настоящий мир, а не на экран с математическими моделями.

Перспектива

Слово перспектива кажется техническим термином, но на самом деле оно описывает простейший эффект, который все мы наблюдаем. Если вы встанете на обочину длинной прямой дороги и посмотрите вдаль, то вам покажется что правая и левая полоса дороги сходятся в точку на горизонте. Если по обочине посажены деревья, то чем дальше деревья находятся от наблюдателя, тем они меньше. Вы заметите, что деревья сходятся в ту же точку на горизонте, что и дорога. Если все объекты на экране будут сходиться в одну точку, то это и будет называться перспективой. Бывают, конечно, и другие варианты, но в основном в трехмерной графике используется перспектива одной точки, описанная выше.


 Пример перспективы: точка исчезновения

На приведенной иллюстрации руки выглядят разделенными, но на большинстве сцен одни объекты находятся впереди и частично блокируют вид на другие объекты. Для таких сцен программное обеспечение должно не только просчитать относительный размер объектов, но и учитывать информацию, какие объекты закрывают другие и насколько сильно. Наиболее часто для этого используется Z-буфер (Z-Buffer). Свое имя этот буфер получил от названия оси Z, или воображаемой линии, идущей за экран через сцену к горизонту. (Две другие оси - это ось X, измеряющая ширину сцены, и ось Y, измеряющая высоту сцены).

Z-буфер присваивает каждому полигону номер в зависимости от того, насколько близко к переднему краю сцены располагается объект, содержащий этот полигон. Обычно меньшие номера присваиваются ближайшим к экрану полигонам, а большие номера - полигонам, примыкающим к горизонту. Например, 16-битный Z-буфер присвоит ближайшему к экрану объекту номер -32.768, а самому удаленному - 32.767.

В настоящем мире, наши глаза не могут видеть объекты закрытые другими, поэтому у нас нет проблем в определении видимых объектов. Но эти проблемы постоянно возникают перед компьютером, и он вынужден непосредственно их решать. При создании каждого объекта, его Z-значение сравнивается со значением других объектов, занимающих те же области по координатам X и Y. Объект с самым маленьким Z-значением будет полностью прорисовываться, другие же объекты с большими значениями будут прорисованы лишь частично. Таким образом, мы не видим фоновых объектов, выступающих через персонажей. Так как Z-буфер задействуется перед полной прорисовкой объектов, скрытые за персонажа части сцены не будут прорисовываться вообще. Это ускоряет графическую производительность.

Глубина резкости

Другой оптический эффект, глубина резкости, также успешно используется в 3D графике. Будем использовать тот же пример с деревьями, посаженными по обочине дороги. По мере удаления деревьев от наблюдателя будет происходить другой интересный эффект. Если вы посмотрите на ближайшие к вам деревья, то удаленные деревья будут не в фокусе. Особенно это видно при просмотре фотографии или видеоролика с теми же деревьями. Режиссеры и компьютерные аниматоры используют этот эффект в двух целях. Первая состоит в усилении иллюзии глубины наблюдаемой сцены. Конечно же, компьютер может прорисовывать каждый объект сцены точно в фокусе, независимо от его удаления. Но так как в реальном мире эффект глубины резкости всегда присутствует, то прорисовка всех предметов в фокусе приведет к нарушению иллюзии реальности сцены.

Вторая причина использования этого эффекта заключается в привлечении вашего внимания к нужным предметам или актерам. Например, для усиления вашего внимания к герою фильма, режиссер будет использовать эффект малой глубины резкости (shallow depth of field), когда только один актер будет находиться в фокусе. С другой стороны, сцены, которые должны потрясти вас величием природы, используют эффект большой глубины резкости (deep depth of field) чтобы дать как можно больше предметов в фокусе.


 Глубина резкости в перспективе

Сглаживание (anti-aliasing)

Сглаживаение - это еще одна технология, призванная обмануть зрение. Цифровые графические системы очень хороши для создания вертикальных или горизонтальных линий. Но когда появляются диагонали и кривые (а они появляются очень часто в реальном мире), компьютер прорисовывает линии с характерными "лесенками" вместо ровных краев. Чтобы убедить ваши глаза в том, что они видят гладкую линию или кривую, компьютер добавляет вокруг линии пиксели с различными оттенками цвета линии. Эти "серые" пиксели создают иллюзию отсутствия "ступенек". Такой процесс добавления пикселей для обмана зрения называется сглаживанием, и он является одной из технологий, отличающих компьютерную 3D графику от "ручной" графики. Задачи сохранения линий и добавления нужного количества "сглаживающих" цветов являются еще одним сложным делом для компьютера при создании 3D анимации на вашем дисплее.


 Характерные лесенки появляются при прорисовке пиксельного изображения с помощью прямых линий. Сразу видно, что объект создан компьютером
Характерные "лесенки" появляются при прорисовке
пиксельного изображения с помощью прямых линий.
Сразу видно, что объект создан компьютером.

 Прорисовка серых пикселей вокруг линий несколько их размывает. Эффект помогает убрать лесенки и делает объект более реалистичным
Прорисовка "серых" пикселей вокруг линий
несколько их размывает. Эффект помогает убрать
"лесенки" и делает объект более реалистичным.

Пример из настоящего

Когда все эти уловки, описанные выше, работают вместе, они позволяют создать сцену с потрясающим реализмом. В современных играх и фильмах компьютерные объекты совмещаются с фотографиями окружающей среды, что только усиливает иллюзию. Вы будете потрясены результатом, если станете сравнивать фотографии и компьютерные сцены.


 Фотография тротуара около нашего офиса

Это фотография тротуара около нашего офиса. На одном из следующих кадров мы поместили мячик на тротуар и сфотографировали его. На другом кадре художник создал тот же самый мячик с помощью компьютерной графики.


 Фотография с шариком номер раз
Кадр A

 Фотография с шариком номер два
Кадр B

Можете ли вы указать кадр с настоящим мячиком? Ответ приведен в конце статьи.

Было интересно? Скажите об этом Google, чтобы чаще получать ссылки на наши новости про общая информация
Следующая страница → ← Предыдущая страница
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

window-new
Soft
Hard
Тренды 🔥
Новая статья: Cairn — госпожа горных дорог. Рецензия 15 ч.
Новая статья: Gamesblender № 801: песчаная TES VI: Sentinel, новый шутер Джона Ромеро и Xbox в крокодиле 15 ч.
У клавиатуры iPhone нашёлся список из 100 тыс. запретных слов — но набирать их всё равно можно 24 ч.
Просто деньги очень нужны: Anthropic не откажется от IPO на фоне биржевого обвала 24 ч.
Китайский ИИ почти догнал секретную модель OpenAI во взломе сетей — и оказался дешевле 07-11 13:59
Ноябрьские игровые релизы грозят опустошить офисы — сотрудники массово берут выходные 07-11 09:47
Новая статья: Stygian: Outer Gods — лавкрафтианский кошмар. Опять. Рецензия 07-11 00:07
Бывший босс PlayStation объяснил, почему спустя 11 лет Sony так и не выпустила ни ремейк, ни сиквел Bloodborne 06-11 22:07
IPO на $1,5 трлн под угрозой: потенциальных инвесторов Anthropic напугал обвал акций IT-компаний 06-11 21:32
Paint оказался дырявым: уязвимость позволяет удалённо взламывать Windows 11 — Microsoft выпустила патч, но он не приходит 06-11 21:02
«Хьюстон, у нас проблемы»: возвращение американцев на Луну в 2028 году может сорваться из-за забуксовавшего разработчика скафандров 30 мин.
Старые, неэкологичные авиадвигатели всё более востребованы для электропитания ИИ ЦОД в США 15 ч.
Synology выпустила двухконтроллерную СХД PAS3600 на 12 накопителей SATA 23 ч.
Дорогая память не помогла: биржевой обвал спутал планы китайской YMTC по IPO 07-11 13:28
Умные очки Samsung и Warby Parker будут доступны для предзаказа с 12 ноября 07-11 13:22
Конкурент Starlink анонсировал собственную ракету — первый запуск намечен на 2028 год 07-11 10:33
Nvidia ищет следы контрабанды — будущих партнёров в Азии обяжут подключить мониторинг чипов 07-11 07:35
Новые смартфоны всё чаще комплектуют б/у памятью — перепаянная DRAM будет в 9 % гаджетов в следующем году 07-11 01:44
Tesla сообщила о планах по выпуску ИИ-ускорителей SI и Dojo 3 07-11 00:30
YMTC хочет выпускать передовую NAND почти без западных технологий — 70 % оборудования на новом заводе будет китайским 06-11 23:51