Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Internal/2022.3/staging #8099

Merged
merged 42 commits into from
Nov 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
5c4b9c0
[Port] [2022.3] [UUM-76270] Fix resize and scrolling behavior of Cust…
svc-reach-platform-support Aug 23, 2024
3d8d833
[Port] [2022.3] Sg/uum 76198 remove context block delete option
svc-reach-platform-support Aug 23, 2024
51c7d93
[Port] [2022.3] fix camera offset in the UI editor for the RenderObje…
svc-reach-platform-support Aug 23, 2024
f315885
[VFX] Fix console error when starting Unity editor
julienamsellem Aug 26, 2024
bcfafab
[Port] [2022.3] [Unity 6][URP] Fixing an issue where Prefiltering dat…
svc-reach-platform-support Aug 27, 2024
af8acb8
[Port] [2022.3] Set no-op matrix for empty shadow-rendering.
amsXYZ Aug 28, 2024
4a9c3b6
[Port] [2022.3] SG integration: Read unexposed global properties from…
svc-reach-platform-support Aug 28, 2024
9ba66c2
[Port] [2022.3] Disable the LOD_FADE_CROSSFADE keyword in the URP mat…
svc-reach-platform-support Aug 28, 2024
87faa97
[Port] [2022.3] fix issue with EndCameraRendering being called before…
ApoorvaJ Aug 28, 2024
848d894
[Port][2022.3][HDRP] Fix issues with RTGI and RTR discrepancy when us…
pjbunity Sep 3, 2024
bc03efd
backport fix switch visual corruption
alelievr Sep 5, 2024
e6137e2
[Port] [2022.3] Only call MakeEditable on SG reimports triggered by a…
amsXYZ Sep 5, 2024
6751635
[Port] [2022.3] UniversalRenderer: Disable depth-priming for wirefram…
amsXYZ Sep 5, 2024
f5d04cb
Do not use 24 bit depth format in the Editor when Switch or Android b…
Paulm-Unity Sep 5, 2024
a3bc240
[Port] [2022.3] Sg/uum 76242 restore selection after undo
svc-reach-platform-support Sep 5, 2024
cd5be87
[Port] [2022.3] Fix a bug that Normal From Height node generates inco…
Sep 9, 2024
a9b717e
[Port] [2022.3] Fix 'Objects are trying to be loaded during a domain …
Sep 9, 2024
95ae88b
[Port] [2022.3] Fixed the BlockNode to display the name using Display…
svc-reach-platform-support Sep 10, 2024
403f40d
[Port] [2022.3] Fix a freeze when the Camera farClipPlane is set to I…
svc-reach-platform-support Sep 13, 2024
3619565
[Port] [2022.3] [HDRP] Fix sun flicker where the sun is close to clou…
mseonkim-unity Sep 13, 2024
8b6b0d3
[Port] [2022.3] Custom reflection probes without textures are no long…
svc-reach-platform-support Sep 19, 2024
bfe259f
[Port] [2022.3] [UMM-64133] Fixing hardware DRS half res downsample.
YohannVaastUnity Sep 20, 2024
852c37e
Backport UUM-29958 Wrong Blit Texture Source when using SetGlobalKeyword
RoseHirigoyen Sep 20, 2024
42aad88
[HDRP] [Backport] Fix for DOF artifact when resolution changes by DRS
Sep 30, 2024
8fd5a04
Fix UUM-77428 depth texture flickers on Adreno device when using Vuka…
skannan-rythmos Oct 1, 2024
ac8b91b
[2022][ShaderGraph] Remove exception from shader graph asset importer
Oct 7, 2024
073844f
Fix transfer of modified instanceID for URP
Adrian1066 Oct 7, 2024
278106a
[Port] [2022.3] Fix a bug that SG is reverted to its last saved state…
svc-reach-platform-support Oct 11, 2024
17dde53
[Port] [2022.3] Set the internal execute method of custom passes to v…
svc-reach-platform-support Oct 15, 2024
db1faaf
[Port] [2022.3] [VFX] Some Strip attributes don't behave correctly
gabrieldelacruz Oct 21, 2024
c3b84de
2022.3: Fix Overlay Camera Clear Depth ignored on some Android device…
Saiprasad945 Oct 21, 2024
1556aa4
[Port] [2022.3] Fix UUM-72639
svc-reach-platform-support Oct 21, 2024
4377649
[UUM-84842] Disabling HDRP 003 on PS4
christian-sasseville Oct 21, 2024
0fbf1c3
[Port] [2022.3] [UUM-64059] made ForwardLit and GBuffer passes of URP…
katana7755 Oct 23, 2024
c1786e9
[Port] [2022.3] [VFX] Render last particle in particle outputs with s…
svc-reach-platform-support Oct 24, 2024
cd52b23
[Port] [2022.3] Fix broken links and formatting in Shader Graph docs …
svc-reach-platform-support Oct 24, 2024
22bb859
[Port] [2022.3][URP] Fixing tooltips (UUM-83534)
svc-reach-platform-support Oct 28, 2024
0f6f0c2
[Unity 2022.3][URP] Fixing unset CameraToWorld matrix in shadow caste…
ellioman Oct 28, 2024
c4e6cb1
[Port] [2022.3][URP] Fixing an issue where ScreenSpaceShadows weren't…
ellioman Oct 28, 2024
d4d961c
[Port] [2022.3] [UUM-78803] Implement Main Light Direction node on bu…
svc-reach-platform-support Oct 28, 2024
df6f5c3
[Port] [2022.3] Fixed Foveated Rendering Shader Graph error on Mac
svc-reach-platform-support Oct 29, 2024
c7d5852
[Port] [2022.3] [SRPF] Fix an exception when delegate target is empty
svc-reach-platform-support Oct 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using UnityEngine;
using System;
using UnityEngine.Rendering;
using System.Text;

