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

Введение

Опубликованно: 19.07.2015, 21:28
Последняя редакция, AdiDOS: 06.05.2017 16:39

В данной статье я хочу кратко описать азы того что вам понадобится знать для дальнейшего знакомства с 3D движком JMonkeyEngine.

Далее я приведу небольшой код в котором в дальнейшем буду его анализировать.

package test;

import com.jme3.app.SimpleApplication;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.scene.Geometry;
import com.jme3.scene.Spatial;
import com.jme3.scene.shape.Box;
import com.jme3.scene.shape.Sphere;
import com.jme3.texture.Texture;
import com.jme3.util.SkyFactory;

public class HelloJME extends SimpleApplication {

 public static void main(String[] args){
 HelloJME app = new HelloJME();
 app.start(); 

 }
 //Инициализация сцены
 @Override
 public void simpleInitApp() {
   flyCam.setMoveSpeed(100); // Скорость перемещения в пространстве
   cam.setFrustumFar(10000); // Глубина видимости в пространстве
   rootNode.attachChild(createBox()); //Добавляем куб
   rootNode.attachChild(createSphere()); //Добавляем сферу
   rootNode.attachChild(createSkyBox()); //Добавляем небо

 }
 //Создание куба
 private Geometry createBox() {
   Box b = new Box(1, 1, 1); //Создаем куб и указываем размер по трем осям
   Geometry geom = new Geometry("Box", b); //Создаем обьект геометрии
   Material mat = new Material(assetManager,
                 "Common/MatDefs/Misc/Unshaded.j3md"); //Свойство материалов
   Texture tex = assetManager.loadTexture(
                 "Interface/Logo/Monkey.jpg"); //Загружаем текстуру
   mat.setTexture("ColorMap", tex); //Устанавливаем текстуру
   geom.setMaterial(mat); //Применяем материал к нашему объекту

   return geom;

 }
 //Создание сферы
 private Geometry createSphere() {
   Sphere sphere = new Sphere(32,32, 2f);//Создаем сферу и указываем характеристики
   Geometry geom = new Geometry("Sphere", sphere);
   Material sphereMat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
   sphereMat.setColor("Color", ColorRGBA.Orange); //Устанавливаем цвет оранжевый
   geom.setMaterial(sphereMat); //Применяем материал к нашему объекту

   geom.setLocalTranslation(5, 0, 0); //Смещаем объект на 5 по оси X
   return geom;

 }
 //Создание неба
 private Spatial createSkyBox() {
   Spatial sky = SkyFactory.createSky(assetManager,
                 "Textures/Sky/Bright/BrightSky.dds", false); // Загрузка  ресурсов неба

   sky.setLocalScale(350); // Маштабирование
   return sky;

 }
 //Рендеринг перерисовки сцены
 @Override
 public void update() {
   super.update();
 }
}

1

SimpleApplication — это по сути игровой движок который обобщает весь функционал это прорисовка геометрии , работа с событиями, управление камерой, обработка звука ну короче все.

flyCam — это камера с помощью  которой мы перемещаемся по сцене.

cam — собственно тоже камера она дает нам доступ к настройкам в данном случае  с помощью функции setFrustumFar() я увеличил область видимости камеры , все что выходит за эту область обрезается.

rootNode — это корневой узел нашей сцены все что отображается на сцене добавляется именно через этот класс, с помощью него можно получить доступ ко всем объектам в данном случае с помощью функции attachChild() добавляю объекты на сцену.

Shepe — это примитивные объекты которые входят в состав движка это Куб, Сфера, Торус и т.д. , эти объекты по сути из себя ничего не представляют они просто генерируют нам сетку которую в дальнейшем мы используем.

Geometry —  этот класс дает нам доступ к геометрии объекта ,свойства материалов, масштабирование, трансформацию, вращение и т.д.

Material — класс отвечает за отображение объекта сцены установка цвета,прозрачность,текстуры и т.д.

Spatial — этот класс можно переопределять и строить свои объекты с определенной  логикой  и своим стилем отображения он также имеет в себе базовые функции трансформации, вращения, масштабирования и умеет хранить в себе геометрию наглядный пример этому создание Неба(SkyBox), функция которого возвращает  готовый объект имеющий в себе геометрию куба и текстуры .

assetManager — это интерфейс предоставляющий доступ к загрузке ресурсов такие как текстуры, объекты геометрии, материалы и т.д.

simpleInitApp() — это событие исполняется один раз при инициализации рендеринга сцены его удобно использовать для настройки движка, добавлении объектов на сцену для дальнейшей манипуляции с ними

update() — это событие вызывается при рендеринге сцены удобно для операций которые надо обрабатывать в реальном времени.

Заключение — данная статья предназначена для образного понятия и понимания использование движка JME.

Спасибо за внимание!!

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

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