×
Меню
Индекс

NiBSPNode примечания

 
Примечание.
По видимости, область применения весьма ограничена.
Т.к. требует особых, настроек альфы во вложенных шейпах.
Оба объекта должны иметь альфа свойства со флагом NoSorter (что приводит, в т.ч. к возникновению "дыр в ландшафте").
И подобрать подходящую ситуацию, где целесообразно использовать такой объект, может оказаться сложнее, чем создавать оный в ниф файле.
 
Примечание.
Не может работать в одном файле вместе с NiSortAdjustNode.
Т.к. оба объекта используются для сортировки объектов с альфой. Вылет игры и редактора, либо плоскость отсечения не срабатывает.
Размер плоскости влияет на угол при котором объект будет исключен из рендеринга.
Т.е. чем больше размер плоскости, тем при меньшем угле к оной объект будет отсечен.
Меньший размер - отсекает объект при несколько большем угле наклона (камеры к объекту).
 
Примечание.
                           
СкенеВиювер и ТесКс.
Вторая строка, определяется положением объекта в мире. Т.е. создается автоматически и меняется в зависимости от смены поворота объекта к камере, а равно его положения в сцене.
 
Поворот по YXZ + положение плоскости по Z.
 
Если значения первой и второй строк равны, значит объект находится в нулевых координатах сцены.
Скорее всего в интерьере, либо, был открыт в СкенеВиювере.
В экстерьерах ТЕС КСа, вторая строка получает огромные значения.
 
В ниф файле имеется только один параметр и ничего больше.
Т.е. только один niPlane.
 
Второй параметр, который видно по SSG, создается движком.
 
Примечание.
NiPlane2  - здесь назван лишь для удобства работы в ниф файле.
Т.к. niPlane параметр есть в планаром коллайдере.
 
Вложенный объект отображается.
При небольшом повороте камеры (или объекта) срабатывает отсечение.
 
Примечание.
Входит в состав Scene Graph Organization Classes в подуровне обычной ноды:
 NiNode:
- NiBillboardNode
- NiBSPNode
- NiSortAdjustNode
- NiSwitchNode
- NiLODNode
 

Примечание.
Greatness7 писал.
it describes a plane with a normal
the normal tells which direction it is facing
and object in front of the plane renders ontop
and behind the plane renders in back
like this
so it lets you control which to render infront and which in back, based on the plane
this might be more useful than rendering based on depth (the default behavior) or based on the order in children list (the behavior when using NoSort)
but it is hard to think of a good showcase :smile:
 
Hrnchamd писал.05.03.2017
NiBSPNode is a sorting node to make objects draw in order.
It has a left branch and right branch, the engine makes sure the more distant branch is drawn first.
The BSP is like BSPs in Doom, Quake, etc.
 
mr 007
NiBSPNode and it's only at Engine side using?
 
Hrnchamd
No, it's mostly useless for a dynamic world.
 
Greatness7
the comment in there for NiBSPNode :D
    // X = (1/s)*R^t*(Y-T) and
    //     C0 = Dot(N0,X) = Dot(N0,(1/s)*R^t*(Y-T)) = (1/s)*Dot(R*N0,Y-T)

Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
 
NiBSPNode objects represent gross-scale binary separating planes. They are designed to separate objects for sorted drawing. NiBSPNodes are not designed to separate objects at the per-polygon level. The left child of an NiBSPNode should lie entirely to the negative side of the plane, while the right child should lie entirely to the positive side of the plane.
 
NiBSPNodes function under sorting in the same way as do NiNodes, but the two children are drawn in back-to-front BSP order. With some sorters, this order will have no effect; while with others that pass some objects through directly without sorting them (e.g. NiAlphaAccumulators) the ordering may be useful.