18.10.2017  04:44  2017  
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню
Категории
Общее по Source [19]
Counter-Strike: Source [1]
Half-Life 2 [35]
Half-Life 2: Deathmatch [0]
Left 4 Dead 1/2 [6]
Portal [0]
Portal 2 [0]
Postal III [0]
Флудилка
Наш опрос
Оценка сайта
Всего ответов: 205
Часики =^_^=
Случайная картинка
Кто тут ?

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Tutorials » Общее по Source

С чем едят Areaportal_ы
С чем едят Areaportal'ы

Содержание
  1. Введение
  2. Часть первая - Исключаем прорисовку карты за закрытой дверью
  3. Часть вторая - Борьба с окнами
  4. Пример карты

Введение


Когда мы закрываем непрозрачную дверь, мы не видим что находится по ту сторону. А движок видит. И мало того, тратит на это свои ресурсы. Убедиться в этом можно набрав в консоли mat_wireframe 1.
Когда мы издалека видим только окно в комнату, движок отрисовывает всю комнату. Кому? Очевидно воронам на проводах.
Конечно это не справедливо. Но у нас есть средство борьбы с несправедливост
ью - ареапорталы.

Включенный ареапортал жестоко отрезает от взора движка (ну и конечно от нашего взора) все что находится по другую его сторону. Для этого он должен перегораживать собой весь проем. И чтобы никаких там func_detail или func_brush. Они не остановят движок. Если в проеме встречаются не только браши, а еще и энтити, то ареапортал надо продлить до настоящих брашей. Проще понять на примере.


Часть первая - Исключаем прорисовку карты за закрытой дверью

Создадим пару небольших комнаток с дверью между ними. Двери даем какое-нибудь имя, оно нам пригодится. Если вы читаете такой муторный тутор, то это вы уже уметь должны. В противном случае бросайте читать :).
Я сразу усложнил себе задачу сделав раму двери func_detail.
За дверью накидаю ящиков чтобы было на что смотреть сквозь двери. Получилось примерно так:




Потом закрываем это добро потолком, компилируем, запускаем, пишем в консоли mat_wireframe 1 и наслаждаемся контурами ящиков сквозь закрытую дверь.



Полное безобразие.
Где же наш спаситель, где рыцарь на белом коне... Ну в смысле по размеру дверного проема создаем новый браш (это удобно делать в виде сверху, предварительно выделив дверь и раму), покрываем его текстурой tools/toolsareaportal
, и тут же конвертим его (Ctrl+T) в func_areaportal.
Заходим в его свойства, и делаем две вещи: Initial state - ставим Closed (чтобы он был включен вместе с закрытой дверью), и указываем в Name of Linked door - нашу дверь. Не зря же мы ей имя дали.
Очень аккуратно помещаем его внутрь созданной ранее двери так, чтобы его не было видно, и так чтобы он прилегал вплотную к стенам. Вот кое-как сделал скрин, надеюсь понятно что я это в упор смотрю сквозь дверь чтобы увидеть наш ареапортал. А вообще его не должно быть видно ни с какой стороны!




Ну вот... А что вот? Компилируем, и наслаждаемся чудом!



Чудо - чудом, но возле дверей бывают окна. И одно паршивое окошечко, сведет на нет все наши труды по оптимизации.


Часть вторая - Борьба с окнами

Сделаем рядом с распрекраснейшей дверью, отвратительное окно.Непременным условием такового, является прозрачность. Примерно так.



Как я и предупреждал, все труды пошли на смарку. Мы опять зазакрытой дверью видим и ящики и стены, причем как бы мы далеко неотошли. Но зато мы знаем что дверь в этом не виновата! А значит беремсяза окно.
Твердой рукой внутри поганого стекла создаем брашпокрытый текстурой ареапортала но конвертим его уже в другую брашевуюэнтитю - func_areaportalwindow. И работать она будет по другому. Наопределенном расстоянии она избавит стекло от прозрачности. Повторяю,ареапортал должен быть совсем внутри, его края не должны не то чтовыступать из стекла, но даже и быть наравне. Как и в случае с дверью.Иначе ждут самые странные глюки.
Рекомендую сделать его самым тоненьким, и в самом центре.
Сделаем еще один браш для наших нужд. Он будет плавно прекрыватьпрозрачность оконного проема в зависимости от приказаfunc_areaportalwindow. Этот браш может быть чем угодно, лишь бы у негобыло имя, и правильная текстура. Для проемов в которые можно пролезтьделают func_illusonary, но у нас окно небьющееся, и поэтому сделаемfunc_brush. Сразу обзовем его понятным именем, и покрасим в текстуру dev/dev_windowportal. В принципе подходят разные текстуры. Но эта какнельзя лучше отражает окружающее пространство.
В свойствах func_areaportalwindow сделаем не много, но со вкусом.
В поле Rendered Window укажем наш свежесозданный браш с хитройтекстурой (для этого ему имя и было дано), Fade start distance я сделал64, Fade end distance -128. Последние два параметра, чтобы далеко от окнане бегать. Комнатка у меня маленькая и ножки устали. Они, как можнодогадаться, отвечают за расстояния начала и конца превращенияпрозрачного стекла в непрозрачное. Можно ввести свои значения, какие вам нужны.

Аккуратно водружаем слоеный пирог в оконный проем:
В самом центре и самый тонкий - func_areaportalwindow, Его окружает собоих сторон func_brush с текстурой
dev/dev_windowportal, и самый большойбраш - это обычный браш с текстурой стекла.
По такой схеме получилось красивей всего.

Как это выглядело в Хаммере:



Но что же нас ждет теперь в игре?
В упор мы видим сквозь стекло ящики, и понятное дело они отрисовываются движком.



Но стоит отойти на указанное в настройках func_areaportalwindowрасстояние, как стекло "тухнет", но и это еще не все, объекты за окном большене отрисовываются движком! Ура, товарищи!



Источник: http://monolife.ucoz.ru/publ/3-1-0-14
Категория: Общее по Source | Добавил: MARK2580 (25.06.2012)
Просмотров: 464 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Video
Поиск
Форма входа
Source SDK [Steam]
Эффект перекатывания

Форум
  • Обзоры аддонов для Garry's Mod! (0)
  • Архив декомпилированных карт (1)
  • Скриншоты с наших карт (20)
  • Half-Life 2 Episode One (15)
  • Half-Life 2 Episode Two (36)
  • Обсуждение Half-Life 2 (29)
  • Ссылочки
  • Planet Phillip

  • GAMEbanana

  • Gamer-Lab.com

  • Half-Life Inside

  • CompSong

  • Anime Art

  • Кореша сайта
    Mapper720.Ru - сайт о маппинге Half-life 2

    Banners


    Copyright HL2-Fun © 2009-2017