Главная страница

Руководство новичка by JatStudio 2009 glscene руководство новичка, JatStudio, 2009


Скачать 0.63 Mb.
НазваниеРуководство новичка by JatStudio 2009 glscene руководство новичка, JatStudio, 2009
Дата26.02.2019
Размер0.63 Mb.
Формат файлаpdf
Имя файлаGLSceneRUS.pdf
ТипРуководство
#68935
страница3 из 5
1   2   3   4   5
GLScene
руководство
новичка
, Jat-Studio, 2009

Кроме вида поведения вы должны выбрать надлежащий коллайдер
Это форма
, приложенная к
объекту
, которая определяет массу объекта
Коллайдер может быть простым кубом
, сферой
, цилиндром
, может быть извлечен из mesh- геометрии или построен по точкам
Один объект может иметь множество коллайдеров
, объединенных в
комплексную форму
ODE Manager запускает симуляцию через ode.dll и
обновляет позицию каждого объекта и
его поворот
Вы должны вызывать процедуру
Step каждый кадр отрисовки
, чтобы система работала
Это обычно делается в
событии onProgress GLCadencer.
GLODEJointList
Если вы хотите использовать суставы в
ODE, то должны сначала добавить их в
список
GLODEJointList.
Каждый элемент списка описывает тип сустава
, два присоединенных с
его помощью объекта и
другие параметры
, как
, например
, ограничения суставов
, углы
, смещения и
т п
Для получения дополнительной информации о
суставах можете посетить англоязычный сайт http://www.ode.org/
GLSMBass
Bass – это звуковая библиотека
И
снова bass.dll должен быть в
системной папке
Windows или в
папке с
файлом
*.exe* запускаемого приложения
. GLBass – звуковой менеджер
, который используется вместе с
GLSoundLibrary и
поведением конкретного объекта сцены sound behavior для запуска воспроизведения звука
GLSMFMOD
То же самое
, что и
GLBass, только использует fmod.dll.
GLScenePFX
Все компоненты на этой вкладке
– менеджеры эффектов систем частиц
. PFXManager заботится о
способе
, которым частицы похожи
, как они двигаются
, как быстро появляются и
как долго живут
Некоторые частицы могут даже сменить внешний вид
, во время жизни
Частицы может испускать любой объект
Вы можете добавить эффекты частиц с
помощью свойства
Effects любого объекта сцены
Для каждого эффекта нужно установить менеджер частиц и
его отрисовщик
(renderer).
GLCustomPFXManager
[
Нет данных
]
GLPolygonPFXManager
Частицы полигона составлены из зацикленного массива треугольных полигонов
, всегда повернутых лицевой частью к
камере
Полигоны используют цвета вершин
Вы можете определить внутренний
(inner) и
внешний
(outer) цвет частицы
Внешний цвет обычно прозрачен
Каждый полигон непрозрачен в
центре частицы и
постепенно становится прозрачным к
краю по градиенту
GLPointLightPFXManager
[
Нет данных
]
GLCustomSpritePFXManager
[
Нет данных
]
GLScene
руководство
новичка
, Jat-Studio, 2009

