Инструменты пользователя

Инструменты сайта


q3:создание_собственного_неба_-_скайбокс

Небо

Автор: Spiteful Max

Источник: http://q3mapping.on.ufanet.ru

Тебе понадобилось сделать небо над открытым пространством? Нет ничего проще:

1. Создай браш прямоугольной формы, который бы поместил в себя то открытое пространство, над которым надо сделать небо;
2. Выпотроши данный браш командой «Hollow»;

3. Теперь из пакета текстур «skies» выбери нужную тебе текстуру и натяни на получившиеся браши;
4. Ненужные браши теперь можно удалить, но учти, что если ты удалишь нужный (с точки зрения Радианта) браш, то пути для ботов могут и не прописаться.

Дополнено Max Snake:Не путайте небо(skie) и скайбокс(skybox), небо динамичное и может состоять из одного браша, а скайбокс статичен и состоит из коробки шести брашей, карта находится внутри этой коробки.

Создание скайбокса

Автор: Spiteful Max, дополнил Max Snake

Сегодня мы будем делать что-то вроде неба, только оно не будет двигаться. Если у тебя открыт Радиант, можешь его закрыть, он нам пока не понадобится, а лучше всего запустить какой-нибудь файловый менеджер (Total Commander, например), хотя можно ограничиться и обычным Проводником.

Итак, приступим:

1. В папке «baseq3» создай папку «env»

2. В созданной нами папке создай ещё одну, я, например, создал «morningdew»

3. Теперь помести в неё текстуры с именами:

[skyname]_lf.tga - левая текстура среды
[skyname]_rt.tga - правая текстура среды
[skyname]_ft.tga - передняя текстура среды
[skyname]_bk.tga - фон среды
[skyname]_up.tga - верхняя текстура среды
[skyname]_dn.tga - нижняя текстура среды

где «skyname» название среды;

4. Теперь в папке «textures» твоего «baseq3» создай папку с названием карты, среды - здесь без разницы. И помести в неё текстуру, которая будет отображаться в Радианте

5. Перейди в каталог «scripts» и в нём создай файл «[myskyname].shader», где «myskyname» - это название среды

6. В этот файл введи следующее: (Комментарии лучше не вводить)

//Название твоей текстуры
textures/[mymapname]/[skyname]
{
//это как раз та текстура, которая назначается в радианте
qer_editorimage textures/[mymapname]/[skyname].tga
//ракеты и т.п. пропадают из поля зрения,  попадая в браш с небом, т.е. не взрываются,
//как при попадании в стену 
surfaceparm noimpact
//небо игнорирует общее освещение на карте - чтобы твои источники света не светили на небо
surfaceparm nolightmap
//не оставлять следов от выстрелов
surfaceparm nomarks 
//чтобы текстура неба не освещала сама себя
q3map_backsplash 0 0 
//насколько хорошо текстура излучает свет - тут можно ставить довольно высокие значения
q3map_lightsubdivide 512 
//объясняет игре, что браши с этим шейдером - небо
surfaceparm sky
//яркость свечения неба
q3map_surfacelight 150
//параметры солнца: первые 3 номера - цвет (RGB), четвертая цифра - яркость, 
//пятая - компас (север = 90 degrees, дальше, кажется, против часовой стрелки... 0, -90, 180 ),
//шестая - высота (12 часов дня = 90 градусов, горизонт (закат = 0 градусов, 
//восход = 180 градусов (или наоборот)
q3map_sun 1 1 .98 100 160 60 
//параметры неба - эта строка объясняет игре, что текстуры для отображения скайбокса нужно
//брать из папки /[mymapname]/[skyname] и читатьвсе файлы, начинающиеся на [skyname]*
skyparms env/textures/[mymapname]/[skyname] - -
}

Где [mymapname] - это название той папки, которую ты создал в «textures» и «env», а [skyname] - название твоей среды.

7. Нужно вписать имя материала в список в файле baseq3/scripts/shaderlist.txt

8. Создаем в радианте коробку, покрытую калком (caulk), внутренние стороны которой покрываем текстурой textures/[mymapname]/[skyname]

9. Компилируем и запускаем карту.

Вот что получилось

Создание продвинутого скайбокса

Есть ещё один вариант скайбокса, который, к сожалению, незнаком многим мапперам, но который обладает наибольшими возможностями. В этом варианте вне уровня создается небольшая коробочка, в которой создаются объекты, видимые за пределами уровня, например, горы на горизонте, или высотные здания. Все эти объекты делаются в миниатюре, что позволяет избежать долгой компиляции и, самое главное, не уменьшает быстродействие при значительном улучшении качества окружающей среды.

  • Создаем наш уровень с обычным скайбоксом.
  • Создаем небольшую комнату за пределами уровня, в ней создаем entity _skybox (в контекстном меню после щелчка правой кнопкой)

  • Располагаем ентити примерно в середине этой небольшой комнаты (если есть такая необходимость можно в любом месте). Этот энтити показывает ту точку, откуда будет направлен взгляд игрока на окружение уровня.
  • Относительно этого энтити располагаем другие объекты, которые должны быть в окружении уровня (скалы, высотные здание и тп)
  • компилируем уровень, смотрим результат

Несколько советов:

  1. текстуры на элементах окружения желательно использовать высокодетализированные, с небольшим растяжением по вертикали и горизонтали
  2. можно использовать в окружении любые эффекты, текстуры, туман, воду и прочее
  3. _skybox энтити играет роль начала координат в окружении. Чтобы получить представление о том, как будет выглядеть окружение после компиляции, достаточно совместить его вместе со всем оружением с началом координат (точка «0 0 0») на вашей карте, и увеличить всю коробку в _scale раз

Использование ключа -skyfix

Вы, вероятно, замечали, как убого выглядит скайбокс (skybox) в quake3 - очень четко видны границы его граней. Это происходит из-за ошибки в драйверах от NVIDIA, которые не делали различий между параметрами GL_CLAMP и GL_CLAMP_TO_EDGE (они задают, как фиксируется текстура на грани). Это так называемый баг ”ATI GL_CLAMP behavior”.

Для частичного устранения этой неприятности в q3map2 был введен ключ фазы BSP -skyfix, благодаря которому на скайбоксы стало возможно смотреть без слез. Но, как можно видеть, линии на границах граней все-таки не исчезли.

Точку в этой истории поставили следующие инструменты: dfengine.exe и quake3mme.exe. Эти исполняемые файлы заменяют оригинальный quake3.exe соответственно в моде DeFRaG (опционально) и q3MME (обязательно). И, благодаря модифицированному коду, они эффективно устраняют ATI GL_CLAMP behavior баг, не оставляя от него и следа. Однако, они не могут справиться с теми пунктирными ребрами, оставленными ключем -skyfix.

БагИспользование ключа -skyfixУровень в dfengine.exe

Отсюда следует правило для установки этого ключа:

  • если карта сделана для дефрага, либо вы хотите уведеть свою карту в мувике, -skyfix не нужен;
  • если это карта для других модов, и вам не важно, как она будет выглядеть в муве, то -skyfix нужен.
q3/создание_собственного_неба_-_скайбокс.txt · Последнее изменение: 06.07.2020 03:50 (внешнее изменение)

Инструменты страницы