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

Руководство новичка 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
страница4 из 5
1   2   3   4   5
GLScene
руководство
новичка
, Jat-Studio, 2009

GLLightSource
Сначала я
объясню
, что свет делает в
GLScene.
Без света сцена темная и
нецветная
Свет делает ее светлой и
яркой
Максимум можно иметь восемь источников света
Любой свет кроме параллельного имеет предел дальности свечения
От источника света к
границе его свечения свет от этого источника постепенно уменьшается
Это называется ослаблением света
Свет от
LightSource не создает теней
Если
, например источник света направлен на сферу
, а
за ней находится плоскость
, то на плоскости тени мы не увидим
Свет проходит через сферу
, нисколько ее не замечая
Вы должны использовать другие методики
, чтобы получить тени
Например
, Lightmaps, Z-Shadows или
Shadow Volumes.
Существует три типа света
:
1. Omni Light – источник света находится в
определенной точке
Лучи от него расходятся радиально по всем направлениям
Вы можете
, например
, представить электрическую лампочку
, висящую где
- нибудь на проводе
2. Spot Light – единичный луч света или конус направленного света
Вы можете изменить ширину и
угол света
Если изменить угол на
360°, то свет станет типа
Omni.
Пример
Spot Light – свет фонарика
3. Parallel Light – однородная масса параллельных лучей с
одинаковым направлением
, которые светят от некоторой плоскости в
бесконечность
Изменение позиции параллельного источника света не имеет никакого эффекта
Параллельный свет обычно используют для симуляции равномерного освещения
GLDummyCube
GLScene имеет вспомогательные объекты
Вспомогательный объект невидим и
позволяет организовывать другие объекты в
группы
Вы должны знать
, как использовать
DummyCube в
максимально возможной степени
, так как это упрощает множество вещей
DummyCube может использоваться чтобы хранить объекты в
качестве собственных потомков
Если вы
, например
, хотите переместить все объекты
, помещенные в
DummyCube, вы должны просто изменить положение самого
DummyCube.
Если хотите удалить объекты
, помещенные в
DummyCube, просто вызовите функцию
DeleteChildren объекта
DummyCube.
Аналогично упрощаются вращения объектов
Вы можете создать суставы как
DummyCube, где каждый
DummyCube ограничит вращение сустава в
одной из осей
Вы можете сделать
DummyCube видимым во время выполнения приложения с
помощью свойства
VisibleAtRuntime. DummyCube представлен как кубик с
обозначенными гранями в
виде пунктирных линий
Базовая
геометрия
Базовые объекты геометрии
– простые объекты с
фиксированной формой
Геометрия может быть описана математическими формулами
Вы можете изменить индивидуальные параметры объекта
, но его форма все равно останется неизменной
GLSprite
Спрайт это двухмерное изображение
, натянутое на плоскость
Он всегда повернут к
камере лицом
В
отличие от
HUD спрайта
, GLSprite размещается в
3D пространстве и
может отдаляться или приближаться к
камере
Если спрайт приближается слишком близко к
камере
, то могут произойти визуальные ошибки
Спрайтам обычно накладывают прозрачную текстуру
Изображение может поворачиваться вокруг центра
, с
помощью свойства
Rotation.
GLScene
руководство
новичка
, Jat-Studio, 2009

