Giglavy.com / Публикации / Моделирование VRML-сцен в редакторе Internet3D Space Builder 2.1.2

   В статье "Этапы работы в VR-редакторе Internet3D Space Builder 2.1.2" я уже говорил о том, что моделирование - решающий этап в создании трехмерной сцены. Очень важно еще до начала работы хотя бы приблизительно определить, на что будет похож ваш виртуальный "мирок", выбрать стиль. Любитель, в отличие от дилетанта, увлекающегося плохими абстрактными сочетаниями элементарных примитивов, должен ставить перед собой реальные задачи в процессе изучения VR-редактора. "Виртуализация" собственного дачного участка - одна из простых задач подобного рода, не требующая глубоких знаний архитектуры, а вот создание своего виртуального проекта - дело фантазии, обогащенной умением немного моделировать. Богатство воображения, как известно, зависит от разнообразия впечатлений. "Посетив" несколько типовых сцен, созданных художниками фирмы "Параграф", будет легче приступить к воплощению собственного замысла. Рассматриваемый в этой статье пример - один из наиболее элементарных в композиционном плане, рассчитанный на то, чтобы выяснить основные возможности VR-редактора Internet3D Space Builder 2.1.2 на практике.
   Для того, чтобы воплотить в жизнь виртуальный архитектурный проект, знания всевозможных технологических хитростей VR-редактора недостаточно. Нужно иметь общее представление о том, что такое объемно-пространственная композиция. Без этого бессмысленно начинать работу. Наиболее активным взаиморасположением в композиции является врезка одного элемента в другой, наиболее пассивным - примыкание. В процессе редактирования VR-объекта врезка и примыкание компонент осуществляются автоматически (выполняется логическая операция Union - объединение). По характеру стереометрического очертания композиционные элементы делятся на несколько групп. В ISB к первой группе принадлежит форма Cube - четырехугольная призма (наиболее часто используемая в ISB форма), ко второй - различные пирамиды и многоугольные призмы, к третьей - все тела вращения (конусы и сферы). К четвертой группе можно отнести бесчисленное количество сложных стереометрических фигур, имеющих прямолинейные и криволинейные поверхности. Подобные фигуры лучше всего моделировать, пользуясь средствами типа 3D-Studio. На этот случай в ISB есть специальная опция Object/Import (импорт файлов 3D-Studio). Весьма важную роль играет фактура - характер поверхности различного масштаба - от шероховатости до степени расчлененности конкретной поверхности (фасада или внутренней стены). Умело подобранная текстура плоской грани без отверстий может создать иллюзию изящной стены с окнами и дверью. Но бывают случаи, когда приходиться отрисовывать каждую деталь фасада, прибегая к помощи более сложных средств проектирования.
   В VRML-сцене не должно быть замкнутых пространств. Длина и ширина комнаты должны в несколько раз превышать высоту. Едва ли посетителю будет интересен глухой угол маленького помещения с высокими потолками, так как ничего пропорционального окружающим предметам в таком ограниченном месте поставить нельзя и даже искусно подобранная текстура здесь, скорее всего не поможет. Бывают ситуации, когда необходимо расширить какое-нибудь промежуточное подпространство (например, коридор или небольшую прихожую). При этом его никак нельзя увеличить физически благодаря ограниченности окружающих помещений, находящихся, как правило, под одной крышей. В данном случае нужно выбрать подходящий цвет. Сочетая холодные (зеленый - синий - фиолетовый цвета и промежуточные состояния) и теплые (желтый - оранжевый - красный и промежуточные состояния) цвета, можно иллюзорно расширить пространство, создать ощущение простора или, наоборот, как бы приблизить к зрителю объемы, организующие пространство.
   Вообще, в объемно-пространственной композиции существует масса тонкостей, прочитать про которые можно в специальной литературе. Поэтому для начала было бы неплохо чисто на интуитивном уровне чувствовать композиционную и цветовую гармонию тех сочетаний, из которых вы собираетесь компоновать сцену. Главная часть статьи - "Практическое занятие номер один" будет построена по следующей схеме: результат выполнения основного действия (с комментариями) будет изображен на соответствующем рисунке, а специальные замечания и дополнения будут выделены курсивом. Перед тем, как приступать к работе, тщательно изучите уже упомянутую статью "Этапы работы в VR-редакторе Internet3D Space Builder 2.1.2", содержащую массу определений, необходимых для проектирования виртуальной модели.

