Exemplo n.º 1
0
        /// <summary>
        /// 加载材质球
        /// </summary>
        /// <param name="url"></param>
        /// <param name="target"></param>
        /// <param name="callback"></param>
        private void LoadMaterial(string url, Transform target, LoadAssetModel loadModel, System.Action <Material> callback)
        {
            MaterialLoader.LoadAsset(target, url, loadModel, (loader) =>
            {
                ResourcesLoadTraceMgr.Instance.RecordTraceResourceInfor(loader);
                #region  加载成功后的处理逻辑
                if (loader == null || (loader.IsCompleted && loader.IsError))
                {
                    Debug.LogError("LoadMaterial   Fail,Not Exit At Path= " + url);
                    if (callback != null)
                    {
                        callback.Invoke(null);
                    }
                    return;
                }  //加载资源出错


                Material mat = loader.ResultObj as Material;

                if (callback != null)
                {
                    callback.Invoke(mat);
                }
                #endregion
            });
        }
Exemplo n.º 2
0
        private (int TextureIndex, Texture TextureData) LoadTexture(string textureName, VrfGuiContext vrfGuiContext)
        {
            var materialLoader = new MaterialLoader(vrfGuiContext.FileName, vrfGuiContext.CurrentPackage);

            var textureResource = FileExtensions.LoadFileByAnyMeansNecessary(textureName + "_c", vrfGuiContext.FileName, vrfGuiContext.CurrentPackage);

            return(materialLoader.LoadTexture(textureName), (Texture)textureResource.Blocks[BlockType.DATA]);
        }
Exemplo n.º 3
0
 public VrfGuiContext(string fileName, TreeViewWithSearchResults.TreeViewPackageTag package)
 {
     FileName       = fileName;
     CurrentPackage = package?.Package;
     ParentPackage  = package?.ParentPackage;
     MaterialLoader = new MaterialLoader(this);
     ShaderLoader   = new ShaderLoader();
     FileLoader     = new FileLoader();
 }
Exemplo n.º 4
0
        private static Material LoadComputeShader(SharpDX.Toolkit.Graphics.GraphicsDevice device)
        {
            MaterialLoader      loader = new MaterialLoader(new SharpDXGraphicsDevice(device));
            ResourceInformation info   = new MaterialResourceInformation();

            info.UpdateInformation("Filepath", "C:\\Users\\Andy\\Documents\\Coding\\Visual Studio 2012\\Projects\\FearEngine\\Resources\\Shaders\\ComputeTest.fx");
            info.UpdateInformation("Technique", "FillTexture");

            return((Material)loader.Load(info));
        }
Exemplo n.º 5
0
        private Material LoadComputeShader(FearGraphicsDevice device)
        {
            MaterialLoader      loader = new MaterialLoader(device);
            ResourceInformation info   = new MaterialResourceInformation();

            info.UpdateInformation("Filepath", "C:\\Users\\Andy\\Documents\\Coding\\Visual Studio 2012\\Projects\\FearEngine\\Resources\\Shaders\\ComputeIrradiance.fx");
            info.UpdateInformation("Technique", "ComputeIrradianceMips");

            return((Material)loader.Load(info));
        }
Exemplo n.º 6
0
 public VrfGuiContext(string fileName, TreeViewWithSearchResults.TreeViewPackageTag package)
 {
     FileName         = fileName;
     CurrentPackage   = package?.Package;
     ParentFileLoader = package?.ParentFileLoader;
     MaterialLoader   = new MaterialLoader(this);
     ShaderLoader     = new ShaderLoader();
     FileLoader       = new AdvancedGuiFileLoader(this);
     MeshBufferCache  = new GPUMeshBufferCache();
 }
Exemplo n.º 7
0
        public static Material MatWithEnding(string dirPath, string ending)
        {
            Material material = (from mat in MaterialLoader.MatsFromTexturesInFolder(dirPath)
                                 where mat.mainTexture.name.ToLower().EndsWith(ending)
                                 select mat).FirstOrDefault <Material>();

            if (material == null)
            {
                Helper.Log("MatWithEnding: Dir " + dirPath + " lacks texture ending in " + ending);
                return(BaseContent.BadMat);
            }
            return(material);
        }
