УДК 004.92
Разработка графического редактора для рисования в виртуальном 3D-пространстве
А.А. Кораблев, Е.В. Булатников
Московский государственный университет печати имени Ивана Федорова 127550, Москва, ул. Прянишникова, 2А e-mail: [email protected]
Концепт-арт [англ. concept art] - иск. направление в искусстве, в котором на первый план выдвигается только идея (а не форма или внешние атрибуты).
Словарь иностранных слов. - Комлев Н.Г., 2006.
<...> Как правило создаетсяна начальной стадииразработки проекта и предназначается для использования в фильмах, компьютерных играх, комиксах до создания финальной версии. Также называется «концепт-дизайном». <...> Употребление термина «концепт-арт» зафиксировано еще в 1930-х годах студией Walt Disney Feature Animation.
Википедия
В настоящее время создание качественной 3D модели - это долгий процесс, проходящий несколько стадий, каждая из которых может делаться в разной программе. Одни 3D редакторы более универсальны, другие узкоспециализированы. Поэтому для эффективной работы лучше использовать несколько программ, каждая из которых удобна на своем этапе.
Так, например, автором используется Autodesk 3ds Max [1], как основной и универсальный редактор для моделирования, текстурирования окружения, сборки всей сцены. Zbrush - как более специализированный редактор для моделирования отдельных объектов, детального текстуририрования отдельных частей сцены. Photoshop, Crazybump, Mari - создания текстур с нуля/из фотографии/рисуя по модели, AE -постобработки, а также дополнительные рендеры vray и corona для окончательной визуализации.
87
Но даже при всем разнообразии инструментов компьютерной графики, любая реализация начинается с эскиза, т.е. моделированию предшествует процесс создания концепт-арта. На этом этапе художник делает эскиз (обычно с разных сторон), который будет использоваться в дальнейшем при моделировании (рис. 1).
Выбор ПО на этапе концепт-арта крайне ограничен. В большинстве случаев на практике применяется Adobe Photoshop. Этот редактор не предназначен специально для концепт-арта, процесс мало чем отличается от рисования на бумаге, не помогая художнику в работе. Приходится сталкиваться со многими неудобствами - чтобы рисовать эскиз чего-либо с разных сторон, необходимо представлять весь дизайн в своей голове. Специального редактора для концепт-арта до сих пор нет. Из-за этого часто 2D художники используют 3D редакторы, чтобы создать основу, которую потом обрисовывают.
Обычно для трехмерных эскизов 2D художниками используется программа Zbrush. Особенностью этого 3D редактора является способ создания модели - это имитация процесса лепки (рис. 2). Поэтому подобные программы называют редакторами для трехмерного скуль-птинга.
Последние версии Zbrush позволяют быстро делать основу модели, не думая о строении (топологии) модели (этот инструмент называется dynamesh). После создания такого 3D эскиза, его можно доработать до полноценной модели с правильной топологией. Zbrush удоб-нен при создании персонажей, животных, одежды и других объектов, состоящих из одной цельной модели. Но для окружения и масштабных сцен, состоящих из множества отдельных объектов он очень неудобен. В таких случаях обычно применяется полигональное моделирование -например, 3ds max. Методы полигонального моделирования предназ-
88
Рис. 2. Процесс создания головы в Zbrush, художник Luis Fabregas
начены для точного создания объектов, поэтому слишком медленны для эскизов.
Таким образом, возникает необходимость в существовании графического редактора, который будет позволять быстро создавать трехмерные эскизы (концепт-арт), при этом имея удобные и привычные для 2D художников инструменты. На выходе должны получаться 2D изображения с разных сторон, либо основа 3D модели (для последующей доработки).
На данный момент автором разработан работающий прототип программы [2] (рис. 3). В качестве языка программирования использован C++ [3], для вывода графики - библиотека OpenGL [4]. Для простоты освоения интерфейс программы максимально приближен к 2D редакторам, процесс работы и настройки кистей аналогичны. Главное отличие - рисование происходит в трехмерном пространстве, а не на плоскости.
Мазок кистью - это не изменение цвета пикселей на хосте, а добавление 3D объекта в сцену [5]. Аналогично Photoshop или Painter, мазок состоит из повторяющегося образца. Но таким образцом выступает 3D объект, а не 2D изображение. Этот объект может использоваться как сечение мазка, либо просто дублироваться по траектории мыши (рис. 4).
Курсор мыши или, более привычный 2D художникам, стилус графического планшета задает двухмерные координаты. Поэтому для
89
Рис. 3. Прототип
Рис. 4. Мазок кистью создает 3D объект, в качестве сечения выбран круг
рисования в 3D пространстве эти координаты нужно на что-то проецировать.
2D координаты проецируются на плоскость, которая находится в 3D пространстве. Плоскость можно перемещать, вращать и даже деформировать. После изменения положения плоскости мазки остаются там, где были нарисованы.
В итоге трехмерная сцена из мазков, которые могут группироваться в сцену любой иерархии (рис. 5). Сцену можно рассматривать с разных ракурсов, передвигая камеру.
Модели могут экспортироваться/импортироваться в редактор в формате OBJ (рис. 6). Этот формат поддерживает большинство современных 3D редакторов. Форму (образец) кисти можно изменить внутри программы, либо использовать любой объект из сцены. Таким образом, есть возможность сделать образец кисти, например в 3ds Max, подгрузить его и рисовать.
90
Рис. 5. Слои (панель справа)
Рис. 6. Загруженная модель формата OBJ
В качестве примера, подгрузим простую модель кольца из стороннего редактора (рис. 7).
Рис. 7. Модель для кисти
91
Сделаем из нее кисть и выставим нужные настройки (поворот каждого мазка, зависимость радиуса от скорости курсора). В итоге получим кисть для создания цепей (рис. 8).
Рис. 8. Кисть, использующая подгруженную модель
Аналогично двухмерным кистям в Photoshop, для трехмерных кистей здесь сделаны похожие параметры (радиус, прозрачность, смешивание цветов, и др.) и добавлены нужные только в 3d пространстве - вращение, продавливание плоскости и др. Каждый из параметров может зависеть от какого-либо свойства курсора (скорости, давления, угла наклона, продолжительности мазка и др.) либо быть постоянным (рис. 9).
Рис. 9. Вариант настройки параметров
Так же добавлены инструменты, упрощающие работу с
кистями:
• рисование в режиме симметрии (множество вариантов);
• плавное движение курсора (lazy mouse).
92
Кроме кистей, добавлено еще несколько инструментов для управления/изменения объектов в сцене:
• инструменты выделения, перемещения, вращения, масштабирования;
• кисти для деформации моделей;
• инструменты изменения геометрии модели - отражение, генерация нормалей.
Вывод. Разработанный 3D редактор очень расширяем, новый метод 3D моделирования во многих случаях значительно быстрее применяемых сейчас и может быть использован не только в концепт-арте, иллюстрации, но и при создании готовых 3D моделей.
Библиографический список
1. Келли Л. Мэрдок. 3dsmax 9 Библия пользователя. 2-е изд. -СПб.: питер, 2007. - 1361 с.: ил.
2. Лафоре Р Объектно-ориентированное программирование в C++. 4-е изд. - СПб.: Питер, 2004. - 922 с.: ил.
3. Стивен Прага. Язык программирования C++. 5-е изд. -СПб.: Издательский дом «Вильямс», 2007. - 1171 с.: ил.
4. Ричард С Райт-мл и Бенджамин Липчак. OpenGL Суперкнига. 3-е изд. - СПб.: Издательский дом «Вильямс», 2006. - 1040 с.: ил.
5. Dave Shreiner, Graham Sellers, John Kessenich, and Bill Licea-Kane. The OpenGL Programming Guide. Paperblack, 2009.
93