0

私は現在、GoblinXNAが提供するオリジナルの「チュートリアル8-マーカー追跡」プログラムに基づいたARプロジェクトに取り組んでいます。私はそれをいじってみて、モデルを.fbx形式で保存された独自のデザインのいくつかに置き換えました。私が抱えている問題は、.Diffuse拡張子がモデルの元の色を赤に置き換えていることです。色を変更しても違いはありません。色を変更するだけで、モデルを元の外観にすることはできません。コードの.Diffuse行を削除すると、モデルはグレーと黒の色合いになります(これはCreateLights()メソッドを使用しますか?)

いずれにせよ、これがオブジェクトからのコードです。どんな助けでも大歓迎です!

    ModelLoader mLoader = new ModelLoader(); //self explanatory
    Model flagModel = (Model)mLoader.Load("", "FlagModelAsset2");

    flagNode = new GeometryNode("FlagModelAsset2");
    flagNode.Model = flagModel;
    flagNode.AddToPhysicsEngine = true;
    flagNode.Physics.Shape = ShapeType.Box;
    flagNode.Model.ShadowAttribute = ShadowAttribute.ReceiveCast;
    flagNode.Model.Shader = new SimpleShadowShader(scene.ShadowMap);

    //TransformNode flagTransNode = new TransformNode();
    //flagTransNode.Translation = new Vector3(0, 0, 0); //position of flag
    //flagTransNode.Scale = new Vector3(1f, 1f, 1f); //size of flag

    toolbarMarkerNode = new MarkerNode(scene.MarkerTracker, "ALVARToolbar.xml");

    Material flagMaterial = new Material();
    flagMaterial.Diffuse = new Vector4(0.5f, 2, 0, 1); //colour of flag
    flagMaterial.Specular = Color.White.ToVector4();
    flagMaterial.SpecularPower = 10;

    flagNode.Material = flagMaterial;

    groundMarkerNode.AddChild(flagNode);
    scene.RootNode.AddChild(toolbarMarkerNode);
    //flagNode.AddChild(flagTransNode);            


    NewtonPhysics.CollisionPair pair = new NewtonPhysics.CollisionPair(flagNode.Physics, sphereNode.Physics);
    ((NewtonPhysics)scene.PhysicsEngine).AddCollisionCallback(pair, BoxSphereCollision);
}
4

1 に答える 1

0

それは材料でした。これを削除して以下のコードを追加すると、元のインポートされたファイルのテクスチャを使用できるようになります

((Model)flagNode.Model).UseInternalMaterials = true;
于 2013-03-05T17:06:39.850 に答える