GLPoints
С
помощью этого объекта вы можете создать как одну точку
, так и
целый массив точек
Эти точки расположены в
3D пространстве
Они имеют параметр
Size, который определяет диаметр точек в
пикселях
Если точка будет иметь диаметр
3, то на экране она будет представлена размером в
три пикселя
, независимо от того
, отдаляется она от камеры или приближается
Перспектива к
ним не применяется
Точки могут быть круглыми
, квадратными и
необъединенными
GLLines
Линии создаются по точкам
, соединенным отрезками
Точки при этом называют узлами
Линии имеют ширину
Они
, также как и
точки
, не зависят от перспективы
Узлы могут быть видимыми или невидимыми
Узлы можно представить в
виде кубиков
, звезд или сфер
, с
изменяемыми размерами
GLPlane
GLPlane – плоскость это одиночный четырехугольник
Четырехугольник представляет собой полигон
, скомпонованный из четырех вершин и
двух треугольников
Плоскость имеет параметры ширины и
высоты
Также важно направление
(Direction) плоскости
Оно указывается нормалью плоскости
Нормаль здесь
– это вектор
, который указывает
, какая сторона плоскости лицевая
, а
какая задняя
Если мы посмотрим на плоскость с
лицевой стороны
, мы ее увидим
, если с
задней
– не увидим
Таким образом
, мы сможем видеть плоскость
, только если ее направление
(Direction) указывает в
сторону камеры
Vertex shading иногда может создавать проблемы
, особенно с
большими плоскостями
Если края плоскости выходят за границы освещения
, то вся плоскость может стать неосвещенной
GLPolygon
[
Нет данных
]
GLCube
GLCube (
Куб
) составлен из шести плоскостей
, причем каждая из них может быть отключена
Куб имеет свойства
CubeWidth (
ширина
), CubeHeight (
высота
) и
CubeDepth
(
глубина
).
GLFrustrum
GLFrustrum (
что
- то вроде усеченной пирамиды
) – искривленный куб
, с
разным размером верхней и
нижней сторон
GLSphere
GLSphere (
сфера
) – имеет параметры
Radius (
радиус
) – размер сферы
, Segments
(
доли
) определяет сколько полигонов будет использоваться при отрисовке сферы и
, соответственно
, насколько гладкой будет ее поверхность
GLDisk
[
Нет данных
]
GLCone
[
Нет данных
]
GLCylinder
[
Нет данных
]
GLDodecahedron
[
Нет данных
]
GLScene
руководство
новичка
, Jat-Studio, 2009

GLIcosahedron
[
Нет данных
]
Дополнительная
геометрия
Более сложная
, чем базовая геометрия
, но описание такое же
GLAnimationSprite
GLAnimationSprite (
анимированный спрайт
) основан на спрайте обыкновенном
, но отображает анимированную последовательность рисунков
Эта анимированная последовательность должна быть сохранена в
единственном файле
Битмап разделен на строки и
столбцы
Сетка содержит конкретные кадры анимации
Эта методика является огромной возможностью для создания всевозможных эффектов взрыва или дыма
, но битмап вы должны делать самостоятельно
GLArrowLine
GLArrowLine – это комбинация цилиндра и
конуса
(
этакая трехмерная стрелка
).
Вы можете изменять ширину и
высоту у
обоих элементов
Направление стрелки указывается с
помощью вектора
Direction.
GLAnnulus
Полая труба
GLExtrusionSolid
[
Нет данных
]
GLMultiPolygon
[
Нет данных
]
GLPipe
[
Нет данных
]
GLRevolutionSolid
[
Нет данных
]
GLTorus
[
Нет данных
]
Объект
сетка
(mesh)
Сеть
– совокупность полигонов
, с
определенными вершинами
, координатами текстуры и
информацией о
связи полигонов между собой
Группа объектов сетки имеет одну общую особенность
– геометрия объекта должна быть загружена из определенного файла
Такие файлы обычно создаются в
различных программах
3D моделирования
Таких как
, например
, 3DSMax, Maya, Milkshape.
Поддерживаются форматы
*.3ds*, *.obj*, *.md2*,
*.md3*, *.smd* и
другие
GLActor
Этот объект вы можете использовать
, если хотите создать анимированный
3D объект
Например
, это может быть некоторое живое существо
. GLActor основан на
GLFreeForm, но оптимизирован для движения
Анимации должны быть загружены в
Animations. GLActor нуждается в
компоненте
AnimationControler.
Вы можете использовать
Quake *.md2* формат
Этот формат содержит набор сеток
(meshes) в
ключевых кадрах анимации
Остальные кадры создаются в
зависимости от ключевых с
плавным переходом между ними
Этот формат является быстрым и
подходит для низкополигональной модели
GLScene
руководство
новичка
, Jat-Studio, 2009