namespace UnityEditor.Rendering
{
Expand Down Expand Up @@ -64,7 +65,6 @@ public string NewShaderPath
List<string> m_TexturesToRemove = new List<string>();
Dictionary<string, Texture> m_TexturesToSet = new Dictionary<string, Texture>();


class KeywordFloatRename
{
public string keyword;
Expand Down Expand Up @@ -357,6 +357,72 @@ static bool ShouldUpgradeShader(Material material, HashSet<string> shaderNamesTo
return !shaderNamesToIgnore.Contains(material.shader.name);
}

/// <summary>
/// Check if the materials in the list are variants of upgradable materials, and logs a infomative message to the user..
/// </summary>
/// <param name="materialGUIDs">Array of materials GUIDs.</param>
/// <param name="upgraders">List or available upgraders.</param>
static void LogMaterialVariantMessage(string[] materialGUIDs, List<MaterialUpgrader> upgraders)
{
List<Material> materials = new List<Material>();
foreach (var guid in materialGUIDs)
materials.Add(AssetDatabase.LoadAssetAtPath<Material>(AssetDatabase.GUIDToAssetPath(guid)));

LogMaterialVariantMessage(materials, upgraders);
}

/// <summary>
/// Check if the materials in the list are variants of upgradable materials, and logs a infomative message to the user..
/// </summary>
/// <param name="objects">Array of objects.</param>
/// <param name="upgraders">List or available upgraders.</param>
static void LogMaterialVariantMessage(UnityEngine.Object[] objects, List<MaterialUpgrader> upgraders)
{
Material mat;
List<Material> materials = new List<Material>();
for (int i = 0; i<objects.Length; i++)
{
mat = objects[i] as Material;
if (mat != null)
materials.Add(mat);
}

LogMaterialVariantMessage(materials, upgraders);
}

/// <summary>
/// Check if the materials in the list are variants of upgradable materials, and logs a infomative message to the user..
/// </summary>
/// <param name="materials">List of materials.</param>
/// <param name="upgraders">List or available upgraders.</param>
static void LogMaterialVariantMessage(List<Material> materials, List<MaterialUpgrader> upgraders)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Can not upgrade Material Variants, the following assets were skipped:");
bool needsLogging = false;

Material rootMaterial;

foreach (Material material in materials)
{
if (material.isVariant)
{
rootMaterial = material;
while (rootMaterial.isVariant)
rootMaterial = rootMaterial.parent;

if (GetUpgrader(upgraders, rootMaterial) != null)
{
needsLogging = true;
sb.AppendLine($"- <a href=\"{AssetDatabase.GetAssetPath(material)}\" >{material.name}</a>, variant of {material.parent.name} with shader {rootMaterial.shader.name}.");
}
}
}

if (needsLogging)
Debug.Log(sb.ToString(), null);
}


private static bool IsNotAutomaticallyUpgradable(List<MaterialUpgrader> upgraders, Material material)
{
Expand Down Expand Up @@ -407,6 +473,8 @@ public static void UpgradeProjectFolder(List<MaterialUpgrader> upgraders, HashSe
var materialAssets = AssetDatabase.FindAssets($"t:{nameof(Material)} glob:\"**/*.mat\"");
int materialIndex = 0;

LogMaterialVariantMessage(materialAssets, upgraders);

foreach (var guid in materialAssets)
{
Material material = AssetDatabase.LoadAssetAtPath<Material>(AssetDatabase.GUIDToAssetPath(guid));
Expand All @@ -417,6 +485,9 @@ public static void UpgradeProjectFolder(List<MaterialUpgrader> upgraders, HashSe
if (!ShouldUpgradeShader(material, shaderNamesToIgnore))
continue;

if (material.isVariant)
continue;

Upgrade(material, upgraders, flags);

}
Expand Down Expand Up @@ -524,10 +595,13 @@ public static void UpgradeSelection(List<MaterialUpgrader> upgraders, HashSet<st
}

List<Material> selectedMaterials = new List<Material>(selection.Length);

LogMaterialVariantMessage(selection, upgraders);

for (int i = 0; i < selection.Length; ++i)
{
Material mat = selection[i] as Material;
if (mat != null)
if (mat != null && !mat.isVariant)
selectedMaterials.Add(mat);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ static private void DrawTriangle(CommandBuffer cmd, Material material, int shade
cmd.DrawMesh(s_TriangleMesh, Matrix4x4.identity, material, 0, shaderPass, s_PropertyBlock);
else
cmd.DrawProcedural(Matrix4x4.identity, material, shaderPass, MeshTopology.Triangles, 3, 1, s_PropertyBlock);
s_PropertyBlock.Clear();
}

static internal void DrawQuad(CommandBuffer cmd, Material material, int shaderPass)
Expand All @@ -198,6 +199,7 @@ static internal void DrawQuad(CommandBuffer cmd, Material material, int shaderPa
cmd.DrawMesh(s_QuadMesh, Matrix4x4.identity, material, 0, shaderPass, s_PropertyBlock);
else
cmd.DrawProcedural(Matrix4x4.identity, material, shaderPass, MeshTopology.Quads, 4, 1, s_PropertyBlock);
s_PropertyBlock.Clear();
}

/// <summary>
Expand Down Expand Up @@ -261,7 +263,7 @@ public static void BlitTexture(CommandBuffer cmd, RTHandle source, Vector4 scale
s_PropertyBlock.SetTexture(BlitShaderIDs._BlitTexture, source);
DrawTriangle(cmd, material, pass);
}

/// <summary>
/// Blit a RTHandle texture
/// </summary>
Expand Down Expand Up @@ -311,7 +313,7 @@ public static void BlitTexture(CommandBuffer cmd, RenderTargetIdentifier source,
cmd.SetRenderTarget(destination, loadAction, storeAction);
DrawTriangle(cmd, material, pass);
}

/// <summary>
/// Blit a Texture with a given Material. Unity uses the reference name `_BlitTexture` to bind the input texture. Set the destination parameter before using this method.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ public void Append(Delegate del)
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static int GetFuncHashCode(Delegate del)
{
return del.Method.GetHashCode() ^ RuntimeHelpers.GetHashCode(del.Target);
return del.Method.GetHashCode() ^ (del.Target != null ? RuntimeHelpers.GetHashCode(del.Target) : 0);
}

public int value => (int)m_Hash;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,48 +20,7 @@ class MaterialModificationProcessor : AssetModificationProcessor
static void OnWillCreateAsset(string asset)
{
if (asset.ToLowerInvariant().EndsWith(".mat"))
{
MaterialPostprocessor.s_CreatedAssets.Add(asset);
return;
}

// For .shadergraph assets, this is tricky since the callback will be for the .meta
// file only as we don't create it with AssetDatabase.CreateAsset but later AddObjectToAsset
// to the .shadergraph via the importer context.
// At the time the meta file is created, the .shadergraph is already present
// but Load*AtPAth(), GetMainAssetTypeAtPath() etc. won't find anything.
// The GUID is already present though, and we actually use those facts to infer we
// have a newly created shadergraph.

//
// HDMetaData subasset will be included after SG creation anyway so unlike for materials
// (cf .mat with AssetVersion in OnPostprocessAllAssets) we dont need to manually add a subasset.
// For adding them to MaterialPostprocessor.s_ImportedAssetThatNeedSaving for SaveAssetsToDisk()
// to make them editable (flag for checkout), we still detect those here, but not sure this is
// helpful as right now, even on re-import, a .shadergraph multijson is not rewritten, so only
// /Library side serialized data is actually changed (including the generated .shader that can
// also change which is why we run shadergraph reimports), and re-import from the same .shadergraph
// should be idempotent.
// In other words, there shouldn't be anything to checkout for the .shadergraph per se.
//
if (asset.ToLowerInvariant().EndsWith($".{ShaderGraphImporter.Extension}.meta"))
{
var sgPath = System.IO.Path.ChangeExtension(asset, null);
var importer = AssetImporter.GetAtPath(sgPath);
var guid = AssetDatabase.AssetPathToGUID(sgPath);
if (!String.IsNullOrEmpty(guid) && importer == null)
{
MaterialPostprocessor.s_CreatedAssets.Add(sgPath);
return;
}
}

// Like stated above, doesnt happen:
if (asset.ToLowerInvariant().EndsWith($".{ShaderGraphImporter.Extension}"))
{
MaterialPostprocessor.s_CreatedAssets.Add(asset);
return;
}
}
}

Expand Down Expand Up @@ -292,23 +251,7 @@ static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAsse
{
foreach (var asset in importedAssets)
{
// We intercept shadergraphs just to add them to s_ImportedAssetThatNeedSaving to make them editable when we save assets
if (asset.ToLowerInvariant().EndsWith($".{ShaderGraphImporter.Extension}"))
{
bool justCreated = s_CreatedAssets.Contains(asset);

if (!justCreated)
{
s_ImportedAssetThatNeedSaving.Add(asset);
s_NeedsSavingAssets = true;
}
else
{
s_CreatedAssets.Remove(asset);
}
continue;
}
else if (!asset.EndsWith(".mat", StringComparison.OrdinalIgnoreCase))
if (!asset.ToLowerInvariant().EndsWith(".mat"))
continue;

// Materials (.mat) post processing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ public float clampValue
}
[SerializeField, FormerlySerializedAs("clampValue")]
[Tooltip("Controls the clamp of intensity.")]
private ClampedFloatParameter m_ClampValue = new ClampedFloatParameter(1.0f, 0.001f, 10.0f);
private MinFloatParameter m_ClampValue = new MinFloatParameter(100.0f, 0.001f);

/// <summary>
/// Controls which version of the effect should be used.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/ShaderPass.cs.hlsl"
#define SHADERPASS SHADERPASS_DEFERRED_LIGHTING

// Disable half-precision types in the deferred lighting pass since this causes visual corruption in some cases
#define PREFER_HALF 0

#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,11 +271,7 @@ public partial class HDRenderPipeline
internal const int k_MaxLightsPerClusterCell = ShaderConfig.LightClusterMaxCellElementCount;
internal static readonly Vector3 k_BoxCullingExtentThreshold = Vector3.one * 0.01f;

#if UNITY_SWITCH
static bool k_PreferFragment = true;
#else
static bool k_PreferFragment = false;
#endif

#if !UNITY_EDITOR && UNITY_SWITCH
const bool k_HasNativeQuadSupport = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ void REPROJECT_GLOBAL_ILLUMINATION(uint3 dispatchThreadId : SV_DispatchThreadID,

if((RAYMARCHINGFALLBACKHIERARCHY_SKY & _RayMarchingFallbackHierarchy) && weight < 1.0f)
{
color += SAMPLE_TEXTURECUBE_ARRAY_LOD(_SkyTexture, s_trilinear_clamp_sampler, sampleDir, 0.0, 0).xyz * (1.0 - weight);
color += EvaluateAmbientProbe(normalData.normalWS) * (1.0 - weight);
weight = 1.0;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ public float clampValue
}
[SerializeField, FormerlySerializedAs("clampValue")]
[Tooltip("Clamps the exposed intensity, this only affects reflections on opaque objects.")]
private ClampedFloatParameter m_ClampValue = new ClampedFloatParameter(1.0f, 0.001f, 10.0f);
private MinFloatParameter m_ClampValue = new MinFloatParameter(100.0f, 0.001f);

/// <summary>
/// Enable denoising on the ray traced reflections.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -819,8 +819,12 @@ float EvaluateFinalTransmittance(float3 color, float transmittance)
// reverse the tone mapping
resultLuminance = resultLuminance / (1.0 - resultLuminance);

// By softening the transmittance attenuation curve for pixels adjacent to cloud boundaries when the luminance is super high,
// We can prevent sun flicker and improve perceptual blending. (https://www.desmos.com/calculator/vmly6erwdo)
float finalTransmittance = max(resultLuminance / luminance, pow(transmittance, 6));

// This approach only makes sense if the color is not black
return luminance > 0.0 ? lerp(transmittance, resultLuminance / luminance, _ImprovedTransmittanceBlend) : transmittance;
return luminance > 0.0 ? lerp(transmittance, finalTransmittance, _ImprovedTransmittanceBlend) : transmittance;
}

#endif // VOLUMETRIC_CLOUD_UTILITIES_H
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ void SampleBakedGI(
// We prevent to read GI only if we are not raytrace pass that are used to fill the RTGI/Mixed buffer need to be executed normaly
#if !defined(_SURFACE_TYPE_TRANSPARENT) && (SHADERPASS != SHADERPASS_RAYTRACING_INDIRECT) && (SHADERPASS != SHADERPASS_RAYTRACING_GBUFFER)
if (_IndirectDiffuseMode != INDIRECTDIFFUSEMODE_OFF
#if (SHADERPASS == SHADERPASS_GBUFER)
#if (SHADERPASS == SHADERPASS_GBUFFER)
&& _IndirectDiffuseMode != INDIRECTDIFFUSEMODE_MIXED && _ReflectionsMode != REFLECTIONSMODE_MIXED
#endif
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -580,6 +580,9 @@ Shader "HDRP/LayeredLit"
// Include
//-------------------------------------------------------------------------------------

// Disable half-precision types in the lit shader since this causes visual corruption in some cases
#define PREFER_HALF 0

#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl"
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -610,6 +610,9 @@ Shader "HDRP/LayeredLitTessellation"
// Include
//-------------------------------------------------------------------------------------

// Disable half-precision types in the lit shader since this causes visual corruption in some cases
#define PREFER_HALF 0

#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -964,7 +964,7 @@ uint DecodeFromGBuffer(uint2 positionSS, uint tileFeatureFlags, out BSDFData bsd
bsdfData.ambientOcclusion = 1.0;

// For SSGI/RTGI/Mixed and APV not using lightmap we load the content of gbuffer3 in emissive, otherwise it is lightmap/lightprobe + emissive
if (_IndirectDiffuseMode != INDIRECTDIFFUSEMODE_OFF
if ((_IndirectDiffuseMode != INDIRECTDIFFUSEMODE_OFF && _IndirectDiffuseMode != INDIRECTDIFFUSEMODE_MIXED)
#if defined(PROBE_VOLUMES_L1) || defined(PROBE_VOLUMES_L2)
|| !builtinData.isLightmap
#endif
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,9 @@ Shader "HDRP/Lit"
// Include
//-------------------------------------------------------------------------------------

// Disable half-precision types in the lit shader since this causes visual corruption in some cases
#define PREFER_HALF 0

#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl"
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/FragInputs.hlsl"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,9 @@ Shader "HDRP/LitTessellation"
// Include
//-------------------------------------------------------------------------------------

// Disable half-precision types in the lit shader since this causes visual corruption in some cases
#define PREFER_HALF 0

#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GeometricTools.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Tessellation.hlsl"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,8 @@ internal GlobalLightingQualitySettings()
public float[] RTGIRayLength = new float[s_QualitySettingCount];
/// <summary>Controls if the effect should be computed at full resolution. The array must have one entry per scalable setting level.</summary>
public bool[] RTGIFullResolution = new bool[s_QualitySettingCount];
/// <summary>Clamp value used to reduce the variance in the integration signal. The array must have one entry per scalable setting level, and elements must be between 0.001 and 10.</summary>
[Range(0.001f, 10.0f)]
/// <summary>Clamp value used to reduce the variance in the integration signal. The array must have one entry per scalable setting level, and elements must be above 0.001.</summary>
[Min(0.001f)]
public float[] RTGIClampValue = new float[s_QualitySettingCount];
/// <summary>Controls the number of ray steps for hybrid tracing. The array must have one entry per scalable setting level, and elements must above 0.</summary>
[Min(0)]
Expand All @@ -251,8 +251,8 @@ internal GlobalLightingQualitySettings()
/// <summary>Controls the length of ray traced reflection rays. The array must have one entry per scalable setting level, and elements must above 0.01.</summary>
[Min(0.01f)]
public float[] RTRRayLength = new float[s_QualitySettingCount];
/// <summary>Clamp value used to reduce the variance in the integration signal. The array must have one entry per scalable setting level, and elements must be between 0.001 and 10.</summary>
[Range(0.001f, 10.0f)]
/// <summary>Clamp value used to reduce the variance in the integration signal. The array must have one entry per scalable setting level, and elements must be above 0.001.</summary>
[Min(0.001f)]
public float[] RTRClampValue = new float[s_QualitySettingCount];
/// <summary>Controls if the effect should be computed at full resolution. The array must have one entry per scalable setting level.</summary>
public bool[] RTRFullResolution = new bool[s_QualitySettingCount];
Expand Down
Loading