Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
[Small_Link]
(Junior Member)

Зарегистрирован: Aug 2005
Проживает: Россия/Новосибирск
Написал: 21 сообщений

Оценка: 6 Votes 6 чел.

Создание скайбоксов и установка их на карту [туториал]
Сообщение #228574
Оригинал туториала + превьюшки скайбоксов хл2, ксс, хл2 бета, квейк2 здесь:
http://xash.ru/q2_skybox.rar
Список остальных файлов:
http://xash.ru/link/


1. Intro.
В этом туториале я постараюсь объяснить как устроено небо в играх на движке Source и как использовать его на своих картах.
Небо - так называемый скайбокс (от англ. 'skybox'- небесная коробка) состоит из шести изображений. Пол, потолок и четыре стены - всё вместе это образует своеобразную коробку, которая окружает уровень и придаёт ему большую реалистичность. Этот метод построения небес на картах широко использовался в большинстве известных игр, таких как Quake 2, Half-life 1-2 и т.д. и продолжает использоваться до сих пор.

Создание неба для движка Source, пламенного сердца Half-life 2, практически не отличается от аналогичной операции в отношении Half-life. Различие составляет лишь то, что сейчас текстуры требуют упаковки в формат .vtf и создания индивидуально для каждой файла .vmt, содержащего в своём теле описание некоторых свойств текстуры.

2. Создание и компиляция текстур.

Сейчас мы на примере рассмотрим создание скайбокса и установку его на вашу карту в Half-life 2.
Для начала нам нужны шесть изображений неба.
Нарисовать их можно и самому в Photoshop, главное чтобы четыре боковых изображения могли быть соединены в одно непрерывное изображение (xxxlt, xxxft, xxxrt, xxxbk), а две оставшиеся представляли собой верх и низ скайбокса (xxxup, xxxdn) и могли состыковываться с любой боковой текстурой.
Текстуры должны быть представлены в формате .tga (targa), глубиной цвета 16, 24 или 32 бита.
Размеры должны быть эквивалентны числу 2: 512х512 пикселей - оптимальное разрешение.

Идём дальше. Конвертируйте текстуры в .tga, придайте им разрешение 512x512 и положите в папку materialsrc вашего мода.
Теперь придайте текстурам имена, подходящие для компиляции скайбокса:
К примеру ваш скайбокс будет называться nebo. Тогда текстура, на которой изображён низ скайбокса получает имя 'nebodn.tga'. 'dn' - означает 'down', что в переводе с английского - 'низ'. По аналогии, верх скайбокса 'neboup.tga' (up - верх), а боковые стороны 'nebolf.tga','nebort.tga','neboft.tga' и 'nebobk.tga'. Left, right, front и back соответственно.


Каждая текстура при компиляции использует текстовый документ, имеющий имя текстуры и содержащий команды для компилятора. В принципе, если его нет, компилятор создаст пустой файл, но нам необходимо указать в нём параметр $skybox, тогда при игре на небе не будет 'швов'
Создайте шесть текстовых документов и назовите их также как и текстуры, но расширение оставьте .txt. В каждом из них поместите вышеуказанный параметр $skybox. Всё готово для компиляции.

Запустите Steam и откройте новое окно, в котором прописан путь до папки bin, вашего SDK.
C:\Program Files\Valve\Steam\SteamApps\ваш_аккаунт\sourcesdk\bin
Теперь лёгким движением руки перетаскивайте по очереди каждую текстуру на значок vtex.exe, лежащий в папке bin.
В принципе с тем же успехом вы можете создать ярлык для этой проги и перенести его в папку materialsrc, а затем таскать текстуры на него.

Заходите в папку material, вашего мода и смотрите, появились ли там шесть файлов с расширением .vtf. Создайте там же папку skybox и скиньте файлы в неё.


Теперь осталось для каждого файла создать одноимённый .vmt со следующим содержанием:
code:
"UnlitGeneric"
{
"$basetexture" "skybox/имя_текстуры_без_расширения" "$nofog" 1
$ignorez 1
}

Получаем: 'nebolf.vmt','nebort.vmt','nebobk.vmt','neboft.vmt','neboup.vmt' и 'nebodn.vmt'

3. Установка скайбокса на карте и компиляция.

Запустите Хаммер, настроенный для работы с вашим модом. Создайте новую карту и в ней большую коробку. Нажмите на полученный куб правой кнопкой мыши, выберите пункт 'hollow' и нажмите enter. Внутри куба, который теперь стал пустотелым, создайте площадку, киньте на неё info_player_start, light_environment и наконец покрасьте куб в текстуру скайбокса.
Для этого откройте браузер текстур и наберите в строке поиска tools/. Видите голубую текстуру с именем tools/toolsskybox? Выбирайте её, смело щёлкая по изображению левой кнопкой мыши. Закройте панель текстур. Теперь выделите куб, которому предназначено быть скайбоксом и нажмите на значок apply current texture, чтобы куб окрасился в выбранную текстуру.
Последний штрих: в свойствах карты надо указать используемый скайбокс, по умолчанию стоит sky_wasteland02. Для этого заходим в меню map -> map properties..., выбираем строку SkyBox Texture Name и вписываем туда своё небо. Точнее то самое ключевое слово, которое присутствует в именах всех шести текстур - nebo...
Ес-сно без расширения.

