Files
Bachelor-Arbeit-Adrian-Haefner/Library/PackageCache/com.unity.xr.arfoundation@ef86c118adc4/Runtime/Simulation/Environment/SimulationRenderSettings.cs
adriadri6972 d3d9c5f833 upload project
2025-07-31 15:21:08 +02:00

129 lines
4.5 KiB
C#

using System;
using UnityEngine.Rendering;
namespace UnityEngine.XR.Simulation
{
[Serializable]
class SimulationRenderSettings
{
[SerializeField]
AmbientMode m_AmbientMode = AmbientMode.Skybox;
[SerializeField]
Color m_AmbientSkyColor = new(0.212f, 0.227f, 0.259f);
[SerializeField]
Color m_AmbientEquatorColor = new(0.115f, 0.125f, 0.135f);
[SerializeField]
Color m_AmbientGroundColor = new(0.047f, 0.045f, 0.035f);
[SerializeField]
float m_AmbientIntensity = 1f;
[SerializeField]
Color m_AmbientLight = new(0.212f, 0.227f, 0.259f);
[SerializeField]
Color m_SubtractiveShadowColor = new(0.42f, 0.478f, 0.627f);
[SerializeField]
float m_ReflectionIntensity = 1f;
[SerializeField]
int m_ReflectionBounces = 1;
[SerializeField]
DefaultReflectionMode m_DefaultReflectionMode = DefaultReflectionMode.Skybox;
[SerializeField]
int m_DefaultReflectionResolution = 128;
[SerializeField]
float m_HaloStrength = 0.5f;
[SerializeField]
float m_FlareStrength = 1f;
[SerializeField]
float m_FlareFadeSpeed = 3f;
#pragma warning disable 649
[SerializeField]
Material m_Skybox;
[SerializeField]
Texture m_CustomReflection;
[SerializeField]
bool m_UseSceneSun;
[SerializeField]
Light m_Sun;
[SerializeField]
SphericalHarmonicsL2 m_AmbientProbe;
#pragma warning restore 649
Light m_SceneSun;
SphericalHarmonicsL2 m_SceneAmbientProbe;
AmbientMode m_SceneAmbientMode;
public void UseSceneRenderSettings()
{
m_AmbientSkyColor = RenderSettings.ambientSkyColor;
m_AmbientEquatorColor = RenderSettings.ambientEquatorColor;
m_AmbientGroundColor = RenderSettings.ambientGroundColor;
m_AmbientIntensity = RenderSettings.ambientIntensity;
m_AmbientLight = RenderSettings.ambientLight;
m_SubtractiveShadowColor = RenderSettings.subtractiveShadowColor;
m_Skybox = RenderSettings.skybox;
m_CustomReflection = RenderSettings.customReflectionTexture;
m_ReflectionIntensity = RenderSettings.reflectionIntensity;
m_ReflectionBounces = RenderSettings.reflectionBounces;
m_DefaultReflectionMode = RenderSettings.defaultReflectionMode;
m_DefaultReflectionResolution = RenderSettings.defaultReflectionResolution;
m_HaloStrength = RenderSettings.haloStrength;
m_FlareStrength = RenderSettings.flareStrength;
m_FlareFadeSpeed = RenderSettings.flareFadeSpeed;
m_UseSceneSun = true;
UpdateUsingSunSceneRenderSettingsValues();
}
public void ApplyTempRenderSettings()
{
UpdateUsingSunSceneRenderSettingsValues();
RenderSettings.ambientMode = m_UseSceneSun ? m_SceneAmbientMode : m_AmbientMode;
RenderSettings.ambientSkyColor = m_AmbientSkyColor;
RenderSettings.ambientEquatorColor = m_AmbientEquatorColor;
RenderSettings.ambientGroundColor = m_AmbientGroundColor;
RenderSettings.ambientIntensity = m_AmbientIntensity;
RenderSettings.ambientLight = m_AmbientLight;
RenderSettings.subtractiveShadowColor = m_SubtractiveShadowColor;
RenderSettings.skybox = m_Skybox;
RenderSettings.sun = m_UseSceneSun ? m_SceneSun : m_Sun;
RenderSettings.ambientProbe = m_UseSceneSun ? m_SceneAmbientProbe : m_AmbientProbe;
RenderSettings.customReflectionTexture = m_CustomReflection;
RenderSettings.reflectionIntensity = m_ReflectionIntensity;
RenderSettings.reflectionBounces = m_ReflectionBounces;
RenderSettings.defaultReflectionMode = m_DefaultReflectionMode;
RenderSettings.defaultReflectionResolution = m_DefaultReflectionResolution;
RenderSettings.haloStrength = m_HaloStrength;
RenderSettings.flareStrength = m_FlareStrength;
RenderSettings.flareFadeSpeed = m_FlareFadeSpeed;
}
void UpdateUsingSunSceneRenderSettingsValues()
{
if (!m_UseSceneSun)
return;
m_SceneSun = RenderSettings.sun;
m_SceneAmbientProbe = RenderSettings.ambientProbe;
m_SceneAmbientMode = RenderSettings.ambientMode;
}
}
}