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