GLPerlinPFXManager
С
помощью
PerlinPFX создаются частицы
, со случайно сгенерированной текстурой
Большие возможности для эффектов дыма
GLFireFXManager
Это менеджер
, специально спроектированный для эффектов огня
Лучше оставить настройки по умолчанию для самого приятного визуального качества
Корректируйте только размер частиц
(particle size) как вам необходимо
GLThorFXManager
С
помощью этого эффекта создаются молнии или лазерные лучи
Этот эффект простирается от одной точки до другой
Искрящийся луч рисуется между ними
GLSceneUtils
AsyncTimer
Этот компонент подобен
TTimer, который вы знаете по
Delphi.
Только он является более подходящим для
GLScene.
Через каждый временной интервал вызывается событие onTimer.
Это событие происходит независимо от события onProgress GLCadencer.
AsyncTimer не рекомендуется использовать вместо
GLCadencer.
Его используют для выполнения действий через фиксированное время вне зависимости от рендера самой сцены
GLStaticImposterBuilder
Imposter – реальный путь для оптимизации вашего приложения
Основная идея
Imposters в
том
, что перед рендером объектов в
память сохраняются картинки
, представляющие каждый объект со всех сторон
В
дальнейшем
, во время отрисовки сцены
, в
случае
, если какой
- либо объект находится далеко от камеры
, он заменяется на сохраненную ранее картинку
– спрайт
Картинка выставляется в
зависимости от положения объекта в
сцене именно с
нужной стороны
Это позволяет увеличить скорость рендера приложения
(
кадры в
секунду
), но приводит к
потреблению большого количества оперативной памяти
Задача
ImposterBuilder сгенерировать все изображения и
поместить их в
память перед рендером приложения
Вы можете установить размер изображения и
количество углов
, с
которых сохранится изображение
Это делается добавлением короны
Каждая корона имеет минимальный и
максимальный углы и
количество создаваемых изображений в
этом диапазоне
Например
, если вы создали корону от
0° до
15° с
24 изображениями
, то imposter охватит долю сферы в
15° по ширине и
15° по высоте вокруг
«
экватора
» объекта
Вы должны вызвать функцию
RequestImposterFor для генерации корон
Следующий раздел описывает пять компонентов
HDS. Height Data Source или комплекс данных высот обеспечивает данными
GLTerrainRenderer.
Ландшафт
(terrain) используется для того
, чтобы рендерить большой окружающий пейзаж
. HDS компоненты загружают данные ландшафта из различных форматов и
преобразовывают их в
подходящие для рендера
GLBitmapHDS
Это самый легкий формат
. BitmapHDS загружает черно
- белое изображение и
по нему выстраивает карту высот
, в
зависимости от цвета
Белые части изображения будут иметь самое высокое положение
, черные же наоборот
– самые низкое
, а
оттенки черного будут
GLScene
руководство
новичка
, Jat-Studio, 2009
заполнять промежутки между горами и
долинами плавным переходом
Черно
- белое изображение должно быть с
глубиной цвета
16 бит
Обратите внимание
, что большинство редакторов используют черно
- белую палитру с
глубиной цвета
8 бит
Удостоверьтесь что используемое изображение преобразовано в
16 битное
, иначе ландшафт будут прорезать ущелья и
горы с
абсолютно ровными скосами
GLCustomHDS
[
Нет данных
]
GLHeightTileFileHDS
Источник для
HeightTileFileHDS файл с
расширением
*.htf*.
Этот формат является действительно подходящим для действительно больших ландшафтов
Прикрепленные координаты текстуры
, вместе со свойством
TileSize включены в
файл
*.htf*.
Свойство
TileSize компонента должно быть тем же
, что и
указано в
используемом файле
*.htf*.
GLBumpmapHDS
[
Нет данных
]
GLPerlinHDS
[
Нет данных
]
CollisionManager
[
Нет данных
]
GLAnimationController
GLAnimationController используется вместе с
объектом
TGLActor.
Он хранит анимацию
, используемую актером
Анимация может быть загружена из моделей
*.md2* (Quake) или
*.smd* (Valve).
Анимация доступна по имени
Анимация может быть проиграна циклически
, единожды или в
обратном порядке
Joystick
[
Нет данных
]
ScreenSaver
Если добавить этот компонент на форму
, то приложение будет скомпилировано как экранная заставка
Windows.
AVIRecorder
Поток рендера можно записать в
файл
*.avi*.
GLTimeEventsMGR
[
Нет данных
]
GLVfsPAK
[
Нет данных
]
GLNavigator
[
Нет данных
]
GLUserInterface
[
Нет данных
]
GLScene
руководство
новичка
, Jat-Studio, 2009

GLFPSMovementManager
[
Нет данных
]
GLMaterialScripter
[
Нет данных
]
GLDCEManager
[
Нет данных
]
ApplicationFileIO
[
Нет данных
]
GLSceneShaders
Шейдеры модифицируют материалы
Каждый материал может иметь шейдер
Шейдер изменяет вид создания материалов с
различными визуальными эффектами
GLTexCombineShader
[
Нет данных
]
GLMultiMaterialShader
[
Нет данных
]
GLUserShader
[
Нет данных
]
GLOutLineShader
[
Нет данных
]
GLHiddenLineShader
[
Нет данных
]
GLCelShader
[
Нет данных
]
GLBumpShader
[
Нет данных
]
GLPhongShader
[
Нет данных
]
GLScene
руководство
новичка
, Jat-Studio, 2009

