首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从FBX模型中删除.Diffuse颜色

从FBX模型中删除.Diffuse颜色
EN

Stack Overflow用户
提问于 2013-03-01 19:36:02
回答 1查看 144关注 0票数 0

我目前正在做一个AR项目,基于GoblinXNA提供的原始‘教程8-标记跟踪’程序。我已经解决了这个问题,并用我自己的一些设计替换了模型,保存为.fbx格式。我遇到的问题是,.Diffuse扩展用红色替换了模型的原始颜色;更改颜色没有任何区别,只更改了颜色,不允许模型具有原始外观,删除.Diffuse代码行只会使模型变成灰色和黑色的阴影(我猜这与CreateLights()方法有关?)

在任何情况下,以下是对象的代码形式;任何帮助都将不胜感激!

代码语言:javascript
复制
    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);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-06 01:06:40

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

代码语言:javascript
复制
((Model)flagNode.Model).UseInternalMaterials = true;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15156776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档