public void Initialize() { targetCamera = GetComponent <Camera>(); if (!ReferenceEquals(targetCamera.activeTexture, null)) { targetRT = new RenderTexture(targetCamera.activeTexture.width / 2, targetCamera.activeTexture.height / 2, 0, RenderTextureFormat.ARGB32); targetRT.anisoLevel = 1; targetRT.antiAliasing = 1; targetRT.volumeDepth = 0; targetRT.useMipMap = false; targetRT.autoGenerateMips = false; targetRT.Create(); targetRT.filterMode = FilterMode.Point; //might need a way to access both point and bilinear downscaledDepthRT = new RenderTexture(targetCamera.activeTexture.width / 2, targetCamera.activeTexture.height / 2, 0, RenderTextureFormat.RFloat); downscaledDepthRT.anisoLevel = 1; downscaledDepthRT.antiAliasing = 1; downscaledDepthRT.volumeDepth = 0; downscaledDepthRT.useMipMap = false; downscaledDepthRT.autoGenerateMips = false; downscaledDepthRT.Create(); downscaledDepthRT.filterMode = FilterMode.Point; downscaleDepthMaterial = new Material(ShaderLoaderClass.FindShader("EVE/DownscaleDepth")); isInitialized = true; } }
public void Apply() { CelestialBody celestialBody = Tools.GetCelestialBody(body); if (celestialBody != null) { GameObject go = new GameObject(); materialPQS = go.AddComponent <MaterialPQS>(); macroMat = materialPQS.Apply(celestialBody, cityLightsMaterial, ShaderLoaderClass.FindShader("EVE/TerrainCityLight"), true, false); macroMat.name = materialName; macroMat.renderQueue = (int)Tools.Queue.Geometry + 1; } Transform transform = Tools.GetScaledTransform(body); if (transform != null) { Renderer r = transform.GetComponent <Renderer>(); if (r != null) { scaledMat = new Material(ShaderLoaderClass.FindShader("EVE/PlanetCityLight")); cityLightsMaterial.ApplyMaterialProperties(scaledMat); scaledMat.SetTexture("_MainTex", r.material.GetTexture("_MainTex")); scaledMat.name = materialName; scaledMat.renderQueue = (int)Tools.Queue.Geometry + 1; OverlayRenderer.Add(r.gameObject, scaledMat); ScaledCityComponent sc = transform.gameObject.AddComponent <ScaledCityComponent>(); FieldInfo field = typeof(Sun).GetFields(BindingFlags.Instance | BindingFlags.NonPublic).First( f => f.Name == "scaledSunLight"); Light slight = (Light)field.GetValue(Sun.Instance); sc.Apply(scaledMat, slight); } } LocalCityComponent lsc = FlightCamera.fetch.mainCamera.gameObject.AddComponent <LocalCityComponent>(); Light light = Sun.Instance.GetComponent <Light>(); lsc.Apply(macroMat, light); ApplyToMainMenu(); GameEvents.onGameSceneLoadRequested.Add(SceneLoaded); if (HighLogic.LoadedScene == GameScenes.MAINMENU) { ApplyToMainMenu(); } }
public void Init() { material = new Material(ShaderLoaderClass.FindShader("EVE/CompositeDeferredClouds")); Quad.Create(gameObject, 2, Color.white, Vector3.up, Mathf.Infinity); shadowMR = gameObject.AddComponent <MeshRenderer>(); material.SetOverrideTag("IgnoreProjector", "True"); shadowMR.sharedMaterial = material; shadowMR.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; shadowMR.receiveShadows = false; shadowMR.enabled = true; material.SetFloat(ShaderProperties.rendererEnabled_PROPERTY, 0f); gameObject.layer = (int)Tools.Layer.Local; }