Вроде ничего не забыл. Ладно, жмите уже F9 и компилируйте карту. Если вместо неба увидите чёрно-фиолетовую текстуру, раскраски а-ля 'шахматная доска для эпилептиков' - то это означает что вы его неправильно скомпилировали.

© Small Link. 2005
Old Post 17-08-2005 09:10
[Small_Link] отсутствует Посмотреть данные '[Small_Link]' Отправить Приватное Сообщение для '[Small_Link]' Посетить домашнюю страничку [Small_Link] Найти другие сообщения '[Small_Link]' Добавить [Small_Link] в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
orcan
()

Зарегистрирован: Mar 2005
Проживает: Russian Federation/АЗОВ
Написал: 603 сообщений

Оценка: 23 Votes 23 чел.

Сообщение #228600
мурр.....ну что сказать...РЕСПЕКТ! сейчас votes прибавиться....
Хочу разместить баннер на странице about :blank, сколько это будет стоить и к кому обращаться ?
делаю квадратные модели,быстро и дёшево
Old Post 17-08-2005 09:32
orcan отсутствует Посмотреть данные 'orcan' Отправить Приватное Сообщение для 'orcan' Найти другие сообщения 'orcan' Добавить orcan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Lex4art
(CG-бомж)

Зарегистрирован: Mar 2005
Проживает: /
Написал: 5363 сообщений

Оценка: 114 Votes 114 чел.

Большой респект! 
Thumbs up 
Сообщение #248735
Дополнительная информация и комментарии по статье (за статью спасибо ):
Официальный тутор по созданию скайбокса + скрипт для программы terragen: http://developer.valvesoftware.com/...x_with_Terragen

Описание команд и форматов VMT-файлов. http://developer.valvesoftware.com/wiki/VTF - одним из описанных форматов мы и воспользуемся.

При конвертировании tga в vmt рекомендую в одноименных текстовых файлах вписать (в каждом файле) помимо $skybox еще кучу вещей:

"nomip" "" - не делать mip-изображения для этой текстуры
"nocompress" "1" - не сжимать картинку (об этом ниже)
"BGR888" "" - формат картинки(можете вписать любой из описанных в вышепреведенном линке - для эксперимента). 24bit на цвет, нет альфаканала (в отличие от DXT5), поддерживает no compres - то что нужно для качественных картинок с градиентами и без альфаканалов. Размер одного и того же файла(и качества) в dxt5 и в bgr888 различаеться в пользу последнего - на четверть или треть меньше.

Итак, с параметром "nocompress" "1" ваш скайбокс будет не отличим по качеству от оригинальной картинки - http://ProjectD2.com/2006/no_compress_1.jpg

А вот если этот параметр пропустить, получим вот такой скайбокс (вне зависимости от выбранного формата изображения - хоть rgb161616 хоть dxt5 хоть bgr888) - http://ProjectD2.com/2006/compressed.jpg - желательно смотреть на черном фоне, иначе градиенты плохо видно (в игре то их видно прекрасно, т.к. скайбокс растягиваетсья раза в два и все это лезет некрасиво).

Сохраните эти файлы на диск и посмотрите на них внимательно - казалосьбы отличаються, но терпимо - но в реале скайбокс с compressed.jpg будет выглядеть вот так:
http://ProjectD2.com/2006/de_nature.jpg[/url] - даже при увеличении размера картинок
скайбокса до 2048х2048 точек на каждую сторону от этих градиентов на синем не удавалось избавиться. А вот с параметром no compress 1 все выглядело отлично даже при размере 512х512 (и даже 256х256 было лучше, чем с compressed текстурой).
Далее - в начале я упомянул программу terragen. С её помощью (освоил азы за день) я сделал себе не плохой скайбокс - http://ProjectD2.com/2006/de_nature001.jpg - т.е. чистое безоблачное небо, высоко стоящее солнце (68 град), тропическое море .
Кому надо - можете его скачать (уже в формате vtf в размере 512х512 каждая) - http://ProjectD2.com/2006/skybox.rar - 500 кил, после распаковки - 6 с хвостом метров. Поместите папку skybox в каталог materials вашего мода и небо добавиться в списке текстур хаммера. Название неба - "clearsky01" .

Вернемся к terragen - https://bbs.nashalife.ru/showthread...;threadid=19535 - там среди спискапрог будет и сам терраген, и туториал на русском к нему и примеры(обалдненные к стати!) и лекарство от головной боли. В первом линке (см. самый верх этого поста) можно скачать скрипт для terragen-a - при его запуске он делает 6 картинок всех сторон пейзажа с идеально сочитающимися краями. Пейзаж ессно надо делать руками до запуска скрипта.

ЗЫ большое спасибо Fishman-y за консультацию по качеству картинки .

