从FBX模型中移除漫射颜色

本文关键字:颜色 FBX 模型 | 更新日期: 2023-09-27 18:01:47

我目前正在研究一个AR项目,基于GoblinXNA提供的原始'教程8 -标记跟踪'程序。我试了一下,用我自己的设计替换了一些模型,保存为。fbx格式。我遇到的问题是扩散扩展用红色替换了模型的原始颜色;改变颜色没有区别,只改变颜色,不允许我有模型的原始外观,并删除。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);
}

从FBX模型中移除漫射颜色

是材料;删除它并添加下面的代码允许使用原始导入文件

中的纹理
((Model)flagNode.Model).UseInternalMaterials = true;