Объекты
Как написано в
главе
«
Как это работает
?» под объектами
GLScene я
понимаю объекты
, не представленные во вкладках
Delphi.
Объекты
GLScene могут быть созданы
, отредактированы или удалены с
помощью
Scene Editor.
Объекты разбиты по категориям
Некоторые объекты не отнесены ни к
одной из категорий и
стоят отдельно
Давайте рассмотрим поближе
GLScene Editor, прежде чем перейдем к
описанию объектов по порядку
. GLScene Editor может быть открыт по двойному щелчку на компоненте
GLScene в
инспекторе объектов
Delphi.
Здесь с
помощью древовидной структуры представлены все используемые вами объекты
Вначале будет только одна запись
Scene, разделенная на два подраздела
: Cameras
и
Scene Objects.
Корневая запись
Scene относится к
GLScene.Objects и
является базовым
(
самым верхним
) элементом в
иерархии
GLScene.
Правым кликом по
Cameras
и выбором
Add camera на сцену добавляется камера
Позже камера может быть перемещена по иерархии дерева и
сожжет стать потомком любого объекта
GLScene.
Все другие объекты
, которые вы создадите
, будут размещены под записью
Scene Objects.
Для создания объекта щелкните правой кнопкой мыши по
Scene Objects и
выберите нужный вам объект
Если вы хотите создать новый объект как потомок уже имеющегося в
сцене
, то кликните правой кнопкой мыши по этому объекту
Новый объект всегда помещается на последнюю позицию в
пределах текущего уровня иерархии
Порядок следования в
иерархическом древе
GLScene Editor важен
Самый верхний объект рендерится первым
Если у
него есть потомки
, то следующими за ним рендерятся они
, и
только за этим уже рендерится все остальное
Рендеринг продолжается от ветки к
ветке
, пока не будет достигнуто основание дерева
Порядок следования также важен для прозрачных объектов
Прозрачные объекты всегда должны рендерится последними
, иначе вы добьетесь визуальных несоответствий в
сцене
Некоторые объекты
(
как объекты
HUD или частицы
) могут рендерится самостоятельно и
, поэтому
, неважно
, где они будут расположены в
иерархическом древе
Вы можете изменять положение объекта сцены в
древе просто перетаскивая его на другой объект
(
и соответственно делая перетаскиваемый объект потомком того
, на который перетащили
) или правым кликом по объекту и
выбирая
Move object down
или
Move object up.
Общие
свойства
объектов
Все объекты
GLScene имеют некоторые общие свойства
, используемые особенно часто
Здесь перечислены свойства
, общие для всех объектов
:
Bechaviors – {
поведение
} если вы добавите к
объекту поведение
, то объект будет действовать согласно этому поведению
Обычно поведение объекта отвечает за движение
, звук или проверку на столкновения
Вы можете добавить более одного поведения
Поведение объектов используется совместно с
компонентами вкладки
GLSceneUtils.
Список поведений
:
- Collision;
- Simple Inertia;
- Simple Acceleration;
- Sound Emitter;
- Movement controls;
- FPS Movement;
- DCE Static Collider;
- DCE Dynamic Collider;
- ODE Dynamic;
- ODE Static;
- ODE HeightField Collider;
GLScene
руководство
новичка
, Jat-Studio, 2009