Практическое занятие номер один

   Включите питание компьютера. После загрузки операционной системы Windows 95 или Windows NT загрузите Internet3D Space Builder 2.1.2 (рис. 1). В Windows NT вероятность возникновения ошибок больше, чем в Windows 95. Режим полноэкранной визуализации сцены (Full Screen) не работает под Windows NT.
 Рис. 1
 Рис. 2
 Рис. 3

 Рис. 5

 Рис. 7
 Рис. 8
 Рис. 9  Рис. 10

 Рис. 11

 Рис. 13 Рис. 15
 Рис. 14
 Рис. 16
 Рис. 17
 Рис. 19
 Рис. 20
 Рис. 21

 Рис. 22

 

   Если в окне визуализации Perspective View нет плоского ландшафта (по умолчанию светло-зеленого цвета), то выберите ландшафт FLAT с помощью команды падающего меню Tools/Options/General (рис. 2). Перезагрузите ISB, после чего в окне визуализации появится долгожданный плоский ландшафт.
   Работа в ISB начинается с определения нескольких параметров различного типа. Установите значения шага и вспомогательной сетки (команда Tools/Options/Plan) соответственно значениям, указанным на рисунке №3. В Right-click-меню задайте наличие воображаемых граней (Guides), определяющих высоту создаваемого примитива. Удерживая левую клавишу мыши, переместите нижнюю грань на отметку 0, а верхнюю на отметку 0.5. Следить за изменением этих значений позволяет строка подсказок (рис. 4), расположенная в нижней части экрана (справа налево указывается сначала координата воображаемой грани, положение которой вы изменяете по оси Z, затем - её удаленность от второй воображаемой грани). При работе с заготовками форм в строке подсказок видно как меняются габариты создаваемого примитива. Итак, высота всех создаваемых примитивов и их положение по оси Z определяется гранями Guides.
 Рис. 4
 Рис. 6
   Наложение текстур будет происходить автоматически в том случае, если включен режим использования текстур (Use Texture) и в категории Textures выделена необходимая текстура. Размер текстуры на полигоне задается командой Tools/Options/Texture Mapper (рис. 5). В процессе работы над моделью фундамента мы будем использовать текстуру Wall_2s (рис. 6) из директории C:\isb2_1\TEXTURES\BRICK (естественно, что путь может быть любым, но при упоминании путей в дальнейшем я буду считать, что корневая директория редактора Internet3D Space Builder c именем ISB2_1 находится на диске С). Установите размеры текстуры на полигоне соответственно значениям, указанным на рисунке №5. На шестом рисунке видно, что по вертикали расположено пять кирпичей. Расстояние между гранями Guides равно 0.5 метра - 50 сантиметров - высота будущего фундамента. Следовательно, высота каждого кирпича - 10 сантиметров, что вполне соответствует его реальным размерам. Такого рода особенности работы с текстурами надо обязательно учитывать, если виртуализуемый вами объект (в нашем случае - двухэтажная усадьба) существует в реальности.

   Наконец, настал тот момент, когда вы переходите к непосредственному моделированию. Не забывайте о том, что создавать трехмерные примитивы можно только в режиме редактирования объектов (Build Mode). Наша усадьба будет представлена в виде иерархии объектов, за состоянием которой позволяет следить окно Scene Tree. Самым главным объектом, командующим всеми остальными, будет фундамент с условным именем Ground_floor. Символ подчеркивания - обязательный, так как пробел не может содержаться в имени объекта (рис. 7). Командой Object/New вы перейдете в режим редактирования объекта с именем Object (это имя нужно будет заменить на Ground_floor). Не пугайтесь того, что ландшафт исчезнет. В режиме редактирования ничего кроме текущего объекта с его возможными потомками вы не увидите до тех пор, пока не вернетесь к работе со всей сценой (команда Object/Back to Scene).
   Установите камеру в левом нижнем углу экрана Plan View. Затем нарисуйте прямоугольник (форма Cube) с размерами 13X8 метров (рис. 8). После того, как вы отпустите правую кнопку мыши, на экране появится серый прямоугольник с двумя центральными осями, которые позволяют изменять ширину и длину еще не зафиксированного примитива, поворачивать его и перемещать по всем трем осям (серый цвет каркаса модели означает, что примитив еще можно редактировать). В окне визуализации вы увидите прозрачный параллелепипед. После нажатия клавиши Enter ребра прямоугольника станут красными, и его локальные оси исчезнут, а окно визуализации украсит целиком кирпичный фундамент. Таким же образом подрисуйте фундамент для веранды (5X3 метра). Для того чтобы не оставалось никаких сомнений относительно того, что это именно фундамент, а не груда кирпичей, на верхнюю грань нужно наложить текстуру пола. В категории Textures выберите текстуру FLRWD020 (рис. 9) из каталога C:\ISB2_1\TEXTURES\FLOOR\FLOORWOOD. Зацепите её и перетащите в окно визуализации на верхние грани фундамента.
   Теперь лестница. Этот замечательный и снизу вверх и сверху вниз элемент жилища будет принадлежать фундаменту. Для этого опять Object/New. Новое имя потомка - Stair, что в переводе с английского значит - лестница. Высота любой ступеньки - приблизительно 10 сантиметров. Измените значение шага, равное 1/4 метра, на 1/10 командой Tools/Options/Plan. Измените текущую высоту, опустив верхнюю воображаемую грань на 2/5 метра. Сделайте текущей текстуру WOOD07 (рис. 10) из каталога C:\ISB2_1\TEXTURES\WOOD. Начинайте рисовать ступеньки, поднимая верхнюю воображаемую грань каждый раз на 10 сантиметров. На рисунке №11 показан результат вашей работы - фундамент с узорчатым полом и деревянная лестница.
 Рис. 12
   Когда вам, наконец, захочется сохраниться, и вы нажмете привычную комбинацию клавиш Ctrl+S, то на экране появится окошко (рис. 12), в котором вы сможете выбрать один из трех вариантов сохранения объекта (Scene - сохранить в сцену, Clipboard - в буфер обмена, Object Gallery - в галерею объектов - в один из подкаталогов директории C:\ISB2_1\OBJECTS). Выбрав первый вариант, из режима редактирования вы вернетесь к сохраненной вами сцене, где под фундаментом будет зеленый ландшафт. Если вы начнете моделировать первый этаж уже известной вам командой Object/New, то ландшафт и фундамент с лестницей пропадут, так как будет вновь включен режим редактирования независимого объекта сцены. Понятно, что при таком раскладе процесс проектирования станет немного сложнее в силу того, что основа всей сцены будет скрыта. Если же вы перейдете к редактированию самого главного объекта Ground_floor (Object/Edit), то все будет намного проще. Непосредственно в этом режиме вы выполняете операцию Object/New и приступаете к созданию нового объекта, являющегося потомком Ground_floor с именем First_floor (первый этаж). Ясно, что ландшафт в любом случае пропадет, но зато и Ground_floor, и Stair скрыты не будут.
   Итак, теперь вы будете строить первый этаж с крыльцом. Включите режим построения полигонов (Polygon Mode). Для того чтобы стены дома были деревянными с более-менее реальным размером бревен, нужно поменять параметры наложения текстуры (используя операцию Tools/Options/Texture Mapper, поменяйте параметры по горизонтали (Horizontal) и по вертикали (Vertical), заменив 0.5 на 1). Выберите текстуру WUDS03 из каталога C:\ISB2_1\TEXTURES\WOOD (рис. 13). Переместите верхнюю воображаемую грань на 2.5 метра вверх, нижнюю - на 0.5 метра. Нарисуйте четырехугольный полигон. Сделайте заготовку комнаты без пола и потолка (пиктограмма Walls). Нажмите Enter. В окне визуализации появится четыре стены (рис. 14). Теперь займемся внутренними стенами, окнами и дверьми. Все окна первого этажа будут с полукруглым верхом, дверь - просто прямоугольная. Здесь вы будете использовать новую возможность ISB - режим Record Shape (запись производимых действий). Для того чтобы вырезать окно, достаточно лишь нарисовать заготовку с заданной толщиной и вместо Enter (преобразование заготовки в примитив) нажать Delete (Edit/Delete). Без использования режима Record Shape вам придется сначала вырезать нижние части окон, а затем - закругленные, что займет время. Не удивляйтесь тому, что я буду вам сейчас рекомендовать. Выберите текстуру WUDS03 из каталога C:\ISB2_1\TEXTURES\WOOD (рис. 15).
