В настоящее время я работаю над проектом AR, основанный на исходной программе Tutorial 8 - Marker Tracking, предоставленной GoblinXNA. У меня была игра с ним и заменила модели некоторыми из моих собственных проектов, сохраненных как формат .fbx. Проблема, которую я испытываю, заключается в том, что расширение .Diffuse заменяет исходные цвета модели красным; изменение цвета не имеет значения, только меняя цвет и не позволяя мне иметь оригинальный внешний вид моделей, а удаление строки кода .Diffuse только приводит к тому, что модель превращается в оттенки серого и черного (я предполагаю, что это что-то делать с методом CreateLights()?)Извлечение. Рассеяние цветов из модели FBX
В любом случае, вот код формы объекта; Любая помощь приветствуется!
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);
}