Меню сайта |
|
|
Категории раздела |
|
|
Форма входа |
|
|
Наш сервер CS 1.6 |
|
|
Поиск |
|
|
Наш опрос |
|
|
|
| | |
|
Просто так мапперить под HL2 в хаммере, как это можно было в HL1, у вас не получится. Вообще говоря, у вас есть три пути: - 1. Официальный Source SDK. Содержит весь набор утилит для создания модификаций, однако требует наличия лицензионного Half-Life 2. Скачать его можно с помощью сервиса Steam.
- 2. «Неофициальный» SSDK – REVOLUTiON CSM SourceSDK. Разработчики утверждают, что работает не только на лицензии, но и на «пиратке». Подробности об установке можно прочитать здесь.
- 3. Альтернативные редакторы. Наиболее популярным является Quark (версию 6.4.1 для работы с HL2 вы найдете прямо тут. Редактор не требует Steam, однако довольно сложен в освоении.
|
Как просматривать VTF-файлы?
Программой VTF Explorer (версию 1.1 можно взять отсюда)
можно просматривать картинки и сохранять их в BMP, JPG и TGA форматах.
Доступны для просмотра все кадры анимированной текстуры, промежуточные
уровни пирамидального фильтрования и, для кубических карт, все грани.
Программа интегрируется в проводник Windows и позволяет открывать
vtf-файлы двойным щелчком. Существует еще и плагин для Photoshop. |
Какие команды используются для отладки уровня?
В хл1 существовала базовая команда r_speeds для проверки количества
видимых полигонов. В Source появился совершенно новый набор инструментов
для отладки карт.
Одной из полезных возможностей Source является система помощи по
командам. Для этого укажите help после самой команды. Также, если вам
нужно найти какую-либо команду, вы можете использовать команду find.
Например, если вы напишете find mat, то получите список консольных
команд, содержащих подстроку mat. Вам понадобится доступ к консоли в
игре. Перейдите в меню Options/Keyboard/Advanced... и установите флажок
включения консоли.
sv_cheats 0/1 - Включает режим чит-кодов. В отличие от хл1,
вступает в силу сразу, а не после смены уровня. Многие команды
разработчика приравнены к читам, поэтому вам понадобится эта команда.
+showbudget - Показывает информацию о времени рисования различных
объектов (брашей, энтитей, неба, веревок и т.д.). По ней вы сможете
сделать вывод о том, что именно следует оптимизировать. Удобно забиндить
команду на какую-либо клавишу (или кнопку мыши).
mat_wireframe 0/1/2/3 - Режим рисования в виде каркаса.
Используйте, чтобы увидеть, как движок осуществил разбиение геометрии
уровня, а также просто чтобы увидеть все, что рисуется в данный момент.
Mat_wireframe 2 и 3 ориентированы на текстуры и браши, соответственно.
mat_leafvis 0/1 - Включает и выключает рисование каркаса вокруг текущего лифа. Используется для отладки видимости на уровнях.
mat_bumpmap 0/1- Включает и выключает бамп-маппинг. Вы можете
узнать, насколько этот эффект влияет на производительность вашего уровня
(с помощью +showbudget).
mat_specular 0/1 - Аналогично вышеописанной команде, включает и выключает блеск.
ent_messages_draw 0/1 - Информация о input/output. Информация о
событии рисуется там, где находится объект, а также рисуются линии между
связанными энтитями. Используйте для проверки связи между объектами.
developer 1/2 - Режим отладочных сообщений.
cl_showfps 0/1/2 - Показывает статистику кадров (FPS). (cl_showfps 2 медленее и проще для восприятия)
impulse 81 - Заменяет текущее оружие на шарики (models/shadertest/envballs.mdl) для проверки кубических карт. |
Технология Source
Здесь мы рассмотрим некоторые общие теоретические вопросы по графическим технологиям движка Source.
Альфа-каналы: 1 бит или 8 бит?
Альфа-канал может служить для двух основных целей: задание маски и
частичная, вообще говоря, неравномерная прозрачность текстуры. Маска
определяет, какие фрагменты будут отброшены при наложении текстуры
(альфа-тестирование). В хл1 мы задавали маску для текстур, содержащих
символ {, с помощью последнего цвета в палитре. В хл2 для этого можно
использовать альфа-канал текстуры. Так как значение маски может быть
либо 0 (фрагмент отбросить) или 1 (сохранить), то для канала достаточно
одного бита. В случае задания неравномерной прозрачности (0 – полностью
прозрачно, 255 – полностью непрозрачно, 127 – полупрозрачно), то
потребуется 8 битов на альфа-канал.
Карты высот и карты нормалей
Карта высот – это черно-белая текстура, с помощью которой задается
микрорельеф поверхности. Если мысленно расположить текстуру перед
глазами, то самая светлая точка (белая) будет располагаться ближе всего к
нам, а самая темная (черная) дальше всего. Таким образом мы задаем
неровность поверхности. Однако на деле обычно применяют первую
производную этой текстуры, называемую картой нормалей (т.к. фактически в
текстуре хранится нормаль касательной плоскости). При этом вектора
нормалей нужно «паковать» из диапазона [-1;1] в [0;255], т.к. цветовые
компоненты текстуры, вообще говоря, беззнаковые байты. Карты нормалей
обычно выполнены в характерных розово-голубых тонах, т.к. нормаль на
наблюдателя кодируется цветом (128,128,255). Для построения карты
нормалей из карты высот существуют различные утилиты, в том числе и
плагин для Photoshop.
Кроме того, для более старых видеокарт в HL2 применяются карты искажений
вместо карт нормалей (DUDV maps, или DsDt maps). Программу для их
построения можно найти здесь.
Кубические карты
Каждая кубическая карта (cube map) представляет собой набор из шести
текстур одинакового размера, которые как бы наложены на грани куба.
Ближайшую ассоциацию с кубическими картами вызывает небо в первом
Half-Life. Для доступа к кубической карте координаты текстуры задаются
особым образом: они должны формировать вектор (вообще говоря,
неединичный), выходящий из центра куба. Тогда та точка на одной из
граней куба, которую пересекает луч, и определит цвет фрагмента. Таким
образом, кубическая карта может задавать произвольную функцию от
направления в трехмерном пространстве. В Half-Life 2 кубические карты
используются для моделирования отражений. Если вы поняли все
вышесказанное, то сможете легко догадаться, что для этого нужно:
отраженный вектор в каждой точке поверхности. Он может быть вычислен как
автоматически на основе положения наблюдателя и нормали, так и во
фрагментной программе с учетом карты нормалей.
Parallax Mapping
Это изменение текстурных координат в точке в зависимости от положения
наблюдателя. Для моделирования этого изменения используется карта высот
(описанная выше). Все вычисления (в том числе и сложные, с попиксельным
raytracing) реализуются при помощи вершинных и фрагментных программ,
поэтому требуют наличия современного оборудования. Сама Valve писала,
что эта технология не использована в хл2, однако присутствует в Source
Engine, и авторы модов могут без проблем ее включить.
Что такое HDR
HDR (High Dynamic Range) – технология, зачатки которой мы видели еще в
бете хл2, но полностью продемонстрированная нам в Lost Coast. Суть
технололии – в расширении диапазона цветов. Например, отраженный от стен
свет в сотни раз слабее, чем свет от самой лампочки. Стандартного
32-битного цветового диапазона (по 8 бит на компоненту) не хватит, чтобы
обработать такую разницу и при этом сохранить достаточную точность. В
работе HDR используются 16-битные цветовые компоненты (2 текстуры HILO)
или форматы с плавающей точкой (float buffers, pixel format float),
после чего в обычный 8-битный диапазон монитора можно перевести
какой-либо участок значений высокой точности (tone mapping). То же самое
используется при просчете пост-фильтров – больше не теряется цветовая
информация при применении фильтра. Пример применения HDR – солнечный
эффект: если мы смотрим прямо на солнце, то оно очень яркое, и более
практически ничего мы не видим. Если солнца нет, и средняя освещенность
меньше, то различаются более тонкие оттенки темных объектов. |
| |
| | |
|