ЗЫЫ Фиш, помнишь я там пробовал сэкономить на нижней картинки скайбокса (её одну я в VMT загонял в сжатом виде) - при попытке выполнить команду buildcubemaps вылетела ошибка что де все текстуры скайбокса должны быть одинакового формата и с одними и теми же ключами упакованы. Халява не прокатила
H++ ["Neon" challenge] *
Derpville * Real Materials * Random stuff
Если я не ошибаюсь - значит я ничего не делаю.

Поправил Lex4art 24-10-2006 в 14:48

Old Post 19-09-2005 10:34
Lex4art отсутствует Посмотреть данные 'Lex4art' Отправить Приватное Сообщение для 'Lex4art' Посетить домашнюю страничку Lex4art Найти другие сообщения 'Lex4art' Добавить Lex4art в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
FishMan
(Real Project Leader)

Зарегистрирован: Jul 2003
Проживает: /
Написал: 9467 сообщений

Оценка: 143 Votes 143 чел.

Старожил Developer 
Сообщение #250267
Цитата:
ЗЫЫ Фиш, помнишь я там пробовал сэкономить на нижней картинки скайбокса (её одну я в VMT загонял в сжатом виде) - при попытке выполнить команду buildcubemaps вылетела ошибка что де все текстуры скайбокса должны быть одинакового формата и с одними и теми же ключами упакованы. Халява не прокатила


Мы с тобой это уже обсудили по аське - сорри тему поздно заметил, так ещё бы на форуме ответил.

2 Олл

Короче ребята - чтобы сэкономить на нижней текстуре (в случае если её не будет видно в игре) сделайте следующим образом:

Создайте файл *SomeSkyName*dn.vmt
И сделайте его такого содержания:

"UnlitGeneric"
{
"$basetexture" "skybox/*SomeSkyName*up"
"$nofog" 1 //-при необходимости
"$ignorez" 1
}

Вместо *SomeSkyName* напишите имя своей скай-текстуры. Принцып прост - просто используем вместо нижней текстуру верхнюю, тем самым экономим место.
За качественный результат не отвечаю, кубмапы могут выглядеть коряво(т.е. вместо низа и верха на них будут 2 верха, возможно это будет заметно).
Если вы хотите сэкономить - это неплохой способ. Потому что текстуры без компрессии весят раза в 4 больше чем с компрессией.
──╔═══╗| Displacement Sculpting
╔╗║╔══╝| --------------
╚╝║╚═╗─| Владимир Чернышёв (OBA Main Character) by Flagg
╔╗║╔═╝─| --------------
╚╝║╚══╗| Operation Broken Arrow: Seven Hour War
──╚═══╝| --------------


The "Earth" without "art" is just "eh"
Old Post 22-09-2005 03:37
FishMan отсутствует Посмотреть данные 'FishMan' Отправить Приватное Сообщение для 'FishMan' Найти другие сообщения 'FishMan' Добавить FishMan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Lex4art
(CG-бомж)

Зарегистрирован: Mar 2005
Проживает: /
Написал: 5363 сообщений

Оценка: 114 Votes 114 чел.

Большой респект! 
Сообщение #259375
Пришлось таки делать текстуру низа в виде файла - иначе при старте карты не происходит автокомпила скайбокса (хотя команда buildcubemaps в игре работает). Т.е. при компиле карты Хаммер проверяет все шесть файлов текстур скайбокса(не материалов!) - и если одного из них не хватает, он ругаеться что не могет сделать дефолтные куб-мапы.
H++ ["Neon" challenge] *
Derpville * Real Materials * Random stuff
Если я не ошибаюсь - значит я ничего не делаю.
Old Post 07-10-2005 22:19
Lex4art отсутствует Посмотреть данные 'Lex4art' Отправить Приватное Сообщение для 'Lex4art' Посетить домашнюю страничку Lex4art Найти другие сообщения 'Lex4art' Добавить Lex4art в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Freeman43
(Модератор)

Зарегистрирован: Aug 2004
Проживает: /
Написал: 9263 сообщений

Оценка: 218 Votes 218 чел.

Почетный Писака Большой респект! Команда NashaLife 
Сообщение #259425
Уф...Теперь надо что бы кто-то всё это скомпоновал в 1 тутор)))
Например автор.
Old Post 08-10-2005 04:28
Freeman43 отсутствует Посмотреть данные 'Freeman43' Отправить Приватное Сообщение для 'Freeman43' Найти другие сообщения 'Freeman43' Добавить Freeman43 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
MonoLife
(---)

Зарегистрирован: Jan 2005
Проживает: Russian Federation/Siberia
Написал: 2308 сообщений

Оценка: 60 Votes 60 чел.

Developer Старожил Большой респект! 
Сообщение #452072
как всегда, Респектище! Хорошо, что эта тема не загнулась
Old Post 04-10-2006 00:28
MonoLife отсутствует Посмотреть данные 'MonoLife' Отправить Приватное Сообщение для 'MonoLife' Посетить домашнюю страничку MonoLife Найти другие сообщения 'MonoLife' Добавить MonoLife в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 07:03.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены