Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dgzt.gltfexample;
- import com.badlogic.gdx.ApplicationAdapter;
- import com.badlogic.gdx.Gdx;
- import com.badlogic.gdx.assets.AssetManager;
- import com.badlogic.gdx.graphics.Color;
- import com.badlogic.gdx.graphics.GL20;
- import com.badlogic.gdx.graphics.PerspectiveCamera;
- import com.badlogic.gdx.graphics.g3d.utils.CameraInputController;
- import com.badlogic.gdx.graphics.g3d.utils.DefaultShaderProvider;
- import com.badlogic.gdx.graphics.g3d.utils.DepthShaderProvider;
- import net.mgsx.gltf.loaders.gltf.GLTFAssetLoader;
- import net.mgsx.gltf.scene3d.lights.DirectionalLightEx;
- import net.mgsx.gltf.scene3d.scene.Scene;
- import net.mgsx.gltf.scene3d.scene.SceneAsset;
- import net.mgsx.gltf.scene3d.scene.SceneManager;
- public class GltfExample extends ApplicationAdapter {
- private static final String MODEL_SOLDIER_PATH = "uploads_files_2584113_droid.gltf";
- private AssetManager assetManager;
- private SceneManager sceneManager;
- private SceneAsset soldierSceneAsset;
- private Scene scene;
- private PerspectiveCamera camera;
- private DirectionalLightEx light;
- public CameraInputController inputController;
- @Override
- public void create () {
- assetManager = new AssetManager();
- assetManager.setLoader(SceneAsset.class, new GLTFAssetLoader());
- assetManager.load(MODEL_SOLDIER_PATH, SceneAsset.class);
- assetManager.finishLoading();
- soldierSceneAsset = assetManager.get(MODEL_SOLDIER_PATH);
- // create scene
- scene = new Scene(soldierSceneAsset.scene);
- sceneManager = new SceneManager(new DefaultShaderProvider(), new DepthShaderProvider());
- sceneManager.addScene(scene);
- // setup camera
- camera = new PerspectiveCamera(67f, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
- camera.position.set(15, 15, 15);
- camera.lookAt(0, 0, 0);
- camera.update();
- sceneManager.setCamera(camera);
- // setup light
- light = new DirectionalLightEx();
- light.direction.set(1, -3, 1).nor();
- light.color.set(Color.RED);
- sceneManager.environment.add(light);
- Gdx.input.setInputProcessor(inputController = new CameraInputController(camera));
- }
- @Override
- public void resize(int width, int height) {
- sceneManager.updateViewport(width, height);
- }
- @Override
- public void render () {
- float deltaTime = Gdx.graphics.getDeltaTime();
- inputController.update();
- // render
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
- sceneManager.update(deltaTime);
- sceneManager.render();
- }
- @Override
- public void dispose () {
- sceneManager.dispose();
- soldierSceneAsset.dispose();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement