Назад

   Команды тумана в основном применяются для создания тумана в 3D-сцене. Немного изменив параметры команды, можно создавать такие эффекты, как дым, подводное окружение, сумерки и т.д. Другое очень важное применение команды тумана состоит в том, чтобы использовать ее для создания эффекта "скрывающейся геометрии". В насыщенной 3D-среде с большим количеством полигонов можно использовать туман, чтобы скрыть геометрию сцены за пределами максимального расстояния видимости камеры. Этот метод может значительно увеличить скорость выполнения программ.

Sync On
Sync Rate 30

Backdrop on
Set camera range 1,5000

Fog on
Fog distance 4000
Fog color RGB(128,128,128)
Color Backdrop RGB(128,128,128)

Rem Создаем матрицу
Make matrix 1,10000,10000,20,20

Rem Текстурируем матрицу
Load image "grass09.bmp",1
Prepare matrix texture 1,1,1,1
Fill matrix 1,0,1

Rem Создаем простейший объект
Load image "barry.bmp",2
Make object sphere 10,25
Texture object 10,2
position object 10,100,0,100

rem Присваиваем случайные значения координатам вершин матрицы
randomize matrix 1,125

Rem Основной цикл
Do

 Rem  Сохраняем угол объекта
 AngleY# = object angle Y(10)

 Rem  Управление перемещением камеры
 If Upkey()=1
  XTest# = Newxvalue(X#,AngleY#,20)
  ZTest# = Newzvalue(Z#,AngleY#,20)
  If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
   Move object 10,10
  Endif
 Endif

 If Leftkey()=1 then Yrotate object 10,Wrapvalue(AngleY#-5)
 If Rightkey()=1 then Yrotate object 10,Wrapvalue(AngleY#+5)

 X# = Object position x(10)
 Z# = Object position z(10)
 Y# = Get Ground Height(1,X#,Z#)

 Position object 10,X#,Y#+12.5,Z#

 CameraZ# = Newzvalue(Z#,AngleY#-180,100)
 CameraX# = Newxvalue(X#,AngleY#-180,100)

 Position camera CameraX#,Y#+50,CameraZ#

 Point camera X#,Y#+25,Z#
 Rem Обновляем экран
 Sync
Loop

Начнем объяснение с нескольких установочных команд.

 Backdrop on

Команда "Backdrop on" включает задник. Если он выключен, вы увидите эффект зеркального помещения, выражающийся в том, что можно перемещаться за пределами матрицы, но объект-игрок не сможет подбирать или удалять находившиеся там прежде предметы. Задник необходимо использовать в том случае, если вы знаете, что игроку будет виден задний план.

  Set camera range 1,5000

Команда "Set Camera Range" устанавливает дальность видимого пространства для камеры. Первый параметр определяет, на каком расстоянии от камеры DarkBASIC должен начать рендеринг 3D-сцены. Второй параметр определяет расстояние от камеры, на котором прекращается рендеринг сцены. При выборе значения последнего параметра необходимо принять во внимание то, насколько далеко будет "видеть" игрок, и какое число полигонов будет одновременно отображаться. Попробуйте изменить значение первого параметра на 1000, а второго - на 100000 или 1000 и посмотреть, как это повлияет на рендеринг сцены.

   Fog on

Команда "Fog On" указывает DarkBASIC, что на определенном расстоянии в сцене будет использоваться туман.

   Fog distance 4000

Команда "Fog Distance" устанавливает расстояние, с которого должен начинаться наиболее плотный туман. Советуем установить этот параметр равным или чуть меньшим, чем последний параметр в команде "Set Camera Range", в противном случае вам придется наблюдать неприятный эффект обрезанных полигонов.

   Fog color RGB(128,128,128)

Команда "Fog Color" устанавливает цвет тумана. Параметр после команды - цвет тумана. Здесь для установки цвета мы используем команду "RGB".

   Color Backdrop RGB(128,128,128)

Команда "Color Backdrop" устанавливает цвет задника. Параметр после команды - цвет задника. Так же, как и в предыдущей команде, для установки цвета задника мы используем команду "RGB". Чтобы туман выглядел более реалистичным, советуем окрасить задник в тот же цвет, что и туман. В этом случае туман сольется с задником. Для создания других эффектов можно установить различные значения этих цветов. Попробуйте задать расстояние для тумана равным 500, установить значение цвета тумана равным "0,0,0", а цвета задника равным "0,0,32". Это создаст эффект вырисовывающегося ландшафта на фоне почти черного неба.

 

Hosted by uCoz