示例#1
0
 private static Material LoadMaterialFromNode(XmlNode _node, SceneBase scene, SceneItem item)
 {
     String _materialSource = _node.Attributes["materialSource"].InnerText;
     String _materialRef = _node.Attributes["materialRef"].InnerText;
     Material _returnMaterial = null;
     if (_materialSource.ToUpper() == "LOCAL")
     {
         _returnMaterial = scene.GetMaterial(_materialRef);
     }
     else if (_materialSource.ToUpper() == "GLOBAL")
     {
         _returnMaterial = SceneManager.GlobalDataHolder.GetMaterial(_materialRef);
     }
     else if (_materialSource.ToUpper() == "EMBEDDED")
     {
         _returnMaterial = SceneManager.GetEmbeddedMaterial(_materialRef);
     }
     if (_returnMaterial != null)
     {
         return _returnMaterial;
     }
     else
     {
         throw new Exception("The SceneItem \"" + item.Name + "\" is trying to use an invalid material: ["
             + _materialSource.ToUpper() + "] \"" + _materialRef + "\"");
     }
 }
示例#2
0
 private static Material GetMaterialAssetFromNode(XmlNode node, SceneBase scene)
 {
     string _materialSource = node.Attributes["materialSource"].InnerText;
     string _matRef = "";
     if (node.Attributes["materialRef"] != null)
         _matRef = node.Attributes["materialRef"].InnerText;
     else
         _matRef = node.InnerText;
     if (_materialSource.ToUpper() == "LOCAL")
         return scene.GetMaterial(_matRef);
     else if (_materialSource.ToUpper() == "GLOBAL")
         return SceneManager.GlobalDataHolder.GetMaterial(_matRef);
     else if (_materialSource.ToUpper() == "EMBEDDED")
         return SceneManager.GetEmbeddedMaterial(_matRef);
     else
         return null;
 }