1

min3d を使用してライブ壁紙アプリケーションに 3d オブジェクトを読み込もうとしましたが、「E/AndroidRuntime(5989): android.content.res.Resources$NotFoundException: Resource ID #0x0」という例外があります。

「sunflower_obj」と「sunflower_mlt」のファイルを「res/raw」フォルダに、「sunflower.jpg」を「res/drawable」フォルダに入れます。これが私のコードです:

package com.electricpunch.wallpaper;

import min3d.core.Object3dContainer;
import min3d.objectPrimitives.ParticleSprite;
import min3d.parser.IParser;
import min3d.parser.Parser;
import min3d.wallpaper.CommonRender;
import android.content.Context;
import android.content.res.Resources;
import android.util.Log;

public class TestRenderer extends CommonRender {

    private Context mContext;
    private float mCameraPosition;

    private Object3dContainer objModel;

    public TestRenderer(Context _context) {
        super(_context);
        this.mContext = _context;
        mCameraPosition = 0.5f;

    }

    @Override
    public void initScene() {
        IParser parser = Parser.createParser(Parser.Type.OBJ, mContext.getResources(), "com.electricpunch.wallpaper:raw/sunflower_obj", true);
        parser.parse();
        objModel = parser.getParsedObject();
        objModel.scale().x = objModel.scale().y = objModel.scale().z = .7f;
        scene.addChild(objModel);

    }

    @Override
    public void updateScene() {
        objModel.rotation().x++;
        objModel.rotation().z++;
    }

    @Override
    public void onTouchUp(int x, int y) {
        Log.i("TAG", "Touch");
    }

    @Override
    public void onOffsetsChanged(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels) {
        mCameraPosition = xOffset;
    }

}
4

1 に答える 1

1

sunflower_mltの代わりにsunflower_mtlを使用する

ResourceNotFound-Exception が発生したので、mtl+obj のテクスチャ参照もチェックします。*"newmtl sunflower.jpg"、"map_Kd sunflower.jpg"、"mtllib sunflower_mtl"、"usemtl sunflower.jpg"* のようなものにする必要があります。

于 2012-10-04T17:23:06.700 に答える