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

JMonkeyEngine SDK: Процедурные текстуры с NeoTexture

Опубликованно: 09.06.2017, 3:52
Последняя редакция, AdiDOS: 12.06.2017 19:54

NeoTextureEditor позволяет создавать плиточные текстуры процедурно, используя простой интерфейс узла для генерации изображений, их смешивания, создания карт нормалей и многого другого. Вы можете напрямую загружать файлы .tgr в качестве материала или экспортировать созданные изображения в виде файлов .png и использовать их в играх на основе jMonkeyEngine.

Текстуры обычно составляют большую часть дистрибутива игры. Вот почему NeoTexture — это не только редактор, но и библиотека, которая генерирует текстуры из .tgr-файлов. Используйте библиотеку для загрузки файлов .tgr непосредственно в jME3 в качестве материала, без необходимости экспортировать текстуры раньше. Это означает, что высококачественные текстуры для ваших моделей, это просто крошечные файлы описанные в дистрибутиве.

Создание и редактирование файла NeoTexture

  • Щелкните правой кнопкой мыши каталог assets / Textures и выберите Новый …> Другое.
  • В Мастере создания файлов выберите NeoTexture> Empty NeoTextureFile и нажмите «Далее».
  • Дайте файлу имя, для примера neoMaterial.
  • Новый файл neoMaterial.tgr создается в каталоге «Текстуры» и открывается в редакторе NeoTexture.

Отредактируйте файл .tgr и создайте свою процедурную текстуру: (Подробнее здесь о создании процедурных текстур)

  • Перетащите любой шаблон из левой панели в область редактора.
  • Щелкните правой кнопкой мыши область редактора и вставьте узел фильтра NormalMap.
  • Подключите зеленый выходной знак рисунка с красной меткой входа фильтра. + Это создает нормальную карту, которая может использоваться как карта рельефа.

Добавление библиотеки NeoTexture в ваш проект

Чтобы использовать файлы Tgr NeoTexture непосредственно в вашем приложении, вы должны добавить библиотеки NeoTexture в свой проект:

  • Щелкните правой кнопкой мыши свой проект и выберите «Свойства
  • Перейдите в раздел «Библиотеки окна свойств»
  • Нажмите «Добавить библиотеку».
  • Выберите «NeoTexture-Libraries и нажмите» add

Загрузка tgr файла в качестве материала

Мы хотим использовать процессуальную текстуру как материал, основанный на Lighting.j3md (по умолчанию). Мы знаем, что Lighting.j3md поддерживает DiffuseMap, NormalMap, SpecularMap и ParallaxMap.

  1. Щелкните фильтр «Нормальная карта», чтобы выбрать его. Мы хотим использовать его как нормальную карту текстуры.
    1. В окне «Свойства новых текстур» в разделе «Имя экспорта» введите имя слоя текстуры, как оно появится в файле .j3m, например. «Нормальная карта».
  2. Щелкните шаблон, чтобы выбрать его. Мы хотим (re) использовать его как Diffuse Map текстуры.
      В окне «Свойства новых текстур» в разделе «Имя экспорта» введите имя слоя текстуры, как оно появится в файле .j3m, например. «Диффузная карта».
  3. Нажмите кнопку «Сохранить» в редакторе NeoTextures. Файл .tgr сохраняется с двумя слоями. (Мы могли бы добавить SpecularMap и ParallaxMap таким же образом, если бы захотели.)

Давайте назначим вновь созданную текстуру сетке, чтобы увидеть, как она выглядит.

  1. Откройте файл Main.java.
  2. Выберите «Окно» → «Палитра», чтобы открыть палитру. Вы найдете два фрагмента кода NeoTexture, один для добавления загрузчика NeoTexture в agentManager и один для загрузки материала NeoTexture.
  3. Перетащите по одному из них в метод simpleInitApp () вашего приложения.
  4. Откорректируйте имена путей файла .tgr в соответствии с созданным нами файлом: «Материалы / neoMaterial.tgr.

Чистите, создавайте и запускайте. Вы готовы загрузить свой процедурный материал!

assetManager.registerLoader(com.jme3.material.plugins.NeoTextureMaterialLoader.class,"tgr");
NeoTextureMaterialKey key = new NeoTextureMaterialKey("Materials/neoMaterial.tgr");

Material mat = assetManager.loadAsset(key);
mat.setFloat("Shininess",12); /* Lighting.j3md has non-map parameters too that we can set. */
thing.setMaterial(mat);

По умолчанию Material Definition для NeoTextures является Lighting.j3md, и это, вероятно, тот, который вы будете использовать чаще всего. Если вы хотите использовать дополнительные параметры текстуры, кроме DiffuseMap, SpecularMap, ParallaxMap и NormalMap, вы можете переключиться на другое определение материала с помощью setMaterialDef (), например:

key.setMaterialDef("Commons/MatDefs/Misc/ColoredTextured.j3md");

Помните, что имена слоев в файле .tgr должны совпадать с именами, указанными в файле .j3md. В нашем примере ColoredTextured.j3md файл .tgr должен содержать ColorMap, и вам нужно установить RGBAColor.

Применение tgr файла текстуры нормалей в j3m файле

Вы можете использовать .tgr-файлы, такие как обычные текстуры в файлах j3m, с синтаксисом, подобным этому: Материалы / neoMaterial? DiffuseMap.tgr Часть между? А суффикс — это имя узла, который вы хотите загрузить в качестве текстуры. Если вы не указываете имя, используется текстура.

Чтобы иметь возможность загружать эти текстуры, вам необходимо зарегистрировать Локатор и загрузчик в AssetManager, обратите внимание, что вы можете зарегистрировать только один загрузчик на расширение, чтобы вы не могли загружать .tgr-файлы в качестве материалов и как текстуры с тем же активомManager.

assetManager.registerLocator("/", com.jme3.texture.plugins.NeoTextureLocator.class );
assetManager.registerLoader(com.jme3.texture.plugins.NeoTextureLoader.class,"tgr");

Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

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

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