|
grid_size - размер сетки ландшафта, должен выражаться степенью числа 2, т.е. 32, 64, 128, 256, 512, 1024.
parent (не обязательно) - родительский объект, к которому будет привязан ландшафт |
|
Создает объект ландшафта и возвращает указатель на него. Ландшафт простирается от 0,0,0 до grid_size, 1, grid_size. Ландшафт - специальный тип полигонального объекта, который использует уровень детализации в реальном времени (level of detail - LOD), чтобы отобразить пейзажи, которые должны теоретически состоять из более чем миллиона полигонов (многоугольников), с использованием всего нескольких тысяч. Это достигается путем постоянного перестраивания определенного количества полигонов, чтобы ближе к камере детализация была больше, а с расстоянием она снижается. Эта постоянная перестановка многоугольников иногда дает преимущества. Однако, есть и известный побочный эффект всех пейзажей LOD. Это эффект 'выталкивания', о котором будет разговор подробнее на других страницах. Дополнительный родительский параметр parent позволяет Вам определять
родительский объект для ландшафта так, чтобы, когда родитель будет перемещаться,
дочерний объект будет двигаться вместе с ним. Однако, эта зависимость -
односторонняя: применение команд движения к дочернему объекту не будет
затрагивать родителя. |
|
; Пример CreateTerrain
; --------------------- Graphics3D 640,480 SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,1,0 light=CreateLight() RotateEntity light,90,0,0 ; Создаем ландшафт terrain=CreateTerrain(128) ; Текстурируем его grass_tex=LoadTexture( "media/mossyground.bmp" ) EntityTexture terrain,grass_tex While Not KeyDown( 1 ) If KeyDown( 205 )=True Then TurnEntity camera,0,-1,0 If KeyDown( 203 )=True Then TurnEntity camera,0,1,0 If KeyDown( 208 )=True Then MoveEntity camera,0,0,-0.05 If KeyDown( 200 )=True Then MoveEntity camera,0,0,0.05 RenderWorld Text 0,0,"Use cursor keys to move about the terrain" Flip Wend End |