Граф сцены и другая jME3 терминология
Перед тем как начинать создавать игры, убедитесь, что вы понимаете основные термины в построении 3D игр.
Во-вторых, если вы новичок, мы рекомендуем вам изучить слайды для визуального введения в концепцию графа сцены.
Затем продолжите изучение jME3 понятий здесь.
Система координат
JMonkeyEngine использует метод правой руки в системе координат, как и OpenGL.
Система координат состоит из:
- Начало, одна центральная точка в пространстве.
- Начальная точка всегда имеет координату ноль, в Java: new Vector3f(0,0,0)
- Три оси координат, которые взаимно перпендикулярны, и пересекаются в начале.
- Ось Х – располагается слева на права.
- Ось У – снизу вверх.
- Ось Z – начинается перед вами и идет к вам.
Каждая точка в пространстве однозначно определяется своими координатами X, Y, Z. Три числовые координаты показывают, сколько образных «шагов» нужно пройти по трем осям до точки. Тип данных для всех векторов в jME3: com.jme3.math.Vector3f. Все вектора относятся к описанной системе координат.
Например: До точки new Vector3f(3,-5,1) нужно сделать три шага направо, 5 шагов вниз и 1 шаг к вам.
-
Единица измерения («один шаг») в jME3 – «мировая единица» (world unit) или коротко: wu. Как правило, 1 wu принимается как 1 метр. Но вы можете принять любое расстояние, которое вам нравиться, главное, помнить об этом на протяжении всей вашей игры.
Для ориентации:
- Расположение камеры по умолчанию — Vector3f(0.0f, 0.0f, 10.0f).
- Камера по умолчанию смотрит в отрицательном направлении по оси Z: вектор — Vector3f(0.0f, 0.0f, -1.0f)
Это означает, что точка наблюдения игрока расположена на положительной стороне оси Z.
Как перемещаться по 3D сцене
Когда вы играете в 3D игры, вы, как правило, хотите перемещаться по 3D сценам. Обратите внимание, что по умолчанию, курсора мыши не видно. Мышь установлена контролировать вращение камеры.
По умолчанию в jME3 используются следующие общий навигационный ввод:
Вводимые данные | Движение камеры | Точка зрения (POV) игрока |
При нажатии | и клавишПеремещение камеры вперед и назад | Вы передвигаетесь вперед и назад |
При нажатии | и клавишПеремещение камеры влево и право | Вы делаете шаг влево или право |
При нажатии | и клавишПеремещение камеры вверх или вниз | Вы летаете вверх или вниз |
При движении мыши влево-вправо | Вращение камеры влево-вправо | Вы смотрите влево или вправо |
При движении мыши вперед-назад | Вращение камеры вверх-вниз | Вы смотрите в небо или под ноги |
Настройки по умолчанию вызывают «обработку ввода для вашей игры. К сожалению, эти настройки лучше всего работают с клавиатурой QWERTY/QWERTZ.
клавиши» (“WASD keys) и «Просмотр мышью» (“Mouse Look”). Вы можете настроить своюГраф сцены и корневой узел (RootNode)
Граф сцены представляет 3D мир. Объекты в графе сцены jME3 называются Spatial (буквально: пространственный, занимающий пространство. Произносится как «Спейшел» ). Все они прикреплены к корневому узлу (RootNode) и являются частью сцены. Ваша игра будет наследовать объект rootNode от класса SimpleApplication (простое приложение).
- Присоединение Spatial к rootNode ( или к дочернему узлу) добавляет объект в сцену.
- Отсоединение Spatial от rootNode ( или от дочернего узла) удаляет объект со сцены.
Все объекты на сцене имеют отношения родитель-потомок. Когда вы преобразуете (перемещаете, вращаете, масштабируете) один из родительских объектов, то преобразуются и все потомки.
-
Граф сцены лишь управляет отношением родитель-потомок между Spatial. Фактическое местоположение, вращение или масштабирование объекта храниться внутри каждого Spatial.
Spatials: Сравнение Узла и Геометрии
Spatial может быть трансформирован (другими слова, он может поменять место положения, повернуться или поменять масштаб). Spatial может быть загружен и сохранен как .3jo файл. Есть два вида Spatials: Узлы и Геометрии:
Spatial | ||
Предназначение: | Spatial является абстрактной структурой данных, которая хранит преобразования (перемещение, вращение, масштабирование). | |
Геометрия | Узел | |
Видимость: | Видимый 3D объект | Является невидимым «рычагом» для группы объектов |
Предназначение: | Геометрия представляет из себя «внешний вид объекта»: форма, цвет, текстура, затемнение/прозрачность. | Узел это группа геометрий и/или других прикрепленных узлов: Если вы изменяете узел, то это затрагивает все прикрепленные узлы (родитель – потомки) и Геометрии |
Содержит: | Преобразования, сетку, материал. | Преобразования, без сетки, без материала. |
Примеры: | Куб, сфера, игрок, постройка, кусок поверхности, транспортное средство, ракеты, ИИ агент и так далее | rootNode, guiNode, audioNode, настраиваемая группа узлов для транспорта и его пассажиров и.т.д.. |
Как использовать эти знания?
Прежде чем вы начнете создавать свою игру, вы должны распланировать ваш граф сцены: какие узлы и геометрии вам нужны? Изучите учебное пособие для начинающих, чтобы научиться загружать и создавать Spatials, как поставить их на сцену, прикрепить, отцепить Spatial и как добавлять взаимодействия и эффекты в игру.
Промежуточная и продвинутая документация даст вам более подробную информацию о том, как собрать все части вместе, чтобы создать отличную 3D игру на Java!
Смотри также:
- Spatial – подробнее об узлах и геометрии.
- Траверс SceneGraph – найти любой узел или геометрию в графе сцены.
- Камера – узнайте больше о камере в сцене.
Переведено для jmonkeyengine.ru, оригинал
Автор перевода: BuGaGa, Andry
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.