android下导入3ds文件解决方法

网上可以搜索到很多的引擎,通过jpct—ae的引擎可以很快的解决问题,具体的代码可以参考官方的demo。

几天前写的很简陋,现在补上我学到的一些内容

class MyRenderer implements GLSurfaceView.Renderer{

……

}这是一个render的继承,是要完成渲染绘图的工作

public void onDrawFrame(GL10 gl) 将缓存中的内容画出的函数

public void onSurfaceChanged(GL10 gl, int w, int h) 界面变化时候的函数

public void onSurfaceCreated(GL10 gl, EGLConfig config) 这个是在创建的时候要执行的函数,是非常重要的

 

 

TextureManager.getInstance().flush();

先将texure管理器重的缓存清空

world = new World();

建立新的世界

Resources res = getResources();

得到资源文件

TextureManager tm = TextureManager.getInstance(); Texture manp = new Texture(res.openRawResource(R.raw.manp));        

从raw文件中读取manp(自己复制过去的文件)到texture

 

 

 

private Object3D plane = null;

建立一个Object3D的实体

plane = Loader.load3DS(res.openRawResource(R.raw.plane), 5)[0];

导入raw文件的plane中的第0个元素,可以用数组导入多个元素

plane.setTexture(name);

在palne的表面加载贴图

 

 

world.addObject(plane);加载plane到世界中

 

world.buildAllObjects();建立所有的对象

 

 

sun = new Light(world);建立灯光

 

Camera cam = world.getCamera();

cam.moveCamera(Camera.CAMERA_MOVEOUT, 250);

cam.moveCamera(Camera.CAMERA_MOVEUP, 100);

建立调整camera的位置

 

sun.setIntensity(250, 250, 250);光照强度

 

SimpleVector sv = new SimpleVector();

//sv.set(plane.getTransformedCenter());

sv.y -= 500;

sv.x -= 100;

sv.z += 200;

sun.setPosition(sv);光照位置

 

fb.clear();

world.renderScene(fb);

world.draw(fb);

//blitNumber(lfps, 5, 5);

 

fb.display();

fb是framebuffer也就是帧缓存中的东西,先清空,再将world渲染到fb中,最后display出来

 

 

还有在demo中的keyup keydown等几个函数比较简单

 

上面是最基本的一些东东,还有一些材质的以后看懂再写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值