Цель урока: объяснить применение основных команд для создания тумана и задника.
Команды тумана в основном применяются для создания тумана в 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". Это создаст эффект вырисовывающегося ландшафта на фоне почти черного неба.