100 Ренген  
Пятница, 17.05.2024, 12:25

Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Наш опрос
Играли вы в S.T.A.L.K.E.R.-Clear Sky
Всего ответов: 42

Категории раздела
Мои статьи [36]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Мои статьи

Глобальное озеленение, добавляем траву на уровень

В данном туториале я попытаюсь научить вас работать с детальными объектами. Пока это только трава и листья, но можно добавить мусор, который был в первых билдах, но, конечно, при наличии соответствующих моделей. [править]
Теория

В комплекте пакета SDK идёт уже откомпилированный и настроенный список детальных объектов(Detail List), файл SDK/rawdata/detail_list.dti. Смысл Detail List заключается в привязке детальных объектов к цвету нарисованной особым образом текстуры, которая определяет положение и тип детального объекта на уровне.
Структура текстуры: Цвет - определяет типа объекта в соответствии с Detail List. Альфа канал - определяет плотность объектов.
Не люблю теорию, поэтому переходим к практике, лучше один раз сделать, чем сто раз прочитать :) [править]
Практика

Надеюсь у вас уже есть свой уровень на который вы хотите добавить траву и листья, я возьму свой тестовый уровень.
Level Editor с загруженным уровнем



[править]
Рисуем детальную текстуру

Загрузка списка детальных объектов



Детальная текстура



Первым делом надо нарисовать детальную текстуру для своего уровня, для чего она смотри в разделе "Теория". Перед тем как начать рисовать, узнаем какими же цветами мы можем рисовать, для этого:
1. В Level Editore переключимся на режим редактирования детальных объектов;
2. В группе DO Commands, нажмём Object List. Откроется редактор Detail Objects;
3. Загрузим уже настроенный список деталей(SDK/rawdata/detail_list.dti).
После загрузки списка в правой колонке вы увидите цвета и соответствующие им объекты, можно создавать новые цвета и им присваивать произвольные объекты, это даёт возможность иметь различные объекты в любых сочетаниях. Ну что ж, теперь мы знаем какому цвету что соответствует можем приступить и к рисованию. Запустим Photoshop, создадим новый файл размером 512х512. Вообще размер может быть любым кратным степени двойки, т.е. 128х128, 512х512, 1024х1024 и т.д.
Начинаем рисовать расположение объектов на уровне в соответствии с тем цветом, который назначен в редакторе Detail Objects. Напомню, что альфа канал отвечает за плотность объектов. Мой вариант текстуры можно увидеть справа(рисовал для наглядности).
Сохраняем получившуюся текстуру в папку SDK/import в формате Targa(TGA - 32bit/px, без сжатия). [править]
Применяем детальную текстуру к уровню

Редактор нашёл текстуру




Свойства детальных объектов




Диалог импорта текстур



Переходим к работе с Level Editor-ом. Сначала добавим нашу текстуру в редактор, Images -> Check New Textures. Данная команда заставляет редактор просмотреть папку SDK/Import и добавить новые файлы в Texture List. Не меняя ничего в диалоге импорта текстур нажимаем ОК. Всё теперь наша карта есть в списке текстур редактора. Напоминаю, что редактор должен быть в режиме работы с детальными объектами.
Лезем Tools->Properties, либо просто нажимаем "Enter", если не меняли настройки горячих клавиш. В свойствах детальных объектов нам необходимо выбрать в качестве базовой текстуры нашу, щёлкаем по полю Base Texture. Откроется диалог Select Texture, в котором находим нашу текстуру. Snap List -> Commands -> Make List From Selected



Теперь переключаемся на режим редактировани Object, выбираем объекты, которые хотим покрыть детальными объектами, т.е. в нашем примере, что на данном этапе выберем, то и будет покрыто травой. Переключаемся обратно в режим редактирования Detail Objects, необходимо заполнить Snap List, для этого даём команду Snap List -> Commands -> Make List From Selected.
Список заполнен, проводим первую инициализацию(DO Commands -> First Initialize). В итоге у нас должно получиться что-то типа того, что изображено на левом скриншоте ниже, я специально вставил скрин исходника текстуры для сравнения.
Работа закончена, осталось собрать и откомпилировать уровень.
Вид на наш уровень сверху



Более близкий взгляд



[править]
Компиляция

Компиляция детальных объектов осуществляется компилятором xrDO_light. Т.е. после сборки уровня(Compile -> Build) компилируется уровень(xrLC), а потом просчитывается освещение для детальных объектов(xrDO_light). Таким образом, если пришлось поменять что-то в детальных объектах, нет необходимости заново компилировать уровень, достаточно просчитать освещение детальных объектов и всё, т.е. Compile -> Make Detail + xrDO_light
Вот как это выглядит в игре.
Детальные объекты в игре



Разная плотность детальных объектов



Категория: Мои статьи | Добавил: Ликвидатор (28.01.2010)
Просмотров: 658 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024
    Бесплатный хостинг uCoz