Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник по GLScene.doc
Скачиваний:
255
Добавлен:
16.12.2018
Размер:
7.18 Mб
Скачать

Глава 15. Создание неба.

В GLScene есть специальные объекты для рисования неба: GLSkyDome, GLEarthSkyDome, GLSkyBox. Все они находятся в инспекторе объектов, во вкладке Environment objects.

I. GLSkyDome

GLSkyDome – это небосвод, имеет вид сферы, окружающей все объекты. Небо создается повернутым на 90 градусов, чтобы это исправить установите свойство PitchAngle=90.

Свойства GLSkyDome:

Bands – это полосы определенной толщины и цвета. По умолчанию есть две полосы. Щелкните по этому свойству, появится окошко, в котором можно добавлять, удалять и менять свойства полос.

Свойства полос:

Свойство

Описание

Slices

Количество плоскостей из которых состоит Bands, чем их больше тем выше качество.

У всех полос Slices должно быть одинаковое, иначе они будут не правильно состыковываться;

Stacks

Непонятно, что это такое, но то же влияет на качество;

StartAngle

Угол задающий нижнюю сторону полосы. Меняется от -90о до 90о;

StartColor

Цвет нижней стороны полосы;

StopAngle

Угол задающий верхнюю сторону полосы, также может иметь значения от -90о до 90о, но должен быть больше StartAngle;

StopColor

Цвет верхней стороны полосы. Цвет полосы плавно меняется от StartColor до

StopColor.

Options

Есть только одна опция sdoTwinkle, она включает и отключает мерцание.

Stars

Звезды. Щелкните по этому свойству, появится окошко, в котором можно добавлять,

удалять и менять свойства звезд.

Свойства звезд:

Свойство

Описание

Color

Цвет звезды.

Dec

Высота над горизонтом в градусах.

Magnitude

Размер, чем меньше, тем больше звезда.

RA

Сдвиг влево или вправо в градусах.

Программно можно добавить определенное количество случайно расположенных звезд, пример:

GLSkyDome1.Stars.AddRandomStars(100, rgb(200,200,200), True);

Первый параметр определяет количество звезд, второй цвет, третий указывает, где должны быть расположены звезды (true – только над горизонтом, false – по всей сфере).

II. GLEarthSkyDome

GLEarthSkyDome – это переделанный GLSkyDome так, чтобы он больше походил на земной небосвод. Добавлено солнце и в зависимость от того на какой высоте оно находится меняется освещенность неба.

Свойства, отличающиеся от GLSkyDome:

Свойство

Описание

DeepColor

Цвет нижней части сферы.

ExtendedOptions

Есть две опции: esoFadeStarsWithSun – показывает исчезают ли звезды с появлением солнца или нет, esoRotateOnTwelveHours если она включена, то когда SunElevation достигает значения -90 или 90, то небо поворачивается на 180 градусов

HazeColor

Цвет туманной дымки.

NightColor

Цвет неба ночью.

SkyColor

Цвет неба.

SunDawnColor

Цвет солнца на закате.

SunElevation

Высота солнца над горизонтом меняется от -90 до 90.

SunZenithColor

Цвет солнца в зените.

Turbidity

Размытость изображения, меняется от 1 до 120.

III.GLSkyBox

GLSkyBox – это куб, окружающий все объекты сцены, на внутренние грани которого наносятся текстуры земли неба и облаков.

Свойства:

Свойство

Описание

CloudsPlaneOffset

Высота облаков.

CloudsPlaneSize

Размер панели, на которой рисуются облака.

MatNameBack, MatNameBottom, MatNameClouds, MatNameFront, MatNameLeft, MatNameRight, MatNameTop

Это названия материалов соответственно для задней панели, нижней, облаков, передней панели, левой, правой и верхней. Предварительно надо указать библиотеку материалов в MaterialLibrary.

Style

Может принимать следующие значения: sbsBottomHalf – отображается только нижняя половина, sbsFull – отображается все, sbsTopHalf – только верхняя половина,

sbsTopHalfClamped, sbsTopTwoThirds.