예제 #1
0
 //============================================================
 // <T>加载配置信息。</T>
 //
 // @param xconfig 配置信息
 //============================================================
 public void LoadConfig(FXmlNode xconfig)
 {
     // 获得属性
     _source   = xconfig.Get("source");
     _template = RContent3dManager.TemplateConsole.Find(_source);
     if (null == _template)
     {
         RMoCore.TrackConsole.Write(this, "LoadConfig", "Template is not exists. (scene={0}, template={1})", _scene.Name, _source);
     }
     // 获得节点集合
     foreach (FXmlNode xnode in xconfig.Nodes)
     {
         // 加载矩阵
         if (xnode.IsName("Matrix"))
         {
             _modelMatrix.LoadSingleConfig(xnode);
         }
         // 加载动画集合
         if (xnode.IsName("Movies"))
         {
             foreach (FXmlNode xmovie in xnode.Nodes)
             {
                 if (xmovie.IsName("Movie"))
                 {
                     FDrSceneMovie movie = new FDrSceneMovie();
                     movie.LoadConfig(xmovie);
                     _movies.Push(movie);
                 }
             }
         }
         // 加载材质集合
         if (xnode.IsName("Materials"))
         {
             foreach (FXmlNode xmaterial in xnode.Nodes)
             {
                 if (xmaterial.IsName("Material"))
                 {
                     FDrSceneMaterial material = new FDrSceneMaterial();
                     material.Scene = _scene;
                     material.LoadConfig(xmaterial);
                     _materials.Push(material);
                 }
             }
         }
         // 加载渲染集合
         if (xnode.IsName("Renderables"))
         {
             foreach (FXmlNode xrenderable in xnode.Nodes)
             {
                 if (xrenderable.IsName("Renderables"))
                 {
                     FDrSceneRenderable renderable = new FDrSceneRenderable();
                     renderable.LoadConfig(xrenderable);
                     _renderables.Push(renderable);
                 }
             }
         }
     }
 }
예제 #2
0
 //============================================================
 // <T>加载配置信息。</T>
 //
 // @param xconfig 配置信息
 //============================================================
 public void LoadConfig(FXmlNode xconfig)
 {
     // 读取属性
     _typeName = xconfig.Get("type_name");
     // 读取配置
     if (xconfig.Contains("option_track"))
     {
         _optionTrack = xconfig.GetInteger("option_track");
     }
     // 读取节点集合
     foreach (FXmlNode xnode in xconfig.Nodes)
     {
         // 读取阴影
         if (xnode.IsName("Shadow"))
         {
             _shadow1.LoadConfig(xnode, "1");
             _shadow2.LoadConfig(xnode, "2");
             _shadow3.LoadConfig(xnode, "3");
             _shadowAmbientMin   = xnode.GetFloat("ambient_min", _shadowAmbientMin);
             _shadowAmbientMax   = xnode.GetFloat("ambient_max", _shadowAmbientMax);
             _shadowAmbientThick = xnode.GetFloat("ambient_thick", _shadowAmbientThick);
             _shadowAmbientRange = xnode.GetFloat("ambient_range", _shadowAmbientRange);
             _shadowMerge1Base   = xnode.GetFloat("merge1_base", _shadowMerge1Base);
             _shadowMerge1Rate   = xnode.GetFloat("merge1_rate", _shadowMerge1Rate);
             _shadowMerge2Base   = xnode.GetFloat("merge2_base", _shadowMerge2Base);
             _shadowMerge2Rate   = xnode.GetFloat("merge2_rate", _shadowMerge2Rate);
         }
         // 读取材质
         if (xnode.IsName("Material"))
         {
             _material.LoadConfig(xnode);
         }
         // 读取相机
         if (xnode.IsName("Camera"))
         {
             _camera.LoadConfig(xnode);
         }
     }
 }