2. Геометрия машины
В CarCAD довольно неудобно создавать саму геометрию машины. Поэтому для этого лучше воспользоваться нормальной программой 3D графики. К примеру, 3D Studio Max R3.1 (у меня такой оказался ;-). Конечно, искусство работы с ним – это тема, выходящая далеко за рамки данного руководства...но тем не менее все не так уж и страшно ;-) Достаточно настырный человек освоит основные принципы работы за пару вечеров, на пару с гм...чайником и какой-нибудь многомудрой книжкой типа "3DS для чайников" ;-) Тем более, что нам в нем не фотореалистичные сцены создавать.
Чтобы не заморачиваться, будем считать, что модель машины, которую вы можете загрузить в 3DS MAX, у вас уже есть (продаются диски с коллекциями моделей, из Интернета накачать огромное количество моделек можно хотя бы с http://www.3dcafe.com/, а получить дельные советы по работе с программами – скажем, на http://www.render.ru/) Если же вы хотите создать что-то свое – тоже никаких проблем, берите чертежи и вперед...примерная тактика есть в туториале Atam'а – вручную, по точкам, по граням...по крайней мере, делать это в MAX'е намного удобнее, чем в CarCAD. Кстати, так получится даже лучше ;-)
Но, как я сказал, для начала возьмем уже готовую модель. Я для примера скачал с http://www.3dcafe.com/ вот такую модель "форд-эксплорер".
Теперь нужно подготовить ее к конвертированию. Дело в том, что это модель для профессионального "фотореалистичного" рендеринга, и в ней есть множество лишних для нашей цели деталей. Трудолюбивые дизайнеры вырисовывают все – решетки радиаторов, крышки топливных баков, оплетку руля разноцветными проводами... ;-) Нет, я не говорю, что это плохо, это великолепно, но все-таки... модель может в итоге содержать до нескольких десятков (или сотен) тысяч треугольников. Если попытаться запихнуть такое в игру (и если та не поперхнется таким чудом техники), она будет безбожно тормозить, что нам совершенно не нужно. Поэтому чересчур сложную модель надо упростить.
(Замечание: вполне возможно, существуют другие, более эффективные способы упрощения...тут я лишь рассказал о тех, которые знаю сам. Не стреляйте в пианиста...он играет как умеет ;-)
Еще одно замечание, для параноиков, помешанных на авторских правах: если вас смущает мысль об использовании чужого труда – не используйте его, делайте все сами, никто вас не заставляет. Если вы дизайнер и вам обидно, что вашу модель кто-то будет "упрощать" – какие проблемы, не давайте никому своих моделей, надо будет – найдут в другом месте. И вообще, возражения на этот счет считаю несостоятельными. Хотите объяснить, как ваять модели самим – напишите свое руководство. ;-)
Для начала надо превратить все объекты геометрии в обычные mesh'и (mesh – это объект, заданный непосредственно точками и гранями в пространстве; бывают и другие, скажем, NURBSы – линии и поверхности, заданные математическими зависимостями; или примитивы MAX'а – например, ящик, заданный тремя сторонами; однако мы используем именно mesh'и) Выделив всю машину, щелкаем правой кнопкой на выделении и выберите Collapse selected to mesh.
Затем надо избавиться от групп. (иногда в MAX'е объекты бывают объединены в т.н. группы; они выделяются как один объект, хотя состоят из нескольких) Выделив все, выполняем команду меню Group/Explode.
Теперь надо объединить мелкие детали машины в крупные части. Дело
в том, что любая машина в NFS4 может состоять не более, чем из 28 частей:
Корпус (с высокой, средней, низкой и предельно
низкой детализацией);
Колеса(передние, средние, задние, левые, правые,
высокая и средняя детализация);
Съемная крыша;
Внутренности салона;
Приборная доска;
Водитель без головы;
Голова водителя;
Зеркала (правое, левое);
Тормозные диски (правый, левый);
Съемные фары.
Конечно, никто не заставляет вас делать столько. Обычно делают все только в высокой детализации, без мелочей вроде зеркал и тормозов. Однако каждая деталь должна иметь уникальное название. Вы не можете, скажем, сделать две детали "корпус" – лишние просто не будут показаны. Я в свое время сильно удивлялся, почему из всего корпуса у меня видно только левое крыло ;-)
Итак, каждая такая часть должна быть отдельным mesh'ем. Начнем с
корпуса. Выберем какую-нибудь деталь корпуса и приклеим к ней все остальные.
Для этого перейдем в панель Modify – в списке модификаторов уже стоит
Editable Mesh. (если не стоит, нажмите на Edit Mesh, или, если
такой кнопки там нет, на More и уже там выберите Edit Mesh)
Далее, в свитке Selection надо выбрать режим элементов.
А затем, нажав на Attach, щелкнуть по всем остальным деталям, составляющим данную часть (т.е. корпус). Может возникнуть окошко с предупреждением о конфликте материалов. Отвечать можно как угодно, все равно материалы не понадобятся ;-) Проблема разве что в том, что отмена потом может не сработать...поэтому будьте внимательны, не приклейте что-нибудь лишнее. Впрочем, отклеить это обратно можно с помощью кнопки Detach. ;-)
Мне здесь пришлось склеить все детали, кроме колес ;-) Салон я сделаю потом.
Здесь же можно посмотреть, сколько граней у модели – выбрать режим Faces
и выделить весь корпус. Гм....4.7 тысячи – вообще-то могло быть и больше.
;-)
Замечание: не всегда бывает так, что модель разделена на отдельные mesh'и. Часто попадаются модели 3DS состоящие из одного mesh'а, где ее части представляют из себя "элементы" mesh'a, или же она вообще не разделена на части. Ничего страшного, командой Detach из Edit Mesh вы всегда можете отклеить выделенные элементы (или грани, в зависимости от режима) в отдельный mesh – вам предложат тогда ввести для него имя, или же в отдельный элемент того же mesh'a.
Теперь можно приступать непосредственно к упрощению. Делать это можно двумя способами.
Первый – модификатор Optimize. (если нет в списке – то More.../Optimize)
Степень "оптимизации" можно изменить параметром Face Thresh. Хотя то, как он оптимизирует – это, конечно, на его совести... ;-)
В конце панельки есть информация о том, сколько было полигонов до операции и сколько стало.
Если ваша машина имела большие "плоские" поверхности, разбитые на много треугольников, этот оператор может помочь, но тем не менее...чаще получается довольно кривовато. ;-)
Так как Optimize - модификатор, после того, как вы добьетесь нужных результатов, не забудьте сконвертировать полученное в mesh. (правой кнопкой на модели/Collapse selected to mesh)
Иногда (если вы загрузили не сцену *.max а импортировали модель *.3ds), может получиться так, что Optimize не будет работать. Проблема тут в следующем – из-за странного текстурирования в модели каждая ее грань считается стоящей отдельно от других. Смотрите:
Здесь поверхность из двух граней
|
а здесь ДВЕ поверхности из двух граней(сдвинуто для наглядности,
но на самом деле они совпадают и этого не заметно)
|
Естественно, что, скажем, сглаживаться такая поверхность из двух отдельных граней не будет. Оптимизироваться тоже.
Чтобы исправить это, можно использовать команду Weld. В Edit Mesh включаем режим точек , выделяем все точки объекта и выполняем команду Weld selected. Эта команда склеивает вместе все выделенные точки, находящиеся на расстоянии Weld threshold (задается рядом) друг от друга. Таким образом, при малом threshold совпадающие, но разделенные точки склеятся вместе и проблема решена. |
|
Тут мы плавно подходим к другому способу упрощения – с помощью того же Weld.
Понемногу(ключевое слово!) увеличивая threshold, повторяем команду,
пока не добьемся приемлемого результата. Необходимо помнить, что Weld
– штука бездумная ;-), и может сработать так, что страшно будет смотреть. Также
пользуйтесь тем, что команда действует только на выделенные точки.
Капот до операции и после.
Чтобы пользоваться этим способом, требуется уже гораздо больше внимания
и ручной работы ;-) Практически, если задаться целью получить хороший результат,
он превращается в банальную ручную правку mesh'a, по точкам и граням. Выделяем
две или больше точки, к-рые надо соединить, склеиваем их weld'ом с большим
threshold.... сдвигаем на место съехавшие точки...смотрим в перспективе...чертыхаемся,
жмем Undo и переделываем... ;-)
Задача – получить модель с невысоким числом граней, скажем, в районе
1000 +/- 500 (маньяки, конечно, делают и меньше, но какого черта...пусть ваш
Voodoo5 отрабатывает вложенные в него средства ;-) Желательно, конечно, чтобы
она при этом не слишком сильно отличалась от оригинала и не была кривобокой(так
получается, если действовать тем же weld'ом, не подумав...обычно
страдают решетки радиаторов и им подобные мелкие, но многочисленные детали.
Вообще-то, чем больше времени потратите и чем внимательнее будете при создании
машины, тем лучше будет результат.)
Убирайте точки из больших плоскостей, но оставляйте достаточно в
районе скруглений, иначе машина получится коробкообразной. Убирайте все мелкие
детали, которые можно сделать текстурой – крышки баков, окантовки, ручки дверей,
стеклоочистители, решетки радиаторов(в последнем случае всю решетку надо будет
заменить на плоскость – не допускайте "дырок" в поверхности)
| => | |
| |
Ну вот, корпус более-менее упрощен (909 граней, и это не предел...лень было
дальше возиться ;-)
Колеса можно оптимизировать эти, а можно сделать новые средствами MAX...лучше
сделать новые – намного меньше геморроя. Можно взять просто цилиндры из Create/Standard
Primitives/Cylinder.j
Или сделать более сложное колесо – сначала рисуется профиль из
обычной линии (сплайна) Create/Splines/Line, а затем модификатором Lathe
этот профиль вращается вокруг оси Z.
Ну а я сделаю обычные цилиндры, разве
что сделаю три сегмента по длине, слегка уменьшу торцы и сдвину средние точки
ближе к торцам, чтобы создать впечатление "скругленного" колеса.
Теперь
осталось сделать салон и водителя...в принципе, это можно вытащить из другой
машины для NFS, но какая разница... Одна плоскость, три ChamferBox –
сидения, и вручную делается водитель с рулем...все это беспощадно Optimize-ится...
После 10 минут забав с Edit Mesh, Optimize и MeshSmooth
из четырех кубиков и тора получился вот такой инопланетянин ;-)
Теперь надо снова склеить крупные части салона в соответствии с
вышеприведенным списком... голова отдельно, тело отдельно, оставшийся салон
отдельно.
Ну вот практически и все. Самая ответственная часть - геометрия
машины готова. (это, конечно, относительно; повторяю, чем больше времени вы
потратите на "доводку" и "вылизывание" каждой линии машины, тем лучше будет
результат. А лучше всего получится, если вы будете всю геометрию делать сами,
от начала до конца...но это будет уже когда вы немного наберетесь опыта ;-)
Я надеюсь,
вы не разворачивали саму машину относительно осей координат? Если это так –
сейчас разверните ее параллельно-перпендикулярно осям, т.к. повернуть ее на
произвольный угол впоследствии не получится. И наконец, экспортируйте машину
в формат 3ds и снимите галочку preserve texture coordinates, иначе в
получившемся файле все грани у вас будут разделены.
Получившийся файлик будет размером 50-70
кб – даже приятно посмотреть. ;-)
Руководство по CarCAD © Baco, 2001.