Другой формат
– HalfLife *.smd*.
Он использует так называемую скелетную анимацию
Объект имеет структуру скелета
, привязанную к
костям
Анимация описана в
виде сохраненных значений углов между конкретными костями во времени
Различная анимация может совмещаться во время выполнения приложения
GLFreeForm
Этот объект используется довольно часто
Он способен загружать геометрию из различных форматов сетки
(mesh).
Чтобы формат смог использоваться
, нужно добавить в
раздел uses одноименный модуль формата файла
Например
, чтобы использовать формат
*.3ds* необходимо добавить модуль
GLFile3DS.
Для загрузки геометрии используется функция
LoadFromFile конкретного
GLFreeForm.
Координаты тестуры обычно включены в
файл
Некоторые форматы поддерживают мультитекстурирование
(
использование множества текстур одновременно для одного объекта
) объектов
Вы должны установить используемые текстуры в
список
Mesh list.
Для успешной загрузки текстуры геометрия должна загрузиться перед ней
GLMesh
[
Нет данных
]
GLTilePlane
[
Нет данных
]
GLPortal
[
Нет данных
]
GLTerrainRenderer
GLTerrainRenderer используется для отрисовки окружающего ландшафта
Преимущество
GLTerrainRenderer в
том
, что он использует оптимизацию
LOD. LOD – Level
Of Detail – уровень детализации сцены
Ландшафт составлен из так называемых четверок
(quads).
Четверки
, расположенные ближе к
камере
, имеют бòльшую детализацию
, нежели более дальние
Четверки
, расположенные далеко от камеры
, растягиваются на большие области и
теряют детализацию
Это приводит к
меньшему количеству используемых полигонов
(
и ускорению приложения соответственно
), при почти неизменном качестве
Данные для
GLTerrainRenderer предоставляются компонентами
HDS, которые описывались ранее
По умолчанию вектор
Up GLTerrainRenderer сонаправлен с
осью
Z сцены
Объекты
,
построенные
на
точках
Эта группа объектов часто используется для каких
- либо научных приложений
Форма этих объектов задается математическими уравнениями
GLFlatText
[
Нет данных
]
GLHeightField
[
Нет данных
]
GLXYZGrid
Показывает пространственную сеть по осям
X, Y и
Z.
Любая из осей может быть отключена
Размеры ячеек сетки могут быть изменены
Системы
частиц
Частицы
– большое количество маленьких спрайтов
, сгенерированных согласно определенным правилам
Частицами создаются специальные эффекты
, такие как огонь
, дым
, взрыв
, дождь или снег
GLScene
руководство
новичка
, Jat-Studio, 2009

GLParticles
[
Нет данных
]
GLPFXRenderer
GLPFXRenderer – вспомогательный объект
, который должен быть представлен в
сцене
, на которой нужны
, должным образом обработанные
, эффекты частиц
Система работает так
: сначала в
PFXManager описываются параметры эффекта
, эффект добавляется в
свойстве
Effects нужного объекта и
, наконец
, PFXRenderer заботится о
рендеринге частиц
Эта система кажется слишком сложной
, зато она очень гибкая и
настраивается довольно широко
Объекты
окружающего
пространства
По умолчанию фоновый цвет сцены светло
- серый
Этот цвет определяется свойством
SceneViewer.Buffer.BackgroundColor.
Если вы хотите использовать в
качестве фона неоднородный цвет
, используйте объекты окружающего пространства
(Environment objects).
GLEarthSkyDome
[
Нет данных
]
GLSkyDome
GLSkyDome (
купол неба
) создает градиентный цвет
, полосы которого расположены горизонтально
Вы можете использовать столько полос
, сколько захотите
Вы можете добавить маленькие точки
(
звезды
) в
список
Stars.
Эти звезды могут сверкать
GLSkyBox
GLSkyBox – большой куб
, с
перевернутой нормалью
, и
шестью текстурами
, охватывающими горизонт
Текстуры должны быть выровнены друг относительно друга
, чтобы создать панорамную иллюзию
HUD
объекты
HUD – Head Up Display {
буквально
:
Нашлемный дисплей
(
внешний вид интерфейса
)}.
Эти объекты выводят на экран картинки
(
битмапы
).
Их позиция определяется только по
X и
Y.
Где
X – горизонтальная
, а
Y – вертикальная позиция
HUD объекта
Точка
[0, 0] находится в
левом верхнем углу окна
Не заботьтесь о
порядке рендеринга этих объектов
(
только если между собой
), они всегда рендерятся последними
GLHUDSprite
Универсальный
HUD объект
Выводит на экран двухмерную картинку
Используйте
GLMaterialLibrary, чтобы хранить текстуру
Часто используются прозрачные текстуры
Текстура должна быть двухмерной
Вы можете изменить размер этого объекта с
помощью свойств
Width и
Height. GLHUDSprite может вращаться вокруг себя
, за это отвечает свойство
Rotation.
GLHUDText
Этот
HUD объект выводит на экран текст
, указанный в
свойстве
Text.
Шрифт текста указывается с
помощью использования компонентов шрифта
GLScene.
GUI
объекты
GLScene
руководство
новичка
, Jat-Studio, 2009

