博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
libgdx 3D 测试一
阅读量:6205 次
发布时间:2019-06-21

本文共 2454 字,大约阅读时间需要 8 分钟。

参考教程地址: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     @Override22     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 class39         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     @Override49     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     @Override60     public void dispose() {61         model.dispose();62         super.dispose();63     }64 }

3. 运行效果图

转载于:https://www.cnblogs.com/hanhongmin/p/3844447.html

你可能感兴趣的文章
post提交参数过多时,取消Tomcat对 post长度限制
查看>>
UVA - 1388 Graveyard 【数学】
查看>>
Mysql数据库--语句整理/提升/进阶/高级使用技巧
查看>>
计算机视觉-自定义对象检测器
查看>>
Redis 服务安装
查看>>
Ubuntu10.04制作官方源镜像以及搭建本地源
查看>>
Jenkins部署Web项目到远程tomcat
查看>>
Node.js -- Router模块中有一个param方法
查看>>
一小时包教会 —— webpack 入门指南
查看>>
java.net.SocketException: Software caused connection abort: socket write erro
查看>>
oracle异机恢复 open resetlogs 报:ORA-00392
查看>>
关于大学生玩网络游戏的调查问卷
查看>>
解决 Alfred 每次开机都提示请求通讯录权限的问题
查看>>
clear ,refresh,free
查看>>
一起了解原型模式
查看>>
每日一问:LayoutParams 你知道多少?
查看>>
1787: [Ahoi2008]Meet 紧急集合
查看>>
【LATEX】个人版latex论文模板
查看>>
List<String> 和 ArrayList<String>的区别
查看>>
vue项目中对axios的全局封装
查看>>