zoukankan      html  css  js  c++  java
  • libgdx 3D 测试一

    参考教程地址:http://blog.xoppa.com/basic-3d-using-libgdx-2/

    1. 创建项目

    2. 代码

     1 package com.mygdx.game;
     2 
     3 import com.badlogic.gdx.ApplicationAdapter;
     4 import com.badlogic.gdx.Gdx;
     5 import com.badlogic.gdx.graphics.*;
     6 import com.badlogic.gdx.graphics.g3d.*;
     7 import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute;
     8 import com.badlogic.gdx.graphics.g3d.environment.DirectionalLight;
     9 import com.badlogic.gdx.graphics.g3d.utils.CameraInputController;
    10 import com.badlogic.gdx.graphics.g3d.utils.ModelBuilder;
    11 
    12 public class MyGdxGame extends ApplicationAdapter {
    13     public Environment environment;//可以包含点光源集合和线光源集合
    14     public PerspectiveCamera cam;//3D视角
    15     public Model model;//模型
    16     public ModelInstance instance;//模型实例
    17     public ModelBatch modelBatch;
    18 
    19     public CameraInputController camController;//视角控制器
    20 
    21     @Override
    22     public void create () {
    23         environment = new Environment();
    24         environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1f));//环境光
    25         environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f));//直线光源
    26 
    27         modelBatch = new ModelBatch();
    28         cam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());//67可以理解成一个定值,视角宽度(67度)
    29         cam.position.set(10f, 10f, 10f);
    30         cam.lookAt(0,0,0);
    31         cam.near = 1f;
    32         cam.far = 300f;
    33         cam.update();
    34 
    35         camController = new CameraInputController(cam);
    36         Gdx.input.setInputProcessor(camController);
    37 
    38         ModelBuilder modelBuilder = new ModelBuilder();//Helper class
    39         model = modelBuilder.createBox(5f, 5f, 5f,
    40                 new Material(ColorAttribute.createDiffuse(Color.GREEN)),
    41                 VertexAttributes.Usage.Position | VertexAttributes.Usage.Normal);
    42         instance = new ModelInstance(model);
    43 
    44 
    45 
    46     }
    47 
    48     @Override
    49     public void render () {
    50         camController.update();
    51         Gdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    52         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
    53 
    54         modelBatch.begin(cam);
    55         modelBatch.render(instance,environment);
    56         modelBatch.end();
    57     }
    58 
    59     @Override
    60     public void dispose() {
    61         model.dispose();
    62         super.dispose();
    63     }
    64 }

    3. 运行效果图

  • 相关阅读:
    Android性能优化典范(转)
    java分形树
    android通过pc脚本执行sqlite3脚本
    针对JD-GUI
    三星的中低端机使用AsyncTask的问题
    Github简明教程(转)
    android 5.0 (lollipop)源码编译环境搭建(Mac OS X)
    排队接水
    幂次方
    2020/4/12
  • 原文地址:https://www.cnblogs.com/hanhongmin/p/3844447.html
Copyright © 2011-2022 走看看