//============================================================ // <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); } } } } }
//============================================================ // <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); } } }