Вы, наверное, читаете эту статью на экране монитора компьютера или мобильного устройства - дисплей, который имеет реальные размеры, высоту и ширину. Но когда вы смотрите, например, мультфильм История Игрушек или играете в игру Tomb Raider, вы лицезреете трёхмерный мир. Одной из самых удивительных вещей трехмерного мира является то, что мир, который вы видите, может быть миром, в котором мы живем, миром, в котором мы будем жить завтра, или миром, который живет только в умах создателей фильма или игры. И все эти миры могут появиться только на одном экране - это как минимум интересно.
Как компьютер делает так, что обманывает наши глаза и мы думаем, что смотря на плоский экран видим глубину представленной картины? Как разработчики игр делают так, что мы видим реальных персонажей, передвигающихся в реальном ландшафте? Сегодня я расскажу вам о визуальных трюках, используемых графическими дизайнерами, и о том, как всё это разрабатывается и кажется нам настолько простым. На самом деле всё не просто, и чтобы узнать, что из себя представляет 3D-графика, ступайте под кат - там вас ждёт увлекательная история, в которую, я уверен, вы погрузитесь с небывалым удовольствием.
Изображение, которое имеет или кажется, что имеет высоту, ширину и глубину является трехмерным (3D). Картинка, которая имеет высоту и ширину, но не глубину является двумерной (2D). Напомните-ка мне, где вы встречаете двумерные изображения? - Практически везде. Вспомните даже обычный символ на двери туалета, обозначающий кабинку для того или иного пола. Символы спроектированы таким образом, что вы можете распознать их и узнать с первого взгляда. Вот почему они используют только самые основные формы. Более детальная информация о каком-либо символе может рассказать вам, какую одежду носит этот маленький человечек, весящий на двери, или цвет волос, например, символики двери женского туалета. Это одно из основных отличий между тем, как используется трехмерная и двумерная графики: 2D-графика проста и запоминаема, а 3D-графика использует больше деталей и вмещает в казалось бы обычный объект значительно больше информации.
Например, треугольники имеют три линии и три угла - всё, что нужно, чтобы рассказать из чего состоит треугольник и вообще что представляет собой. Однако посмотрите на треугольник с другой стороны - пирамида - является трехмерной структурой с четырьмя треугольными сторонами. Обратите внимание, что в этом случае имеется уже шесть линий и четыре угла - из этого и состоит пирамида. Видите, как обычный объект может превратится в трехмерный и вместить в себя гораздо больше информации, необходимой, чтобы рассказать историю треугольника или пирамиды.
На протяжении сотен лет художники использовали некоторые визуальные трюки, которые могут сделать плоское 2D-изображение настоящим окном в реальный трехмерный мир. Вы можете увидеть подобный эффект на обычной фотографии, которые вы можете сканировать и просмотреть на мониторе компьютера: объекты на фотографии кажутся меньше, когда они дальше; объекты же, близкие к объективу камеры, находятся в фокусе, значит, соответственно, всё, что за объектами в фокусе - размыто. Цвета, как правило, менее яркие, если объект не так близок. Когда мы говорим о 3D-графике на компьютерах сегодня - мы говорим об изображениях, которые движутся.
Для многих из нас игры на персональном компьютере, мобильном устройстве или вообще продвинутая игровая система - самый яркий пример и распространенный способ, благодаря которому мы можем созерцать трехмерную графику. Все эти игры, крутые фильмы, созданные при помощи компьютера, должны пройти три основных шага по созданию и представлению реалистичных трехмерных сцен:
Какая часть виртуального мира показывается на экране?
В любой момент экран показывает только крошечную часть виртуального трехмерного мира, созданного для компьютерной игры. То, что показывается на экране - определенные комбинации способов, которыми определяется мир, где вы принимаете решение куда пойти и что посмотреть. Независимо от того, куда вы идёте - вперёд или назад, вверх или вниз, влево или вправо - виртуальный трехмерный мир вокруг вас определяет то, что вы видите, находясь на определенной позиции. То, что вы видите, имеет смысл от одной сцены к другой. Если вы смотрите на объект с того же расстояния, вне зависимости от направления, он должен выглядеть высоко. Каждый объект должен выглядеть и двигаться таким образом, чтобы вы верили в то, что он имеет ту же массу, что и реальный объект, что он такой же твёрдый или мягкий, как и реальный объект, и так далее.
Программисты, которые пишут компьютерные игры, прикладывают огромные усилия к разработке виртуальных 3D-миров и делают их так, чтобы вы могли блуждать в них, не сталкиваясь ни с чем, что заставляло бы вас думать «Это не могло произойти в этом мире!». Последней вещью, которую вы хотите видеть - два твёрдых объекта, которые могут пройти прямо друг через друга. Это - резкое напоминание о том, что всё, что вы видите, является притворством. Третий шаг включает в себя ещё как минимум столько же вычислений, сколько и другие два шага и должны происходить так же в реальном времени.
Слева компьютерная графика, справа - актер мокапа
Освещение играет ключевую роль в двух эффектах, которые придают внешний вид, вес и внешнюю прочность объектов: затемнение и тени. Первый эффект, затемнение, представляет собой место, где с одной стороны на объект падает больше света, чем с другой. Затемнение придает объекту множество натурализма. Эта штриховка - то, что делает сгибы в одеяле глубокими и мягкими, а высокие скулы кажутся поразительными. Эти различия в интенсивности света укрепляют общую иллюзию, что у объекта есть глубина, а также высота и ширина. Иллюзия массы происходит от второго эффекта - тени.
Твердые тела отбрасывают тени, когда свет падает на них. Вы можете увидеть это, когда вы наблюдаете тень, которую солнечные часы или дерево бросают на тротуар. Поэтому мы привыкли видеть реальные предметы и людей отбрасывающих тени. В трехмерном изображении тень, опять же, укрепляет иллюзию, создавая эффект присутствия в реальном мире, а не в экране математически произведенных форм.
Перспектива
Перспектива - одно слово, способное значить многое, но фактически описывающее простой эффект, который видели все. Если вы стоите на стороне длинной, прямой дороги и смотрите вдаль, кажется, как будто обе стороны дороги сходятся в одной точке на горизонте. Кроме того, если деревья стоят рядом с дорогой, деревья дальше будут выглядеть меньше, чем деревья близкие к вам. На самом деле будет похоже, что деревья сходятся в определённой точке горизонта, сформированной около дороги, но это не так. Когда все объекты на сцене будут выглядеть в конечном итоге сходящимися в одной точке на расстоянии - это перспектива. Есть множество вариаций этого эффекта, но большинство трехмерной графики использует единую точку зрения, которая только что была описана мною.
Ещё один эффект, который также полагается на обман глаз - сглаживание. Цифровые графические системы очень хорошо подходят для создания четких линий. Но бывает и такое, что оказывают верх диагональные линии (они же довольно часто появляются в реальном мире, и тогда компьютер воспроизводит линии, которые больше напоминают лесенки (я думаю, что вы знаете, что такое лесенка при детальном рассмотрении объекта изображения)). Таким образом, чтобы обмануть свой глаз при виде гладкой кривой или линии, компьютер может добавить определённые оттенки цвета в строки пикселей, окружающих линию. Этим «серым цветом» пикселей компьютер как раз-таки и обманывает ваши глаза, а вы, тем временем, думаете, что зубчатых ступенек больше нет. Этот процесс добавления дополнительных цветных пикселей для обмана глаз называется сглаживанием, и он является одним из методов, которые создаются вручную компьютерной трехмерной графикой. Другой сложной задачей для компьютера является создание трехмерной анимации, пример которой будет представлен вам в следующем разделе.
На фотографии выше представлен обычный офис, для входа в который используется тротуар. В одной из следующих фотографий на тротуар был положен простой однотонный мяч, после чего эту сцену сфотографировали. Третья фотография представляет из себя уже использование компьютерной графической программы, которая и создала на самом деле несуществующий на этой фотографии мяч. Можете ли вы сказать, что есть какие-то существенные различия между двумя этими фотографиями? Думаю, что нет.
Сколько кадров в секунду?
Когда вы идете на шикарный блокбастер в местное кино, последовательность изображений, называемых кадрами работает в количестве 24 кадра в секунду. Так как наша сетчатка сохраняет изображение немного дольше, чем 1/24 секунды, глаза большинства людей будут смешивать кадры в один непрерывный образ движения и действия.
Если вы не понимаете, о чём я только что написал, то посмотрим на это с другой стороны: это означает, что каждый кадр кинофильма - фотография, сделанная на выдержке (экспозиции) 1/24 секунды. Таким образом, если вы посмотрите на один из многочисленных кадров фильма о гонках, вы увидите, что некоторые гоночные автомобили «размываются», потому что они проехали с большой скоростью в то время, пока у камеры открыт затвор. Данная размытость вещей, создающаяся за счёт быстрого движения - то, что мы привыкли видеть, и это часть того, что делает изображение реальным для нас, когда мы смотрим на него на экране.
Однако, цифровые трехмерные изображения - это ведь не фотографии как ни крути, поэтому никакого эффекта размывания не происходит, когда объект перемещается в кадре во время съёмки. Чтобы сделать изображения более реалистичными, размывание должно быть явно добавлено программистами. Некоторые дизайнеры считают, что для «преодоления» этого отсутствия естественного размытия требуется более 30 кадров в секунду, посему и подтолкнули игры выйти на новый уровень - 60 кадров в секунду. Хотя это и позволяет каждому отдельному изображению выглядеть в мельчайших подробностях и отображать движущиеся объекты в меньших приращениях, оно существенно увеличивает количество кадров для данной анимационной последовательности действий. Есть и другие определенные куски изображений, где точный рендеринг на компьютере должен быть принесен в жертву ради реализма. Это относится как к подвижным, так и неподвижным объектам, но это уже совсем другая история.
Компьютерная графика продолжает удивлять весь мир, создавая и генерируя самые разнообразные действительно реалистично движущиеся и недвижущиеся объекты и сцены. С 80 колонок и 25 линий монохромного текста графика значительно продвинулась, и результат очевиден - миллионы людей играют в игры и проводят самые различные симуляции с сегодняшней технологией. Новые 3D-процессоры также дадут о себе знать - благодаря им мы сможем в буквальном смысле исследовать другие миры и испытывать то, чего мы никогда не осмеливались попробовать в реальной жизни. Напоследок вернемся к примеру с мячом: как создавалась эта сцена? Ответ прост: изображение имеет сгенерированный компьютером мяч. Нелегко сказать, который из двух является подлинным, не так ли? Наш мир удивителен и мы должны соответствовать ему. Надеюсь, вам было интересно и вы узнали для себя очередную порцию интересной информации.
Все мы слышали о 3D графике (далее просто 3D, не путать со способом отображения - голограммами, 3D-мониторами и т.п.), многие прекрасно знают, что такое 3D и с чем его едят. Но, все же, есть и те, кто смутно себе представляет, что кроется под этой короткой аббревиатурой. Статья рассчитана на тех, кто не имеет представления о компьютерной графике. Также будет немного экскурса в историю компьютерной графики (в следующих планируемых частях).
Почему именно 3D? Как нетрудно догадаться, речь идет о 3 Dimension, или о трех измерениях. И не обязательно при этом, чтобы и отображение было в 3D. Речь идет о способе построения картинки.
Часть 1. Собственно, моделирование
Традиционно рисуют в 2D (по осям X и Y) - на бумаге, холсте, дереве и т.п. При этом отображают какую-то одну из сторон предмета. Картинка сама по себе плоская. Но если мы хотим получить представление обо всех сторонах предмета, то необходимо нарисовать несколько рисунков. Так поступают в традиционной рисованной анимации. Но, вместе с тем, существует, (кстати, в СССР была довольно хорошо развита) т.н. кукольная анимация. Один раз изготовленную куклу снимают в необходимых позах и ракурсах, получая серию «плоских картинок». 3D (к X и Y добавляется координата глубины Z) визуализация - это те же «куклы», только существующие в цифровом виде. Другими словами, в специальных программах (Blender, 3ds Max, Maya, Cinema 4D и т.п.) создается объемное изображение, например авто.
Преимущество данного метода в том, что в распоряжении, скажем, аниматора есть объемная модель, необходимо лишь поместить ее должным образом в кадр, анимировать (задать траекторию передвижения или рассчитать с помощью симулятора) при необходимости, а уж отображение авто в финальной картинке ложится на специальную программу называемую визуализатором (render). Еще одно преимущество в том, что модель достаточно нарисовать один раз, а потом использовать в других проектах (скопировав), изменять, деформировать и т.п. по своему усмотрению. Для обычного 2D рисунка, в общем случае, такое невозможно. Третье преимущество - можно создавать практически бесконечно детализированные модели, например смоделировать даже винтики на часах и т.п. На общем плане этот винтик может быть и неразличим, но стоит нам приблизить камеру, программа-визуализатор сама рассчитает, что видно в кадре, а что - нет.
Вот, на сегодня пока и все. Комментарии, а особенно вопросы и замечания по существу приветствуются.
P.S. В следующих частях (если Хабрабществу будет интересно) мы более подробно поговорим о трехмерном моделировании для игр, будет затронута визуализация, моделирование динамических сред, таких как вода, разрушение объекта и затронем динамическое взаимодействие между 3D объектами, историю 3D графики.
3D графика – это процесс создания объемной модели при помощи специальных компьютерных программ. Этот вид компьютерной графики вобрал в себя очень много из векторной, а так же и из растровой компьютерной графики. На основе чертежей, рисунков, подробных описаний или любой другой графический или текстовой информации, 3D дизайнер создает объемное изображение.
В специальной программе модель можно посмотреть со всех сторон (сверху, снизу, сбоку), встроить на любую плоскость и в любое окружение. Трёхмерная компьютерная графика, как и векторная, является объектно-ориентированной, что позволяет изменять как все элементы трёхмерной сцены, так и каждый объект в отдельности. Этот вид компьютерной графики обладает большими возможностями для поддержки технического черчения. С помощью графических редакторов трёхмерной компьютерной графики, можно выполнять наглядные изображения деталей и изделий машиностроения, а также выполнять макетирование зданий и архитектурных объектов, изучаемых в соответствующем разделе архитектурно-строительного черчения. Наряду с этим может быть осуществлена графическая поддержка таких разделов начертательной геометрии как, перспектива, аксонометрические и ортогональные проекции, т.к. принципы построения изображений в трёхмерной компьютерной графике частично заимствованы из них.
Трехмерная графика может быть любой сложности. Вы можете создать простую трехмерную модель, с низкой детализацией и упрощенной формы. Или же это может быть более сложная модель, в которой присутствует проработка самых мелких деталей, фактуры, использованы профессиональные приемы (тени, отражения, преломление света и так далее). Конечно, это всерьез влияет на стоимость готовой трехмерной модели, однако позволяет расширить применение трехмерной модели.
3D модели очень популярны в сайтостроительстве. Для создания особенного эффекта некоторые создатели сайтов добавляют в дизайн не просто графические элементы, а трехмерные модели, иногда даже и анимированные. Программы и технологии трехмерного моделирования широко применяются и в производстве, например, в производстве корпусной мебели, и в строительстве, например, для создания фотореалистичного дизайн-проекта будущего помещения. Многие конструкторы уже давно перешли от использования линейки и карандаша к современным трехмерным компьютерным программам. Постепенно новые технологии осваивают и другие компании, прежде всего, производственные и торговые.
Конечно, в основном трехмерные модели используются в демонстрационных целях. Они незаменимы для презентаций, выставок, а также используются в работе с клиентами, когда необходимо наглядно показать, каким будет итоговый результат. Кроме того, методы трехмерного моделирования нужны там, где нужно показать в объеме уже готовые объекты или те объекты, которые существовали когда-то давно. Трехмерное моделирование это не только будущее, но и прошлое и настоящее.
В трехмерную модель очень легко вносить практически любые изменения. Вы можете изменять проект, убирать одни детали и добавлять новые. Ваша фантазия практически ни чем не ограничена, и вы сможете быстро выбрать именно тот вариант, который подойдет вам наилучшим образом.
Однако трехмерное моделирование удобно не только для клиента. Профессиональные программы дают множество преимуществ и изготовителю. Из трехмерной модели легко можно выделить чертеж каких-либо компонентов или конструкции целиком. Несмотря на то, что создание трехмерной модели довольно трудозатратный процесс, работать с ним в дальнейшем гораздо проще и удобнее чем с традиционными чертежами. В результате значительно сокращаются временные затраты на проектирование, снижаются издержки.
Специальные программы дают возможность интеграции с любым другим профессиональным программным обеспечением, например, с приложениями для инженерных расчетов, программами для станков или бухгалтерскими программами. Внедрение подобных решений на производстве дает существенную экономию ресурсов, значительно расширяет возможности предприятия, упрощает работу и повышает ее качество.
Редактор Maya назван в честь санскритского слова, которое означает иллюзия. Maya была разработана Alias Systems. В октябре 2005 года компания Alias влилась в Autodesk. Maya чаще используется для создания анимации и трехмерных эффектов в фильмах.
Этот вид компьютерной графики вобрал в себя очень много из векторной, а также из растровой компьютерной графики. Применяется она при разработке дизайн-проектов интерьера, архитектурных объектов, в рекламе, при создании обучающих компьютерных программ, видео-роликов, наглядных изображений деталей и изделий в машиностроении и др.
Трёхмерная компьютерная графика
позволяет создавать объёмные трёхмерные сцены с моделированием условий освещения и установкой точек зрения.
Для изучения приёмов и средств композиции, таких как передача пространства, среды, светотени, законов линейной, воздушной и цветовой перспективы здесь очевидны преимущества этого вида компьютерной графики над векторной и растровой графикой. В трехмерной графике изображения (или персонажи) моделируются и перемещаются в виртуальном пространстве, в природной среде или в интерьере, а их анимация позволяет увидеть объект с любой точки зрения, переместить в искусственно созданной среде и пространстве, разумеется, при сопровождении специальных эффектов.
Трёхмерная компьютерная графика, как и векторная, является объектно-ориентированной, что позволяет изменять как все элементы трёхмерной сцены, так и каждый объект в отдельности. Этот вид компьютерной графики обладает большими возможностями для поддержки технического черчения. С помощью графических редакторов трёхмерной компьютерной графики, например Autodesk 3D Studio
, можно выполнять наглядные изображения деталей и изделий машиностроения, а также выполнять макетирование зданий и архитектурных объектов, изучаемых в соответствующем разделе архитектурно-строительного черчения. Наряду с этим может быть осуществлена графическая поддержка таких разделов начертательной геометрии, как перспектива, аксонометрические и ортогональные проекции, т.к. принципы построения изображений в трёхмерной компьютерной графике частично заимствованы из них.
Для декоративно-прикладного искусства трёхмерная компьютерная графика предоставляет возможность макетирования будущих изделий с передачей фактуры и текстуры материалов, из которых эти изделия будут выполнены. Возможность увидеть с любых точек зрения макет изделия до его воплощения в материале позволяет внести изменения и исправления в его форму или пропорции, которые могут быть уже невозможны после начала работы (например, ювелирные изделия, декоративное литьё из металла и др.). В том же направлении трёхмерная компьютерная графика может быть использована для поддержки скульптуры, дизайна, художественной графики и др. Объёмная трёхмерная анимация и спецэффекты также создаются средствами трёхмерной графики. Создание учебных роликов для обучающих программ может стать основным применением этих возможностей трёхмерной компьютерной графики.
К средствам работы с трёхмерной графикой,относят такой графический редактор как 3D Studio MAX . Это один из самых известных трёхмерных редакторов, он часто используется при создании фильмов. Разработка программы 3D Studio МАХ была начата в 1993 году. Версия 3D Studio МАХ 1.0 вышла в 1995 году на платформе Windows NT .
Уже тогда некоторые эксперты осторожно высказывали мнение, что МАХ может конкурировать с другими пакетами трехмерной графики. Осенью 2003 года discreet выпускает ЗD MAX 6 . Новые инструменты анимации частиц в связке с модулями позволяют создавать фотореалистичные атмосферные эффекты. Появились встроенная поддержка капельно-сетчатых объектов, полноценная сетевая визуализация, импорт данных из САD -приложений, новые возможности для моделирования. Но кроме 3D Studio MAX есть и другие, не менее популярные программы трёхмерного моделирования, например Maya . Maya - это программа-аналог 3D Studio MAX , но она предназначена, в первую очередь, для анимации и для передачи мимики на лице трёхмерного актёра. Кроме того, в Maya удобнее рисовать. 3D Studio MAX направлен в первую очередь на качественную визуализацию предметов, ещё в нём можно выполнять примитивные чертежи.
Вообще для черчения существуют свои программы трёхмерного моделирования, самые известные из них AutoCAD
, ArhiCAD
. AutoCAD
предназначен, в первую очередь, для машиностроительного черчения, а ArhiCAD
для архитектурного моделирования.
Что же требует трехмерная графика от человека?
Конечно же, умение моделировать различные формы и конструкции при помощи различных программных средств, а также знания ортогонального (прямоугольного) и центрального проецирования. Последняя - называется перспективой . Очень хорошее качество моделирования достигается при помощи тщательного подбора текстур и материалов в сочетании с правильным размещением в сцене источников освещения и камер. Основой для построения любой пространственной формы является плоскость и грань объекта. Плоскость в трехмерной графике задается с помощью трех точек, соединенных отрезками прямых линий.
Именно это условие дает возможность описать с помощью получаемых плоскостей «пространственную сетку»
, которая представляет собой модель объекта. Затем объекту дополнительно присваиваются характеристики поверхности объекта – материал. В свою очередь, материал характеризует качество поверхности, например, полированная, шероховатая, блестящая и др. Описывается и его текстура (камень, ткань, стекло и др.). Задаются и оптические свойства, например, прозрачность, отражение или преломление световых лучей и т.д.
Наряду с этим, трехмерному объекту можно задать условия освещения и выбрать точку обзора (камеру) для получения наиболее интересного наглядного изображения. Постановка, состоящая из трехмерного объекта, условий освещения и выбранной точки зрения, называется «трехмерной сценой»
. А вот для описания трехмерного пространства и объекта, находящегося внутри его, используется хорошо уже знакомый Вам координатный метод.
Существуют различные методы моделирования трехмерных объектов. Например, метод текстового описания модели с помощью специальных языков программирования «Скрипт» .