// Use this for initialization void Start() { m_VolFog = GetComponentInChildren <VolumetricLight>(); m_fDefualtVolFogHeight = m_VolFog.HeightScale; m_Player = GameManager.Instance.m_Player; m_VolFogBugFix = StartCoroutine(VolFogBugFix()); }
public void InitMesh(VolumetricLight light) { if (!m_IsSupport) { return; } MeshRenderer renderer = light.gameObject.GetComponent <MeshRenderer>(); if (!renderer) { renderer = light.gameObject.AddComponent <MeshRenderer>(); } MeshFilter meshfilter = light.gameObject.GetComponent <MeshFilter>(); if (!meshfilter) { meshfilter = light.gameObject.AddComponent <MeshFilter>(); } m_LightMaterial = new Material(m_LightShader); renderer.sharedMaterial = m_LightMaterial; lightMesh = new Mesh(); lightMesh.MarkDynamic(); meshfilter.sharedMesh = lightMesh; OnInit(light); }
public int AddVolumetricLight(VolumetricLight light) { int index = 0; if (!volumetricLights.Contains(light) && light != null) { _lightDepthTextures.Add(light.renderTex); volumetricLights.Add(light); _numLights++; if (_lightDepthTexArr != null) { if (Application.isEditor) { DestroyImmediate(_lightDepthTexArr); } else { Destroy(_lightDepthTexArr); } _lightDepthTexArr = null; } index = volumetricLights.Count - 1; } else { index = volumetricLights.IndexOf(light); } UpdateLightVariables(); return(index); }
void OnEnable() { m_Target = (VolumetricLight)target; m_CullingMask = serializedObject.FindProperty("m_CullingMask"); m_Quality = serializedObject.FindProperty("m_Quality"); m_VertexBased = serializedObject.FindProperty("m_VertexBased"); m_Subdivision = serializedObject.FindProperty("m_Subdivision"); }
// Start is called before the first frame update void Start() { batteryCount = GameObject.FindGameObjectsWithTag("Battery").Length; layerMask = 1 << 8; layerMask = ~layerMask; source = GetComponent <VolumetricLight>(); bounce = GetComponent <Light>(); bounce = transform.GetChild(1).gameObject.GetComponent <Light>(); bounce.enabled = false; source.enabled = false; }
public void InitCamera(VolumetricLight light) { if (!m_IsSupport) { return; } m_InternalShadowMapID = Shader.PropertyToID("internalShadowMap"); if (m_DepthRenderCamera == null) { m_DepthRenderCamera = light.gameObject.GetComponent <Camera>(); if (m_DepthRenderCamera == null) { m_DepthRenderCamera = light.gameObject.AddComponent <Camera>(); } m_DepthRenderCamera.hideFlags = HideFlags.HideInHierarchy | HideFlags.HideInInspector; m_DepthRenderCamera.aspect = light.aspect; m_DepthRenderCamera.backgroundColor = new Color(0, 0, 0, 0); m_DepthRenderCamera.clearFlags = CameraClearFlags.SolidColor; m_DepthRenderCamera.depth = 0; m_DepthRenderCamera.farClipPlane = light.range; m_DepthRenderCamera.nearClipPlane = 0.01f; m_DepthRenderCamera.fieldOfView = light.angle; m_DepthRenderCamera.orthographic = light.directional; m_DepthRenderCamera.orthographicSize = light.size; m_DepthRenderCamera.cullingMask = light.cullingMask; m_DepthRenderCamera.SetReplacementShader(m_ShadowRenderShader, "RenderType"); } if (m_ShadowMap == null) { int size = 0; switch (light.quality) { case VolumetricLight.Quality.High: case VolumetricLight.Quality.Middle: size = 1024; break; case VolumetricLight.Quality.Low: size = 512; break; } m_ShadowMap = new RenderTexture(size, size, 16); m_DepthRenderCamera.targetTexture = m_ShadowMap; Shader.SetGlobalTexture(m_InternalShadowMapID, m_ShadowMap); } }
// Use this for initialization void Start() { fLightRange = pVolumetricLight.range; pVolumetricLight.spotAngle = 120.0f; pVolumetricLight.intensity = 0.1f; pVolumetricLight.shadowStrength = 1.0f; pVolumetricLight.shadowBias = 0.0f; pVolumetricLight.shadowNormalBias = 0.0f; pVolumetricLight.shadowNearPlane = 0.1f; VolLightClass = pVolumetricLight.GetComponent <VolumetricLight>(); VolLightClass.SampleCount = 16; VolLightClass.SkyboxExtinctionCoef = 0.0f; DefSunColor = (Color32)pVolumetricLight.color; SunColor = new Color32(255, 141, 76, 255); }
static void Prefix(VolumetricLight __instance) { VolumetricLight VolumetricPatcher = __instance as VolumetricLight; if (PatchConfigs.I_Have_A_Strong_PC_And_GPU == true) { VolumetricPatcher.SampleCount = 4; // 1; VolumetricPatcher.MaxRayLength = 200.0f; // 200.0f; } else { VolumetricPatcher.SampleCount = 2; // 1; VolumetricPatcher.MaxRayLength = 100.0f; // 200.0f; } VolumetricPatcher.ExtinctionCoef = 0.012f; // 0.0211f; VolumetricPatcher.MieG = 0.25f; // 0.321f; VolumetricPatcher.ScatteringCoef = 0.12f; // 0.176f; VolumetricPatcher.SkyboxExtinctionCoef = 0.01f; // 0.246f; }
public void RemoveVolumetricLight(VolumetricLight light) { if (volumetricLights.Contains(light)) { _lightDepthTextures.Remove(light.renderTex); volumetricLights.Remove(light); _numLights--; } if (_lightDepthTexArr != null) { if (Application.isEditor) { DestroyImmediate(_lightDepthTexArr); } else { Destroy(_lightDepthTexArr); } _lightDepthTexArr = null; } UpdateLightVariables(); }
protected virtual void OnInit(VolumetricLight light) { }