android使用min3d引擎加载模型

android使用min3d引擎加载模型

标签(空格分隔): Android


添加min3D库文件

Min3D库 下载 https://code.google.com/p/min3d/
基于Android OpenGL ES 1.1
将其中有库文件和一个案例
将库文件添加到Android项目java目录下

加载3Ds模型文件

package com.svizzera.controldisplay;

import android.os.Bundle;
import android.support.v7.view.menu.MenuBuilder;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.Toast;

import min3d.core.Object3dContainer;
import min3d.core.RendererActivity;
import min3d.parser.IParser;
import min3d.parser.Parser;
import min3d.vos.Light;

public class MainActivity extends RendererActivity {

    Object3dContainer mObject3d;
    private TextView mTextView;
    private Toolbar mToolbar;

    private float angleX = 0;
    private float angleY = 0;
    private float angleZ = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //载入XML界面
        setContentView(R.layout.activity_main);

        mToolbar = (Toolbar) findViewById(R.id.toolbar);
        mToolbar.setTitle(R.string.app_name);
        FrameLayout ll = (FrameLayout) findViewById(R.id.ll);
        ll.addView(_glSurfaceView);
    }

    @Override
    public void initScene() {
        scene.lights().add(new Light()); //设置灯光,否则一片黑,什么都看不见
        /**
         * 3Ds 模型加载
         * 3Ds文件放在\res\raw\
         * 贴图路径\res\drawable\中
         */
        IParser myParser = Parser.createParser(Parser.Type.MAX_3DS,getResources(),"com.svizzera.controldisplay:raw/mystaff",false);
        myParser.parse();
        mObject3d = myParser.getParsedObject();
        /**
         * 这个xyz设置模型的大小
         */
        mObject3d.scale().x=0.04f;
        mObject3d.scale().z=0.04f;
        mObject3d.scale().y=0.04f;
        /**
         * 设置初始位置,平截头体中xyz的坐标位置
         */
        mObject3d.position().x=0;//
        mObject3d.position().y=0;
        mObject3d.position().z=0;

        scene.camera().target = mObject3d.position();
        scene.addChild(mObject3d);  //把模型加入到场景中,这样模型才能显示
 //       mObject3d.colorMaterialEnabled(false);   //打开材质支持,默认关闭
    }

  //  @Override
 //   public boolean onCreateOptionsMenu(Menu menu) {
 //       this.getMenuInflater().inflate(R.menu.settingmenu,menu);
 //       return true;
 //   }

    @Override
    public void updateScene() {
    }
}

模型加载就是在initScene()中实现

public void initScene() {
        scene.lights().add(new Light()); //设置灯光,否则一片黑,什么都看不见
        /**
         * 3Ds 模型加载
         * 3Ds文件放在\res\raw\
         * 贴图路径\res\drawable\中
         */
        IParser myParser = Parser.createParser(Parser.Type.MAX_3DS,getResources(),"com.svizzera.controldisplay:raw/mystaff",false);
        myParser.parse();
        mObject3d = myParser.getParsedObject();
        /**
         * 这个xyz设置模型的大小
         */
        mObject3d.scale().x=0.04f;
        mObject3d.scale().z=0.04f;
        mObject3d.scale().y=0.04f;
        /**
         * 设置初始位置,平截头体中xyz的坐标位置
         */
        mObject3d.position().x=0;//
        mObject3d.position().y=0;
        mObject3d.position().z=0;

        scene.camera().target = mObject3d.position();
        scene.addChild(mObject3d);  //把模型加入到场景中,这样模型才能显示
 //       mObject3d.colorMaterialEnabled(false);   //打开材质支持,默认关闭
    }

mObject3d.colorMaterialEnabled(false); //打开材质支持,默认关闭

这个如果打开会出现一个奇怪的现象,程序在模拟器上能运行成功,到了真机运行时模型就出不来。刚开始还以为是系统的原因,然后用miui和原生系统测试还是一样的结果的。修改发现别将材质支持打开即可。
min3D感觉对3DS模型有点要求,最好用贴图包裹模型。

效果图

代码地址 https://github.com/Svizzera/Simple-min3d

要在Android使用echarts.min.js,你可以按照以下步骤进行操作: 1. 下载echarts.min.js文件:你可以从echarts官方网站(https://echarts.apache.org/zh/download.html)下载最新版本的echarts.min.js文件。 2. 将echarts.min.js文件添加到Android项目中:将下载的echarts.min.js文件拷贝到你的Android项目的assets目录下(如果没有assets目录,可以手动创建一个)。 3. 在WebView中加载echarts.min.js文件:在你的Android代码中,使用WebView加载echarts.min.js文件。以下是一个基本示例: ```java WebView webView = findViewById(R.id.webview); // 替换为你的WebView的id webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("file:///android_asset/echarts.min.js"); ``` 4. 创建HTML文件并使用echarts:在assets目录下创建一个HTML文件,例如chart.html,并在该文件中使用echarts绘制图表。以下是一个简单的示例: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts Example</title> <script src="echarts.min.js"></script> </head> <body> <div id="chart" style="width: 100%; height: 400px;"></div> <script> // 在这里使用echarts绘制图表 var chart = echarts.init(document.getElementById('chart')); var option = { // 配置项... }; chart.setOption(option); </script> </body> </html> ``` 5. 在WebView中加载HTML文件:在Android代码中,使用WebView加载创建的HTML文件。以下是一个示例: ```java webView.loadUrl("file:///android_asset/chart.html"); ``` 通过以上步骤,你就可以在Android应用中使用echarts.min.js来展示图表了。记得根据你的需求修改echarts的配置项和绘制逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值