Advertisement
Guest User

Untitled

a guest
Apr 14th, 2021
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.56 KB | None | 0 0
  1. package com.dgzt.gltfexample;
  2.  
  3. import com.badlogic.gdx.ApplicationAdapter;
  4. import com.badlogic.gdx.Gdx;
  5. import com.badlogic.gdx.assets.AssetManager;
  6. import com.badlogic.gdx.graphics.Color;
  7. import com.badlogic.gdx.graphics.GL20;
  8. import com.badlogic.gdx.graphics.PerspectiveCamera;
  9. import com.badlogic.gdx.graphics.g3d.utils.CameraInputController;
  10. import com.badlogic.gdx.graphics.g3d.utils.DefaultShaderProvider;
  11. import com.badlogic.gdx.graphics.g3d.utils.DepthShaderProvider;
  12. import net.mgsx.gltf.loaders.gltf.GLTFAssetLoader;
  13. import net.mgsx.gltf.scene3d.lights.DirectionalLightEx;
  14. import net.mgsx.gltf.scene3d.scene.Scene;
  15. import net.mgsx.gltf.scene3d.scene.SceneAsset;
  16. import net.mgsx.gltf.scene3d.scene.SceneManager;
  17.  
  18. public class GltfExample extends ApplicationAdapter {
  19.  
  20.     private static final String MODEL_SOLDIER_PATH = "uploads_files_2584113_droid.gltf";
  21.  
  22.     private AssetManager assetManager;
  23.  
  24.     private SceneManager sceneManager;
  25.     private SceneAsset soldierSceneAsset;
  26.     private Scene scene;
  27.     private PerspectiveCamera camera;
  28.     private DirectionalLightEx light;
  29.  
  30.     public CameraInputController inputController;
  31.  
  32.     @Override
  33.     public void create () {
  34.         assetManager = new AssetManager();
  35.         assetManager.setLoader(SceneAsset.class, new GLTFAssetLoader());
  36.         assetManager.load(MODEL_SOLDIER_PATH, SceneAsset.class);
  37.         assetManager.finishLoading();
  38.         soldierSceneAsset = assetManager.get(MODEL_SOLDIER_PATH);
  39.  
  40.         // create scene
  41.         scene = new Scene(soldierSceneAsset.scene);
  42.  
  43.         sceneManager = new SceneManager(new DefaultShaderProvider(), new DepthShaderProvider());
  44.         sceneManager.addScene(scene);
  45.  
  46.         // setup camera
  47.         camera = new PerspectiveCamera(67f, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
  48.         camera.position.set(15, 15, 15);
  49.         camera.lookAt(0, 0, 0);
  50.         camera.update();
  51.         sceneManager.setCamera(camera);
  52.  
  53.         // setup light
  54.         light = new DirectionalLightEx();
  55.         light.direction.set(1, -3, 1).nor();
  56.         light.color.set(Color.RED);
  57.         sceneManager.environment.add(light);
  58.  
  59.         Gdx.input.setInputProcessor(inputController = new CameraInputController(camera));
  60.     }
  61.  
  62.     @Override
  63.     public void resize(int width, int height) {
  64.         sceneManager.updateViewport(width, height);
  65.     }
  66.  
  67.     @Override
  68.     public void render () {
  69.         float deltaTime = Gdx.graphics.getDeltaTime();
  70.  
  71.         inputController.update();
  72.  
  73.         // render
  74.         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
  75.         sceneManager.update(deltaTime);
  76.         sceneManager.render();
  77.     }
  78.    
  79.     @Override
  80.     public void dispose () {
  81.         sceneManager.dispose();
  82.         soldierSceneAsset.dispose();
  83.     }
  84. }
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement