libGDX 绘制立方体
Step1: 创建Model
Step2: 增加Enviroment
Step3:因为是3D场景,添加PerspectiveCamera
Step4:利用ModelBatch将 Model渲染出来
public class LightApplicationListener extends ApplicationAdapter {
private Model mBoxModel;
private ModelInstance mBoxInstance;
private Environment mEnvironment;
private PerspectiveCamera mCamera;
public CameraInputController mCameraController;
private ModelBatch mModelBatch;
@Override
public void create() {
super.create();
ModelBuilder modelBuilder = new ModelBuilder();
mBoxModel = modelBuilder.createBox(3f, 3f, 3f,
new Material(ColorAttribute.createDiffuse(Color.GREEN)),
VertexAttributes.Usage.Position|VertexAttributes.Usage.Normal);
mBoxInstance = new ModelInstance(mBoxModel);
mEnvironment = new Environment();
mEnvironment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1f));
//骞宠鍏?
mEnvironment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f));
mCamera = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
mCamera.position.set(10f,10f,10f);
mCamera.lookAt(0,0,0);
mCamera.near = 1f;
mCamera.far = 300f;
mCamera.update();
mCameraController = new CameraInputController(mCamera);
Gdx.input.setInputProcessor(mCameraController);
mModelBatch = new ModelBatch();
}
@Override
public void resize(int width, int height) {
super.resize(width, height);
}
@Override
public void render() {
Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
mModelBatch.begin(mCamera);
mModelBatch.render(mBoxInstance, mEnvironment);
mModelBatch.end();
}
@Override
public void pause() {
super.pause();
}
@Override
public void resume() {
super.resume();
}
@Override
public void dispose() {
super.dispose();
mBoxModel.dispose();
}