コード例 #1
0
        //============================================================
        public void LoadResource(FDxRsTemplate resource)
        {
            //............................................................
            // 加载材质列表
            int materialCount = resource.Materials.Count;

            for (int n = 0; n < materialCount; n++)
            {
                // 创建几何体
                FDxRsTemplateMaterial rsMaterial = resource.Materials[n];
                FDxSpatialMaterial    material   = new FDxSpatialMaterial();
                material.Device = _device;
                material.LoadResource(rsMaterial);
                // 增加渲染对象
                _materials.Set(material.Name, material);
            }
            //............................................................
            // 加载渲染列表
            int renderableCount = resource.Renderables.Count;

            for (int n = 0; n < renderableCount; n++)
            {
                // 创建几何体
                FDxRsTemplateRenderable rsRenderable = resource.Renderables[n];
                FDxGeometry             geometry     = RDxCore.GeometryConsole.Create(_device, rsRenderable.ModelCode, rsRenderable.GeometryName);
                geometry.Display = this;
                geometry.LoadRenderable(rsRenderable);
                _geometries.Push(geometry);
                // 设置材质
                FDxSpatialMaterial material = _materials.Get(rsRenderable.MaterialCode);
                geometry.ModelMaterial = material;
                // 增加渲染对象
                _renderables.Push(geometry);
            }
        }
コード例 #2
0
        //============================================================
        public FDxSpatial Create(FDxDevice3D device, string code)
        {
            // 获得资源定义
            FDxRsTemplate resource = RDxCore.TemplateResourceConsole.Get(code);
            // 加载资源
            FDxSpatial spatial = RDxCore.Factory.Create <FDxSpatial>(EDxObject.ModelSpatial);

            spatial.Device = device;
            spatial.LoadResource(resource);
            _spatials.Push(spatial);
            return(spatial);
        }