private void AddSceneStreaming(VirtualMaterial vm, int clusterCount) { foreach (var s in res.clusterProperties) { if (s.name == sceneName) { res.clusterProperties.Remove(s); break; } } SceneStreaming ss = new SceneStreaming(); ss.name = sceneName; ss.vm = vm; ss.clusterCount = clusterCount; res.clusterProperties.Add(ss); }
public void LoadScene(string name) { ClusterResources res = _asset.res; SceneStreaming ss = res.GetSceneStreaming(name); if (ss == null) { Debug.LogError("没有取到场景资源,请检查ClusterMatResource"); } VirtualMaterial vm = ss.vm; _properties = vm.allProperties.ToArray(); _perprotiesBuffer = new ComputeBuffer(_properties.Length, sizeof(MaterialProperties)); _perprotiesBuffer.SetData(_properties); for (int i = 0; i < vm.albedoIDs.Count; i++) { string texPath = "Scenes/" + name + ClusterComponents.PATH_TEX + vm.albedoNames[i]; Texture texture = ResourceManager.instance.Load <Texture>(texPath); Shader.SetGlobalTexture(vm.albedoIDs[i].ToString(), texture); } }
public int GetClusterCount(string name) { SceneStreaming ss = GetSceneStreaming(name); return(ss.clusterCount); }