Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            Граф сцены и другая jME3 терминология

Граф сцены и другая jME3 терминология

Опубликованно: 18.01.2016, 17:27
Последняя редакция, Andry: 29.08.2017 20:43

Перед тем как начинать создавать игры, убедитесь, что вы понимаете основные термины в построении 3D игр.

Во-вторых, если вы новичок, мы рекомендуем вам изучить слайды для визуального введения в концепцию графа сцены.

Затем продолжите изучение jME3 понятий здесь.

Система координат

JMonkeyEngine использует метод правой руки в системе координат, как и OpenGL.

Система координат состоит из:

  • Начало, одна центральная точка в пространстве.
    • Начальная точка всегда имеет координату ноль, в Java: new Vector3f(0,0,0)
  • Три оси координат, которые взаимно перпендикулярны, и пересекаются в начале.
    • Ось Х – располагается слева на права.
    • Ось У – снизу вверх.
    • Ось Z – начинается перед вами и идет к вам.

coordinate-system

Каждая точка в пространстве однозначно определяется своими координатами 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) игрока
При нажатии W и S клавиш Перемещение камеры вперед и назад Вы передвигаетесь вперед и назад
При нажатии A и D клавиш Перемещение камеры влево и право Вы делаете шаг влево или право
При нажатии Q и Z клавиш Перемещение камеры вверх или вниз Вы летаете вверх или вниз
При движении мыши влево-вправо Вращение камеры влево-вправо Вы смотрите влево или вправо
При движении мыши вперед-назад Вращение камеры вверх-вниз Вы смотрите в небо или под ноги

Настройки по умолчанию вызывают «WASD клавиши» (“WASD keys) и «Просмотр мышью» (“Mouse Look”). Вы можете настроить свою обработку ввода для вашей игры. К сожалению, эти настройки лучше всего работают с клавиатурой QWERTY/QWERTZ.

Граф сцены и корневой узел (RootNode)

Граф сцены представляет 3D мир. Объекты в графе сцены jME3 называются Spatial (буквально: пространственный, занимающий пространство. Произносится как «Спейшел» ).  Все они прикреплены к корневому узлу (RootNode) и являются частью сцены. Ваша игра будет наследовать объект rootNode от класса SimpleApplication (простое приложение).

scene-graph

  • Присоединение 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

Добавить комментарий

Содержание

jMonkeyEngine.ru © 2017. Все права сохранены.