- •Учебник
- •Оглавление
- •Введение
- •Глава 1
- •I. Установка
- •II. Удаление
- •Глава 2. Первый проект
- •Глава 3. Создание сцены в режиме design time
- •Создание объектов:
- •Глава 4. Примитивные объекты. Вкладка Basic geometry.
- •Глава 5. Ориентация, координаты.
- •Глава 6. Движение.
- •Глава 7. Как узнать, сколько сейчас fps?
- •Глава 8. Полноэкранный режим.
- •Глава 9. Работа с материалами.
- •I. Прямое обращение к .Material
- •Глава 10. Использование 3d моделей.
- •I. Форматы моделей
- •Глава 11. Прокси объекты.
- •Глава 12. Создание земной поверхности с glTerrainRenderer.
- •Глава 13. Создание земной поверхности с glFreeForm.
- •Глава 14. Итоги работы с glTerainrender и glFreeForm.
- •Глава 15. Создание земной поверхности с glHeightField.
- •Глава 15. Создание неба.
- •Глава 16. GlAtmosphere.
- •Глава 17. Спецэффекты.
- •I. Огонь
- •II. Молния
- •III. Дождь
- •IV. Снег
- •VI. Блики от источников света
- •Глава 18. Растительность.
- •I. Деревья и кустарники
- •II. Трава
- •Глава 19. Работа со шрифтами и вывод надписей.
- •I. Вывод текста через компонент glWindowsBitmapFont
- •II. Проблема с glWindowsBitmapFont в Windows Vista
- •Глава 20. Выделение объекта мышкой.
- •Глава 21. Создание сцены в режиме runtime.
- •Глава 22. Тени.
- •Глава 23. Туман.
- •Глава 24. Vbo или расширение arb_vertex_buffer_object в OpenGl.
- •Глава 25. Fbo или расширение ext_framebuffer_object в OpenGl.
- •Глава 26. Рисование на канве.
- •Глава 27. Использование чистого OpenGl.
- •Глава 28. Звуки.
- •I. Проигрывание звуков с помощью bass
- •II. Проигрывание звуков с помощью fmod
- •III. Проигрывание звуков с помощью OpenAl
- •Глава 29. Игровое меню.
- •Глава 30. Примитивная физика dce.
- •Глава 31. Физика ode.
- •II. Основы библиотеки ode(: tglodeManager и tglodeJointList) на примере создания подобия боулинга.
- •Глава 32. Физика Newton.
- •Глава 33. Ручная проверка коллизий.
- •V. Ручная проверка коллизии
- •Глава 34. Шейдеры. Терменология.
- •Глава 35. Шейдеры. История и компоненты.
- •Глава 36. Шейдеры glsl. Введение.
- •Глава 37. Шейдеры glsl. Использование без компонентов. Самый примитивный шейдер.
- •Глава 38. Шейдеры glsl. Немного о спецификации. Типы данных и переменные
- •Стандартные функции
- •Поддерживаемые компоненты векторов
- •Глава 40. Шейдеры glsl. Текстурирование.
- •Глава 41. Шейдеры glsl. Использование без компонентов. Мультитекстурирование. Смешение трёх цветов по базовой карте.
- •Глава 42. Шейдеры glsl. Использование через компонент glslShader. Часть первая – Первые шаги.
- •Глава 43. Шейдеры glsl. Использование через компонент glslShader. Часть вторая – знакомимся со светом. Передача параметров в шейдер.
- •Глава 44. Шейдеры glsl. Использование через компонент glslShader. Часть третья – текстуры.
- •Глава 45. RenderMonkey.
- •Глава 46. Оптимизация программы.
- •Глава 47. Практика. Создание мира
- •Приложение
- •I. Типы векторов и матриц
- •II. Работа с векторами
- •III. Работа с матрицами
- •IV. Методы объектов glScene
- •Предметный указатель по компонентам glScene
Глава 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.