Exemplo n.º 8
0
        public static void Initialise()
        {
            List <ItemMaterial> flatList = MaterialLoader.LoadMaterials();

            s_Materials = new Dictionary <string, ItemMaterial>(flatList.Count);

            foreach (ItemMaterial material in flatList)
            {
                s_Materials.Add(material.name, material);
            }

            s_Materials.Add("DEFAULT MATERIAL", new ItemMaterial("DEFAULT MATERIAL", 0.1f, 0, 1.0f));
        }
Exemplo n.º 9
0
 private void LoadAsset(string strMeshName)
 {
     if (MaterialLoader.monLoadAsset != null)
     {
         MaterialLoader.monLoadAsset(strMeshName, new AssetCallBack(this.OnFileLoaded));
     }
     else
     {
         UnityEngine.Object @object = Resources.Load(this.strAssetName);
         this.OnFileLoaded(new object[]
         {
             @object
         });
     }
 }
        public void LoadComputeShader()
        {
            //Given
            SharpDX.Toolkit.Graphics.GraphicsDevice device = SharpDX.Toolkit.Graphics.GraphicsDevice.New(DeviceCreationFlags.Debug);
            MaterialLoader      loader = new MaterialLoader(new SharpDXGraphicsDevice(device));
            ResourceInformation info   = new MaterialResourceInformation();

            info.UpdateInformation("Filepath", "C:\\Users\\Andy\\Documents\\Coding\\Visual Studio 2012\\Projects\\FearEngine\\Resources\\Shaders\\ComputeTest.fx");
            info.UpdateInformation("Technique", "FillTexture");

            //When
            Material material = (Material)loader.Load(info);

            //Then
            Assert.IsTrue(material.IsLoaded());

            device.Dispose();
        }
Exemplo n.º 11
0
    protected void LoadMaterial(string path, Action <Material> callback)
    {
        //var matLoader = new CStaticAssetLoader(path, OnLoadMaterialScript, path, matCallback);
        //ResourceLoaders.Add(matLoader);
        var mLoader = MaterialLoader.Load(path, (isOk, getMat) =>
        {
            if (isOk)
            {
                callback(getMat);
            }
            else
            {
                callback(getMat);
            }
        });

        ResourceLoaders.Add(mLoader);
    }
Exemplo n.º 12
0
        public void Start()
        {
            /* RESOURCE LIST CREATION */
#if UNITY_EDITOR
            AssetDatabase.Refresh();
            FileServices.CreateResourcesList("Assets/Resources/resourceslist.txt");
#endif
            FileServices.LoadResourcesList("resourceslist");

            #region LOAD RESOURCES
            // logger and ioc
            _logger   = new Logger("info.log", false);
            _resolver = new IoCResolver(_logger);
            _resolver.RegisterItem(_logger);

            _config = new UserConfigurationManager(new UserConfigurationData
            {
                GameVolume  = 1f,
                MusicVolume = 1f
            });
            _resolver.RegisterItem(_config);

            // messager
            _messager = new Messager();
            _resolver.RegisterItem(_messager);

            // unity reference master
            _unity = GetComponent <UnityReferenceMaster>();
            _unity.DebugModeActive = false;
            _resolver.RegisterItem(_unity);

            // player
            var player = new UserAccountManager();
            _resolver.RegisterItem(player);

            // material provider
            var materialProvider = new MaterialProvider(_logger);
            MaterialLoader.LoadMaterial(materialProvider, "Materials");
            _resolver.RegisterItem(materialProvider);

            // texture provider
            var textureProvider = new TextureProvider(_logger);
            var spriteProvider  = new SpriteProvider(_logger);
            TextureLoader.LoadTextures(textureProvider, spriteProvider, "Textures");
            _resolver.RegisterItem(textureProvider);
            _resolver.RegisterItem(spriteProvider);

            // sound provider
            var soundProvider = new SoundProvider(_logger);
            SoundLoader.LoadSounds(_logger, soundProvider, "Sounds");
            _resolver.RegisterItem(soundProvider);

            // prefab provider
            var prefabProvider = new PrefabProvider(_logger);
            PrefabLoader.LoadPrefabs(prefabProvider);
            _resolver.RegisterItem(prefabProvider);

            // pooling
            var poolingObjectManager = new PoolingObjectManager(_logger, prefabProvider);
            _resolver.RegisterItem(poolingObjectManager);

            var soundPoolManager = new PoolingAudioPlayer(_logger, _config, _unity, prefabProvider.GetPrefab("audio_source_prefab"));
            _resolver.RegisterItem(soundPoolManager);

            _particles = new PoolingParticleManager(_resolver);
            _resolver.RegisterItem(_particles);

            // canvas provider
            var canvasProvider = new CanvasProvider(_logger);
            _unity.LoadCanvases(canvasProvider);
            _resolver.RegisterItem(canvasProvider);

            // data provider
            var gameDataProvider = new GameDataProvider(_logger);

            /* DATA GOES HERE */

            _resolver.RegisterItem(gameDataProvider);
            #endregion

            _uiManager = new UiManager();
            _resolver.RegisterItem(_uiManager);

            // lock the resolver (stop any new items being registered)
            _resolver.Lock();

            /* BEGIN STATE */
            _currentState = new MenuState(_resolver);
            _currentState.Initialize();

            /* SUBSCRIBE FOR GAME END */
            _onExit = _messager.Subscribe <ExitMessage>(OnExit);
        }
