Registrierung - oder - Hineingehen
Riot in ProgressRiot in Progress

Мод с атмосферой старых приставочных игр....

26/09/2004
The Unknown MenaceThe Unknown Menace

Устраните потенциальную угрозу для человечества!...

19/01/2004

Метод борьбы с ошибкой утечки пространства на BSP-карте игры


  • Beschreibung
  • Einstellung

Метод борьбы с ошибкой утечки

Метод борьбы с ошибкой утечки пространства на BSP-карте игры


Der Autor der Lektion : ObaGlaza
Der Durchsichten : 1114 ( +4 )
Heruntergeladen : 0
Hochgeladen von : SlaY_61
Erstellt : 10/17/2011 4:31:47 PM
Wertung :
 ( 5 ) 
Aktie :


Es gibt die folgenden Sprachen : | russisch |

Допустим компиляция в hlbsp прошла плохо и вместо BSP generation successful выдала ошибку вроде такой:

Warning: === LEAK in hull 0 ===

Entity light_spot @ (2520,-1533, 13)

Error:

A LEAK is a hole in the map

Проблема в деталях

В движках игр, родственных Quake (в т.ч. Half-Life), предварительно просчитывается невидимая непроходимая и непростреливаемая структура стен, короче говоря — каркас границ столкновений (clip hull). Этих каркасов в Half-Life создаётся по четыре (в Quake по 3) для просчёта

столкновений с точечным объектом нулевой размер "hull 0"
столкновений с игроком в полный рост размер цилиндра 32x32x72 "hull 1"
столкновений с крупным объектом размер цилиндра 64x64x72 "hull 2"
столкновений с игроком на корточках размер цилиндра 32x32x36 "hull 3"

Ошибка "LEAK in hull 0" означает утечку пространства в каркасе границ столкновений для точечных объектов (в игре есть малосущественное исключение: когда задаёшь "размер точки" объекту типа func_pushable, то вместо точечного там обсчитывается минимальный объём 16x16x16). Очевидно, что самым подробным будет каркас для просчёта реакции на точечные объекты, а чем крупнее объект берётся, тем более грубой будет объёмная структура и сильнее будут срезаться некоторые углы, потому что, например, не везде, где пролезет точечный объект, пройдёт и игрок на корточках. Иначе говоря, в место утечки может завалиться точечный объект, а возможно даже более крупный. И тогда при просчёте падения или движения свободного полёта он улетит опасно далеко для работы игрового движка — для того это и отслеживается при компиляции карты.

Способ исправления:

Смотришь на виде сверху — в плоскости осей X0Y — положение обозначенного в ошибке объекта (в нашем примере с x=2520, y=-1533), до которого добежала утечка. Одну половину уровня временно закрываешь огромным брашевым параллелепипедом. И компилируешь только первыми двумя компиляторами hlcsg и hlbsp. Т.к. их работа проходит быстро, то секунд через 5, на крайний случай минуты через полторы уже решаешь по принципу "недолёт-перелёт" что делать дальше: если нет утечки, уменьшаешь параллелепипед, если есть — увеличиваешь. И продолжая так сканировать гранями временного блока, не проходит и пятнадцати минут, как ты уже смотришь на источник заморочек и обрадованно думаешь: "Попался, который скрывался!"

Ещё как вариант можете попробовать программку LeakMarker, которая рисует красный блок в месте утечки. Хотя она тоже не панацея.

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


Die Ähnlichen1. Первая карта - В этом уроке я расскажу как сделать первую карту. Научитесь наносить текстуры, делать небо и т.д.
2. Создание лестниц на карте. - Лесенка это 2 энтити : func_wall и func_ladder...
3. Видео камеры. - наверняка вы сами не раз пользовались камерами, когда играли в Контр-Страйк . Так вот, в этом небольшом уроке я и попытаюсь объяснить как их делать.
4. Создание земли и холмов. - Ну конечно, можно просто сделать гигантский браш и закрасить его текстурой травки и всё. Но....!
5. Строим дерево. - Сегодня мы начнем учиться делать лес по-настоящему.
6. Первые шаги на пути к картостроению - И так, с чего же все обычно начинается? Все начинается с возникновения желания научиться делать карты для любимой игры...
7. Как создать водопад - В этой статье я расскажу вам, как сделать водопад на вашей карте и сделать его как можно реальнее.
8. Оптимизация - сделайте нам быстро! - Любой маппер всегда разрывается между двумя задачами — сделать самый навороченный и одновременно самый шустрый уровень
Ссылки на объект
Полная ссылка на текущем языке :
Короткая ссылка :
Ссылка на превью-картинку :
Ссылка на картинку в полном размере :
Ссылка для вашего форума или сайта
BB код ссылка:
BB код ссылка с картинкой :
BB код картинки :
HTML код ссылка:
HTML код ссылка с картинкой :
HTML код картинки :
Sie können nicht kommentieren, da Sie sind nicht registriert.
    Leon Scott Kennedy in T-shirt (v.2.2) RE4
    Leon Scott Kennedy in T-shirt (v.2.2) RE4
    Juliet Starling Ultimate (Lollipop Chainsaw)
    Resident Evil 6Juliet Starling Ultimate (Lollipop Chainsaw)
    Natalie (Santa Girl)
    Counter-Strike Global OffensiveNatalie (Santa Girl)
    Juliet Starling Pack
    Juliet Starling Pack