0

ライブ壁紙に3D.objファイルをロードしてアニメーション化したい。RAJAWALIライブラリを使用してロードします。問題は、3d objファイルが正常に読み込まれ、アニメーション化されるが、一部のAndroidデバイスでは背景画像の読み込みが読み込まれないことです。コードは次のとおりです。

protected void initScene() {


    DirectionalLight localDirectionalLight = new DirectionalLight(0.0F, 0.6F, 0.4F);
localDirectionalLight.setPower(3.0F);
PointLight mLight = new PointLight();
mLight.setPosition(0, 0, 0);
mLight.setPower(13);
Plane plane = new Plane(70, 70, 1, 1, 1);
plane.addLight(mLight);
plane.setMaterial(new SimpleMaterial());
plane.addTexture(mTextureManager.addTexture(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.pozadina)));  
addChild(plane);    
plane.setZ(10);

    try
    {
      ObjParser localObjParser = new ObjParser(this.mContext.getResources(), this.mTextureManager, R.raw.allah);
      localObjParser.parse();
      this.strela = localObjParser.getParsedObject();
      this.strela.addLight(localDirectionalLight);
      if (this.tekstura == null)
      {
        BitmapFactory.Options localOptions2 = new BitmapFactory.Options();
        localOptions2.inPurgeable = true;

        this.strela.setColor(Color.WHITE);
      }
      this.strela.setScale(2.0F);
      addChild(this.strela);
      this.mCamera.setPosition(0.0F, 0.0F, -50.0F);
      this.mCamera.setFarPlane(1000.0F);
      Number3D localNumber3D = new Number3D(0.0F, 1.0F, 0.0F);
      localNumber3D.normalize();
      this.mAnim = new RotateAnimation3D(localNumber3D, 360.0F);
      this.mAnim.setDuration(10000L);
      this.mAnim.setRepeatCount(-1);
      this.mAnim.setTransformable3D(this.strela);

      return; 
    }
    catch (Exception localException)
    {
      while (true)
        localException.printStackTrace();
    }


}

SAMSUNG NEXUSandroidv4.1で問題が発生します。

どうすればそれができますか?

4

2 に答える 2

2

これはGalaxyS3でテストされ、動作しています。だからそれはあなたにもうまくいくはずです。私は自分の壁紙でそれを使用しています。これを試して:

    SimpleMaterial localSimpleMaterial = new SimpleMaterial();
    Bitmap localBitmap = BitmapFactory.decodeResource(this.mContext.getResources(), R.drawable.image);
    localSimpleMaterial.addTexture(this.mTextureManager.addTexture(localBitmap));
    Plane localPlane = new Plane(10.0F, 10.0F, 1, 1);
    localPlane.setRotZ(-90.0F);
    localPlane.setScale(3.7F);
    localPlane.setPosition(0.0F, 0.0F, 10.0F);
    localPlane.setMaterial(localSimpleMaterial);
    addChild(localPlane);

画像が2の累乗、つまり256x256、512x512などであることを確認してください。どのように機能するか教えてください。

編集:また、rajawali.mathではなくrajawali.primitivesをインポートするようにしてください

于 2013-04-26T09:41:22.773 に答える
0

問題は解決しましたか?平面がレンダリングされていないデバイスは何ですか?それらのサムスンですか?また、灰色でレンダリングされているのか、まったくレンダリングされていないのか教えてください。

解決策がミップマッピングを調整することであった同じ問題に遭遇したので、私は尋ねています。私は初心者だったので時間がかかりましたが、非常に簡単な解決策がありました。

SamsungGalaxySLの球体にテクスチャが表示されない

于 2013-04-03T13:39:08.300 に答える