Exemplo n.º 13
0
        public BaseRayEngine() {
            frameParsers = new Dictionary<Type, Action<IFrameElement>>();
            frameParsers.Add(typeof(FrameCamera), cameraItem =>
            {
                var item = (FrameCamera)cameraItem;
                Camera = new BasicPerspectiveCamera(item.Position, item.Target, item.Up, width, height) { Fov = 60 };
            });

            frameParsers.Add(typeof(FrameObjFileReference), item =>
            {
                var objFileRef = (FrameObjFileReference)item;
                var loader = new GlobalIndexObjLoader();
                scene = loader.Load(objFileRef.ObjFilePath);
                var mload = new MaterialLoader();
                mats = mload.LoadMaterials(objFileRef.MtlFilePath);

                foreach (var materialInfo in mats) {
                    if (materialInfo.Name.ToLower().Contains("glass") ||
                         materialInfo.Name.ToLower().Contains("wire_134006006")
                         ) {
                        materialInfo.Kt = materialInfo.Kd;
                        materialInfo.Kd = RgbSpectrum.ZeroSpectrum();

                        materialInfo.MediumInfo = Glass;
                    }
                    if (materialInfo.Name.ToLower().Contains("metal")) {
                        materialInfo.Kr = materialInfo.Kd;
                    }
                }
            });


            frameParsers.Add(typeof(Frame3DsFileReference), item =>
            {
                var sceneFileRef = (Frame3DsFileReference)item;
                var loader = new SceneLoader();
                scene = loader.Load(sceneFileRef.FilePath);
                mats = loader.LoadMaterials(sceneFileRef.FilePath);

                foreach (var materialInfo in mats) {
                    if (materialInfo.Name.ToLower().Contains("glass") ||
                         materialInfo.Name.ToLower().Contains("wire_134006006")
                         ) {
                        materialInfo.Kt = materialInfo.Kd;
                        materialInfo.Kd = RgbSpectrum.ZeroSpectrum();

                        materialInfo.MediumInfo = Glass;
                    }
                    if (materialInfo.Name.ToLower().Contains("metal")) {
                        materialInfo.Kr = materialInfo.Kd;
                    }
                }
                if (scene.Cameras != null && scene.Cameras.Any()) {
                    Camera = new BasicPerspectiveCamera(scene.Cameras[0].Position, scene.Cameras[0].Direction, scene.Cameras[0].Up, width, height) { Fov = scene.Cameras[0].Fov };
                }
            });


            frameParsers.Add(typeof(FrameLightsource), item =>
            {
                if (lights == null) {
                    lights = new List<ILight>();
                }
                var lightsource = (FrameLightsource)item;
                switch (lightsource.LightType) {
                    case LightSourceTypes.Point:
                        lights.Add(new PointLight(lightsource));
                        break;
                    case LightSourceTypes.EnvironmentMap:
                        lights.Add(envMap = new InfiniteLight(lightsource));
                        break;
                    case LightSourceTypes.Area:
                        //if (AreaLightAsMeshLight)
                            lights.Add(new MeshLight(lightsource));
                        break;
                }
            });
        }