Children – {
ребенок
} не показывается в
инспекторе объектов
Список всех потомков данного объекта
К
потомкам можно обратиться по индексу
, который начинается с
нуля
Count – {
количество
} не показывается в
инспекторе объектов
Количество потомков объекта плюс единица
, так как массив потомков начинается с
нулевого индекса
Direction – {
направление
} вектор
, указывающий лицевую сторону объекта
Этот вектор есть нормаль
(
его длина равна
1).
Значение по
- умолчанию
– [0,0,1].
Effects – {
эффекты
} каждый объект может испускать эффект частиц
Если вы используете один из менеджеров
PFX, то добавляйте эффекты здесь
Список доступных эффектов
:
- PFXSource;
- FireFX;
- ThorFX;
- ExplosionFX;
Objects Sorting – {
сортировка объектов
} порядок рендера объектов сцены
Material – {
материал
} описан в
главе
GLScene.
Parent – {
родитель
} не показывается в
инспекторе объектов
Объект уровнем выше в
иерархическом древе
Pitch Angle – {
угол наклона
} угол
, описывающий вращение объекта вокруг оси
Y, в
градусах
Position – {
позиция
} вектор
, описывающий позицию объекта в
3D пространстве
Значение по умолчанию
[0, 0, 0].
Roll Angle – {
угол ротации
} угол
, описывающий вращение объекта вокруг оси
X, в
градусах
Изменение этого параметра не всегда производит одинаковый эффект
Рекомендуется использовать векторы
Direction и
Up, вместо этого параметра
Scale – {
масштаб
} этим вектором устанавливается размер объекта
Вы можете масштабировать объект неоднородно
, например
, только по оси
X.
Потомки не наследуют значение масштаба
Значение по умолчанию
[1, 1, 1].
Show Axes – {
показывать оси
} булевский параметр включает видимость цветных линий
, которые являются осями
X, Y и
Z выбранного объекта
Tag Float – {
маркер плавающей точки
} подобен известному по
Delphi параметру
Tag, только здесь имеет тип single.
Turn Angle – {
угол поворота
} угол
, описывающий вращение объекта вокруг оси
Z, в
градусах
Изменение этого параметра не всегда производит одинаковый эффект
Рекомендуется использовать векторы
Direction и
Up, вместо этого параметра
Up – {
вверх
} этот вектор
, вместе с
вектором
Direction, используется для того
, чтобы описать вращение объекта в
3D пространстве
Вектор
Up всегда перпендикулярен вектору
Direction и
нормален
(
имеет длину
1).
Значение по
- умолчанию
[0, 1, 0].
Visibility Culling – {
отбор видимости
} Visibility culling используется
, чтобы ускорить рендеринг сцены
Объекты
, не находящиеся в
поле видимости камеры
, быстро отбрасываются
Но это работает только в
определенных случаях
. Visibility culling работает только для базовых объектах
, не основанных на полигонах
Visible – {
видимость
} вы можете показать или скрыть нужный объект
Но любой код
, представленный в
событии onProgress, данного объекта выполнится даже при выключенной видимости
GLScene
руководство
новичка
, Jat-Studio, 2009

GLCamera
Камеру можно представить в
виде точки в
трехмерном пространстве
, откуда рассматривается сцена
Камера
, как и
другие объекты
, имеет векторы
position, direction и
up. C их помощью можно двигать и
вращать камеру по сцене
Более простой и
эффективный метод ориентации камеры в
3D пространстве
– это направить ее на определенный объект
Для этого выберите нужный объект в
свойстве
Target, и
камера всегда будет направлена на этот объект
, как бы не перемещалась и
вращалась по сцене
FieldOfView – параметр
, который изменяет
«
линзы
» камеры
Более низкие значения делают угол обзора сцены шире
, а
более высокие приближают видимость
(zoom).
Удостоверьтесь
, что вы не используете слишком большие или маленькие значения
, иначе камера искривит пространство сцены
Вы также должны знать кое
- что об ограничительной плоскости
(culling planes).
Полигоны
, расположенные слишком далеко или
, наоборот
, слишком близко по отношению к
камере не рендерятся
Граница
, которая делит сцену на видимые и
невидимые части
, называется ближней
(near) и
дальней
(far) ограничительной плоскостью соответственно
Вы можете установить эти значения через параметры
NearFrustrumRange и
FarFrustrumRange.
Обычно изменяют только дальнюю ограничительную плоскость
Но это создает небольшую проблему
Поскольку камера приближается к
объекту слишком быстро
, то камера проскакивает дальнюю ограничительную плоскость
Для уменьшения этого нежелательного эффекта часто используют туман
Вы можете включить его в
GLSceneViewer.Buffer при этом настроив туман
(fog).
Туман имеет зону начала и
конца
Любой полигон
, находящийся между этими зонами изменяет свою прозрачность от полной непрозрачности в
начальной зоне до полной прозрачности в
конечной
Сделайте значение зоны конца тумана таким же
, как и
дальняя ограничительная плоскость
, а
цвет тумана таким же как цвет фона
GLSceneViewer и
нежелательный эффект пропадет
1   2   3   4   5


написать администратору сайта