LoadBSP( file$[,gamma_adjust#][,parent] )

Параметры

file$ - имя файла модели в формате BSP.
gamma_adjust# (не обязательно) - яркость карты света модели BSP . Должна быть в пределах 0-1. По умолчанию 0.
parent (не обязательно) - родительский объект для привязки модели BSP

Описание

Загружает модель в формате BSP и возвращает указатель на нее.

Несколько замечаний об особенностях использования BSP-моделей в Blitz3D:

* Шейдеры не поддерживаются!

* BSP-модели не раскрашиваются, не текстурируются, не затеняются и т.п. средствами Blitz.

* BSP-модели являются обычными объектами. С ними можно использовать стандартные команды масштабирования, вращения, позиционирования и стандартные команды для обработки столкновений.

* BSP-модели не освещаются нормальным рассеяным или направленным светом. Это позволяет Вам освещать другие объекты, не затрагивая модель BSP и не нарушая ее собственного освешения.

* Текстуры для модели BSP должны лежать в той же папке, где и сама модель.

Дополнительный родительский параметр позволяет Вам определять родительский объект для модели так, чтобы, когда родитель будет перемещаться, дочерняя модель будет двигаться вместе с ним. Однако, эта зависимость - односторонняя: применение команд движения к дочернему объекту не будет затрагивать родителя.

Если родительский объект указан, модель появится в координатах 0,0,0 относительно позиции родительского объекта (локальная система координат, привязанная к родительскому объекту).

Смотрите также : BSPAmbientLight, BSPLighting.

Пример

Graphics3D 640,480

campiv = CreatePivot()
cam = CreateCamera(campiv)
CameraRange cam, 0.1,2000

level=LoadBSP( "nyk3dm1\nyk3dm1.bsp",.8 ) ; загружаем карту от quake3
BSPAmbientLight level, 0,255,0 ; рассеянный свет - зеленый
;BSPLighting level, False ; раскомментируйте, чтобы выключить карту освещения

While Not KeyDown(1) ; ESCAPE - выход
RenderWorld:Flip

mys = MouseYSpeed()
If Abs(EntityPitch(cam)+mys) < 75 ; ограничим угол поворота камеры
TurnEntity cam, mys,0,0
EndIf
TurnEntity campiv,0,-MouseXSpeed(),0

If MouseDown(1) Then ; левая кнопка мыши - вперед
TFormVector 0,0,3,cam,campiv
MoveEntity campiv,TFormedX(),TFormedY(),TFormedZ()
EndIf

MoveMouse 320,240 ; курсор мыши - в центр экрана
Wend

End

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в интернете