[
Нет данных
] по следующим
GUI объектам
:
GLRootControl
GLPopupMenu
GLForm
GLPanel
GLButton
GLCheckBox
GLEdit
GLLabel
GLAdvancedLabel
GLScrollBar
GLStringGrid
GLBitmapControl
Специальные
объекты
Эти объекты не подпадают ни под какую другую категорию
GLLensFlare
GLLensFlare моделирует эффект
, который возникает при взгляде камеры на сильный источник света в
реальном мире
Этот эффект добавит больше реализма вашей сцене
GLLensFlare помещается обычно в
ту же позицию
, что и
сам источник света
Кольца и
полосы создаются при взгляде прямо на
GLLensFlare.
В
настройках можно указать их количество
, размер и
качество
. GLLensFlare не создает эффекта
, если находится позади другого объекта
, по отношению к
камере
GLTextureLensFlare
[
Нет данных
]
GLMirror
[
Нет данных
]
GLShadowPlane
GLShadowPlane – быстрая техника для динамичекого рендера теней
Тени проецируются только на эту плоскость
Для их использования вы должны включить буфер трафарета
(stencil buffer) у
GLSceneViewer.
Назначьте источник света
, от которого будут производиться тени и
затеняемый объект
Указанный объект и
все его потомки бросят тени на плоскость
Z-plane.
GLShadowVolume
[
Нет данных
]
GLScene
руководство
новичка
, Jat-Studio, 2009

GLZShadows
[
Нет данных
]
GLTextureEmitter
[
Нет данных
]
GLProjectedTextures
[
Нет данных
]
GLBlur
[
Нет данных
]
GLTrail
[
Нет данных
]
Безделушки
(Doodad objects)
Специальная категория
, вид наиболее передовой геометрии
GLSpaceText
Этот объект показывает текст в
виде трехмерных букв или надписей
Используются стандартные
Windows шрифты
У
текста можно изменить глубину
(Extrusion).
GLTeapot
Чайник
– объект
, хорошо известный по
3DS MAX.
GLTree
C помощью этого объекта создаются реалистично выглядящие деревья
У
этого объекта множество параметров
, которые позволяют создать практически любой вид деревьев
Дерево состоит из одного главного ствола
, с
отходящими от него ветвями и
листьями
Количество ветвей
(
и соответственно полигонов
) указывается свойством
Depth.
Листья представлены в
виде плоскостей с
покрытыми текстурами передней и
задней частью
GLWaterPlane
Этот объект создает довольно хорошо выглядящую реалистичную воду
Остальные
объекты
GLDirectOpenGL
Выполните ваши собственные команды
OpenGL.
Вы должны знать язык
OpenGL, чтобы использовать этот объект
GLProxyObject
В
случае
, когда вы имеете много одинаковых объектов на сцене
, особенно если они
GLFreeForm, то
, для оптимизации вашего приложения
, вы можете использовать
GLProxyObject.
Вы можете значительно облегчить разработку и
ускорить рендеринг приложения
. GLProxyObject наследует геометрию объекта
, указанного в
свойстве
Master object.
Остальные параметры прокси объектов
, такие как позиция
, направление или масштаб индивидуальны для каждого прокси объекта
GLMultiProxy
GLMultiProxy – это более передовая версия объекта
GLProxyObjects.
Он имеет больше
Master object, которые выбираются в
зависимости от расстояния до камеры
1   2   3   4   5


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