Для экономии драгоценного времени включите режим Tools/Record Shape и нарисуйте в стене заготовку параллелепипеда 1X0.25 с высотой 1 метр, заданной Guides. Сотрите заготовку. В стене образуется дыра размером 1X1. Затем поднимите воображаемые грани на 0.5 метра каждую и зафиксируйте заготовку пятидесятишестигранного цилиндра (форма называется Cylinder56) так, чтобы после удаления заготовки получилось круглое отверстие. Сотрите эту заготовку. Выполните команду Tools/Stop Recording. Появится диалоговое окно (рис. 16), в котором вы укажете имя Window пользовательской формы и подкаталог Base директории C:\ISB2_1\SHAPES. В категории Shapes появится новая иконка. Не удивляйтесь тому, что в отличие от других иконок визуализации эта не содержит никакого конкретного трехмерного изображения. Ведь среди действий, которые вы производили в процессе создания этой формы, не было ничего, кроме удаления заготовок. Поэтому для вырезки фигурного окна вам теперь достаточно лишь соответственно рисунку №17 установить положение Guides и вырезать несколько окон, каждый раз нажимая Enter, а не Delete. Те примитивы, которые вы удаляли в процессе работы над пользовательской формой, будут удаляться во время её создания, а во время удаления - они наоборот зафиксируются (притом что те, которые фиксировались при изготовлении пользовательской формы, удалятся). Звучит, конечно, страшно, но после нескольких экспериментов становится понятно, что к чему. Внутренние стены с дверными проемами сделайте как отдельный объект с именем Inner_walls (потомок First_floor) опять же в соответствии с рисунком №17.
   Как ни странно, статья приближается к концу. Осталось крыльцо и второй этаж. Создайте объект Second_floor, являющийся потомком главного объекта. Сделайте текущей текстуру WOOD07 (рис. 10) из каталога C:\ISB2_1\TEXTURES\WOOD. В углу окна Front View есть специальный элемент Plan wheel, позволяющий изменить точку зрения. С его помощью поверните вид на 90 градусов. В окне Front View уже с другим видом нарисуйте полигон (рис. 19). После этого сделайте из него цельную заготовку (пиктограмма Solid). Растяните её по длине в 13 метров. Нажмите Enter. Нарисуйте полигон, подобный предыдущему. Сделайте из него цельную заготовку. Растяните её по длине так, чтобы она была короче предыдущей с каждой стороны на 25 сантиметров (так вы зададите двадцатипятисантиметровую толщину стены). Нажмите Delete. Внутри будет вырезана комната с полом и потолком.

 Рис. 18
   Теперь надо наложить на крышу черепичную текстуру. Выберите текстуру BLA27 (рис. 18) из директории C:\ISB2_1\TEXTURES\BLOCK. Черепица на крыше повторяется гораздо чаще, чем бревна в стене. Поэтому, используя операцию Tools/Options/Texture Mapper, поменяйте параметры текстуры на полигоне по горизонтали (Horizontal) и по вертикали (Vertical), заменив 1 на 0.5. Перетащите текстуру BLA27 на боковую грань крыши. Приглядевшись, вы поймете, что произошло что-то неладное - текстура черепицы повернута неправильно на 90 градусов. Для того чтобы повернуть текстуру на полигоне, вам придется использовать дополнительный модуль ISB - Texture Mapper, переход в который осуществляется с помощью команды View/Texture Mapper. Находясь в этом модуле, двойным щелчком мыши выберите боковую грань крыши. Тем же самым двойным щелчком установите на рабочем поле модуля, где изображена грань с текстурой, вспомогательный инструмент Pin (опорная точка, вокруг которой поворачивается изображение текстуры). Удерживая левую кнопку мыши (без Pin-а текстура будет просто двигаться), поверните изображение на 90 градусов. Для того чтобы избежать такой же комбинации действий при работе с соседней гранью, можно размазать (пиктограмма Spread) повернутую текстуру на соседнюю и на две остальных грани крыши, симметричные повернутой относительно оси Z. Для симметрии на двух остальных гранях надо будет, также как и на первой, повернуть текстуру на 90 градусов. Проделывание отверстий для окон лучше всего осуществить с помощью пользовательской формы window. Винтовую лестницу с именем Stair_to_second (рис. 20), ведущую с первого этажа на второй, надо сделать потомком First_floor. Для неё придется проделать полукруглое отверстие в потолке, принадлежащем объекту Second_floor. Крыльцо (рис. 21) с именем Flight_of_steps должно принадлежать в иерархии главному объекту Ground_floor.
   Вот, собственно, и все. Основная часть вашей первой сцены готова. Остается только выполнить давно скучающую команду Object/Back to Scene, и вы вернетесь на ландшафт (рис. 22). Уберите категории форм (View/Shapes), текстур (View/Textures) и другие, которые теперь заполняют экранное пространство без надобности, распахните как можно больше окно визуализации и наслаждайтесь видами. Для полного счастья не хватает прозрачных окон с фигурными рамами, картинок и анимации на стенах, плывущих облаков на потолке (должен же быть хотя бы один элемент действительно виртуальной реальности), мебели из стандартной библиотеки, люстры на веранде и листьев на земле. Все это - тема "второго практического занятия".

Copyright © 1997—2005 Дмитрий Гиглавый | E-mail: giglavy@rambler.ru