| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- using UnityEngine;
- #if USING_HDRP
- using UnityEngine.Rendering.HighDefinition;
- #endif
- #if USING_URP
- using UnityEngine.Rendering.Universal;
- #endif
- namespace InTerra
- {
- public class InTerra_TracksCameraSettings
- {
- public static void SetTrackCamera(Camera trackCamera)
- {
- var updaterScript = InTerra_Data.GetUpdaterScript();
- var trackGlobalData = InTerra_Data.GetGlobalData();
- trackCamera.transform.rotation = Quaternion.Euler(-90f, 0f, 0f);
- trackCamera.clearFlags = CameraClearFlags.Color;
- trackCamera.backgroundColor = new Color(0, 0, 0, 0);
- trackCamera.cullingMask = 1 << trackGlobalData.trackLayer;
- trackCamera.orthographic = true;
- trackCamera.orthographicSize = 40;
- if (updaterScript.TrackTexture == null)
- {
- InTerra_Data.CreateTrackRenderTexture();
- }
- trackCamera.forceIntoRenderTexture = true;
- trackCamera.targetTexture = updaterScript.TrackTexture;
- trackCamera.cullingMask = 1 << trackGlobalData.trackLayer;
- trackCamera.allowHDR = false;
- trackCamera.allowDynamicResolution = false;
- trackCamera.targetTexture = updaterScript.TrackTexture;
-
-
- #if USING_HDRP
- if (!trackCamera.TryGetComponent<HDAdditionalCameraData>(out HDAdditionalCameraData hd))
- {
- InTerra_Data.Updater.AddComponent<HDAdditionalCameraData>();
- }
- var hdAdditionalCameraData = trackCamera.GetComponent<HDAdditionalCameraData>();
- hdAdditionalCameraData.clearColorMode = new HDAdditionalCameraData.ClearColorMode();
- hdAdditionalCameraData.clearColorMode = HDAdditionalCameraData.ClearColorMode.Color;
- hdAdditionalCameraData.backgroundColorHDR = new Color(0, 0, 0, 0);
- hdAdditionalCameraData.clearDepth = false;
- hdAdditionalCameraData.volumeLayerMask = 0;
- hdAdditionalCameraData.probeLayerMask = 0;
-
- hdAdditionalCameraData.customRenderingSettings = true;
- var fsm = hdAdditionalCameraData.renderingPathCustomFrameSettingsOverrideMask.mask;
- var fs = hdAdditionalCameraData.renderingPathCustomFrameSettings;
- fsm[(uint)FrameSettingsField.LitShaderMode] = true;
- fsm[(uint)FrameSettingsField.MSAAMode] = true;
- fsm[(uint)FrameSettingsField.Decals] = true;
- fsm[(uint)FrameSettingsField.TransparentPrepass] = true;
- fsm[(uint)FrameSettingsField.TransparentPostpass] = true;
- fsm[(uint)FrameSettingsField.RayTracing] = true;
- fsm[(uint)FrameSettingsField.CustomPass] = true;
- fsm[(uint)FrameSettingsField.MotionVectors] = true;
- fsm[(uint)FrameSettingsField.Refraction] = true;
- fsm[(uint)FrameSettingsField.Distortion] = true;
- fsm[(uint)FrameSettingsField.Postprocess] = true;
- fsm[(uint)FrameSettingsField.CustomPass] = true;
- fsm[(uint)FrameSettingsField.AfterPostprocess] = true;
- fsm[(uint)FrameSettingsField.ShadowMaps] = true;
- fsm[(uint)FrameSettingsField.ContactShadows] = true;
- fsm[(uint)FrameSettingsField.ScreenSpaceShadows] = true;
- fsm[(uint)FrameSettingsField.Shadowmask] = true;
- fsm[(uint)FrameSettingsField.SSR] = true;
- fsm[(uint)FrameSettingsField.SSGI] = true;
- fsm[(uint)FrameSettingsField.SSAO] = true;
- fsm[(uint)FrameSettingsField.Transmission] = true;
- fsm[(uint)FrameSettingsField.AtmosphericScattering] = true;
- fsm[(uint)FrameSettingsField.LightLayers] = true;
- fsm[(uint)FrameSettingsField.ExposureControl] = true;
- fsm[(uint)FrameSettingsField.ReflectionProbe] = true;
- fsm[(uint)FrameSettingsField.PlanarProbe] = true;
- fsm[(uint)FrameSettingsField.ReplaceDiffuseForIndirect] = true;
- fsm[(uint)FrameSettingsField.SkyReflection] = true;
- fsm[(uint)FrameSettingsField.DirectSpecularLighting] = true;
- fsm[(uint)FrameSettingsField.SubsurfaceScattering] = true;
- fsm[(uint)FrameSettingsField.FullResolutionCloudsForSky] = true;
- fsm[(uint)FrameSettingsField.VolumetricClouds] = true;
- fsm[(uint)FrameSettingsField.AsyncCompute] = true;
- fsm[(uint)FrameSettingsField.FPTLForForwardOpaque] = true;
- fsm[(uint)FrameSettingsField.BigTilePrepass] = true;
- fsm[(uint)FrameSettingsField.ComputeLightVariants] = true;
- fsm[(uint)FrameSettingsField.ComputeMaterialVariants] = true;
-
- bool setFSetting = false;
- fs.litShaderMode = LitShaderMode.Forward;
- fs.SetEnabled(FrameSettingsField.LitShaderMode, setFSetting);
- fs.SetEnabled(FrameSettingsField.MSAAMode, setFSetting);
- fs.SetEnabled(FrameSettingsField.Decals, setFSetting);
- fs.SetEnabled(FrameSettingsField.TransparentPrepass, setFSetting);
- fs.SetEnabled(FrameSettingsField.TransparentPostpass, setFSetting);
- fs.SetEnabled(FrameSettingsField.RayTracing, setFSetting);
- fs.SetEnabled(FrameSettingsField.CustomPass, setFSetting);
- fs.SetEnabled(FrameSettingsField.MotionVectors, setFSetting);
- fs.SetEnabled(FrameSettingsField.Refraction, setFSetting);
- fs.SetEnabled(FrameSettingsField.Distortion, setFSetting);
- fs.SetEnabled(FrameSettingsField.Postprocess, setFSetting);
- fs.SetEnabled(FrameSettingsField.CustomPass, setFSetting);
- fs.SetEnabled(FrameSettingsField.AfterPostprocess, setFSetting);
- fs.SetEnabled(FrameSettingsField.ShadowMaps, setFSetting);
- fs.SetEnabled(FrameSettingsField.ContactShadows, setFSetting);
- fs.SetEnabled(FrameSettingsField.ScreenSpaceShadows, setFSetting);
- fs.SetEnabled(FrameSettingsField.Shadowmask, setFSetting);
- fs.SetEnabled(FrameSettingsField.SSR, setFSetting);
- fs.SetEnabled(FrameSettingsField.SSGI, setFSetting);
- fs.SetEnabled(FrameSettingsField.SSAO, setFSetting);
- fs.SetEnabled(FrameSettingsField.Transmission, setFSetting);
- fs.SetEnabled(FrameSettingsField.AtmosphericScattering, setFSetting);
- fs.SetEnabled(FrameSettingsField.LightLayers, setFSetting);
- fs.SetEnabled(FrameSettingsField.ExposureControl, setFSetting);
- fs.SetEnabled(FrameSettingsField.ReflectionProbe, setFSetting);
- fs.SetEnabled(FrameSettingsField.PlanarProbe, setFSetting);
- fs.SetEnabled(FrameSettingsField.ReplaceDiffuseForIndirect, setFSetting);
- fs.SetEnabled(FrameSettingsField.SkyReflection, setFSetting);
- fs.SetEnabled(FrameSettingsField.DirectSpecularLighting, setFSetting);
- fs.SetEnabled(FrameSettingsField.SubsurfaceScattering, setFSetting);
- fs.SetEnabled(FrameSettingsField.FullResolutionCloudsForSky, setFSetting);
- fs.SetEnabled(FrameSettingsField.VolumetricClouds, setFSetting);
- fs.SetEnabled(FrameSettingsField.AsyncCompute, setFSetting);
- fs.SetEnabled(FrameSettingsField.FPTLForForwardOpaque, setFSetting);
- fs.SetEnabled(FrameSettingsField.BigTilePrepass, setFSetting);
- fs.SetEnabled(FrameSettingsField.ComputeLightVariants, setFSetting);
- fs.SetEnabled(FrameSettingsField.ComputeMaterialVariants, setFSetting);
- fs.SetEnabled(FrameSettingsField.CustomPass, true);
- hdAdditionalCameraData.renderingPathCustomFrameSettingsOverrideMask.mask = fsm;
- hdAdditionalCameraData.renderingPathCustomFrameSettings = fs;
- #endif
-
-
- #if USING_URP
- if (!trackCamera.TryGetComponent<UniversalAdditionalCameraData>(out UniversalAdditionalCameraData c))
- {
- InTerra_Data.Updater.AddComponent<UniversalAdditionalCameraData>();
- }
- var additionalCameraData = trackCamera.GetComponent<UniversalAdditionalCameraData>();
- additionalCameraData.antialiasing = AntialiasingMode.None;
- additionalCameraData.volumeLayerMask = 0;
- additionalCameraData.renderShadows = false;
- additionalCameraData.renderPostProcessing = false;
- additionalCameraData.renderType = CameraRenderType.Base;
- #endif
- trackCamera.enabled = true;
- }
- }
- }
|