Вообщем я не могу понять одну принципиальную вещь. Какой тип BSP юзается в HL? Есть Node BSP, а есть Leaf BSP. В принципе должно быть Leaf (т.к. именно этот тип юзается первоквакой и всеми остальными). Но тогда непонятно, нафига в Node присутствуют фейсы?
Также неясно, что такое marksurface в leaf.
Ещё вопрос: что такое side в фейсе и что такое float dist; в Plane?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
BSP - Binary Spacing Partition Tree - он ровно один во всех трех кваках.
Ноды - невидимые части дерева, листья - видимые.
Цитата:
Есть Node BSP, а есть Leaf BSP
Откуда сей перл взялся мне неведомо.
side в face ниоткуда взяться не может. Если же вы имеете в виду
short side; то это индикатор обратного или прямого фейса.
Компилятор использует информацию при рассчете лайтмап, дле рендера
это значение всегда воспринимается как булево - если равно еденичке,
то фейс обратный, если нулю, то прямой.
Если рисовать мир не учитывая эту переменную то нарисуется ровно половина мира (карты).
dist это дистанция.
нафига в Node присутствуют фейсы?
Также неясно, что такое marksurface в leaf.
Один фейс может входить в несколько leaf'ов, поэтому каждый leaf содержит не фейсы, а массив указателей на фейсы (это и есть marksufraces). А фейсы, соответственно, хранятся в нодах.
Цитата:
что такое float dist; в Plane?
Стандартное уравнение плоскости:
Ax + By + Cz + D = 0
Если а A B C подставить нормаль, а в D положить -dist, то получится уравнение плоскости этой поверхности.
Иными словами, если плоскость, имея некую нормаль, "изначально" проходит через точку {0, 0, 0}, то dist - это насколько надо её "сместить" по направлению нормали, чтобы она встала в свою реальную позицию.