diff --git a/TestProjects/HDRP_PerformanceTests/Assets/PerformanceTests/Editor/HDReflectionSystemTests.cs b/TestProjects/HDRP_PerformanceTests/Assets/PerformanceTests/Editor/HDReflectionSystemTests.cs new file mode 100644 index 00000000000..1e7f0dfcc0c --- /dev/null +++ b/TestProjects/HDRP_PerformanceTests/Assets/PerformanceTests/Editor/HDReflectionSystemTests.cs @@ -0,0 +1,52 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor.Rendering; +using UnityEngine.TestTools; +using NUnit.Framework; +using System.Text.RegularExpressions; +using System.Globalization; +using System.Threading; +using Unity.PerformanceTesting; +using UnityEditor.Rendering.HighDefinition; +using UnityEngine.Rendering; +using UnityEngine.Rendering.HighDefinition; +using static PerformanceTestUtils; +using static PerformanceMetricNames; + +public class HDReflectionSystemTests : EditorPerformanceTests +{ + [Version("1"), Test, Performance] + public void HDProbeSystemRegister() + { + using (ListPool.Get(out var probes)) + { + // Create a lot of probe + for (var i = 0; i < 10000; ++i) + { + var gameObject = new GameObject(i.ToString("0000")); + // Deactivate the GameObject to avoid OnEnable calls (which register the probe) + gameObject.SetActive(false); + gameObject.AddComponent(); + var probe = gameObject.AddComponent(); + probe.enabled = false; + probes.Add(probe); + } + + // Measure registration + Measure.Method(() => + { + foreach (var probe in probes) + HDProbeSystem.RegisterProbe(probe); + }).Run(); + + // Unregister + foreach (var probe in probes) + HDProbeSystem.UnregisterProbe(probe); + + // Delete the probes + foreach (var probe in probes) + Object.DestroyImmediate(probe.gameObject); + } + } +} diff --git a/TestProjects/HDRP_PerformanceTests/Assets/PerformanceTests/Editor/HDReflectionSystemTests.cs.meta b/TestProjects/HDRP_PerformanceTests/Assets/PerformanceTests/Editor/HDReflectionSystemTests.cs.meta new file mode 100644 index 00000000000..bf2dcfddbaa --- /dev/null +++ b/TestProjects/HDRP_PerformanceTests/Assets/PerformanceTests/Editor/HDReflectionSystemTests.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 34a610b21c88b5947a1780a1175ca3e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Common/Textures/bushalpha.gif b/TestProjects/HDRP_Tests/Assets/GraphicTests/Common/Textures/bushalpha.gif new file mode 100644 index 00000000000..119aa447a2c --- /dev/null +++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Common/Textures/bushalpha.gif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53847770c80865ea05e06d3aa3d31802d608ca2521e77a6d0fb078bba5ab153b +size 118738 diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Common/Textures/bushalpha.gif.meta b/TestProjects/HDRP_Tests/Assets/GraphicTests/Common/Textures/bushalpha.gif.meta new file mode 100644 index 00000000000..cf0a5a4f8c8 --- /dev/null +++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Common/Textures/bushalpha.gif.meta @@ -0,0 +1,94 @@ +fileFormatVersion: 2 +guid: ba79e8f27cb96c4478d73e1dc76663a6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF.unity b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF.unity index 229863e9ebc..a7d0b177ba3 100644 --- a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF.unity +++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF.unity @@ -43,7 +43,7 @@ RenderSettings: --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 11 + serializedVersion: 12 m_GIWorkflowMode: 1 m_GISettings: serializedVersion: 2 @@ -98,7 +98,7 @@ LightmapSettings: m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} - m_UseShadowmask: 1 + m_LightingSettings: {fileID: 0} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -118,6 +118,8 @@ NavMeshSettings: manualTileSize: 0 tileSize: 256 accuratePlacement: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 debug: m_Flags: 0 m_NavMeshData: {fileID: 0} @@ -182,6 +184,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -206,6 +209,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1704810 MeshFilter: m_ObjectHideFlags: 0 @@ -275,6 +279,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -299,6 +304,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &20353147 MeshFilter: m_ObjectHideFlags: 0 @@ -368,6 +374,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -392,6 +399,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &37278073 MeshFilter: m_ObjectHideFlags: 0 @@ -455,6 +463,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -479,6 +488,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &38485855 Transform: m_ObjectHideFlags: 0 @@ -540,6 +550,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -564,6 +575,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &41917319 MeshFilter: m_ObjectHideFlags: 0 @@ -759,6 +771,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -849,17 +862,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -874,6 +888,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -888,9 +903,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -899,12 +916,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &47768815 GameObject: m_ObjectHideFlags: 0 @@ -976,6 +1005,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1000,6 +1030,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &49616981 GameObject: m_ObjectHideFlags: 0 @@ -1061,6 +1092,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1085,6 +1117,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &49616985 MeshFilter: m_ObjectHideFlags: 0 @@ -1190,7 +1223,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 6 + m_Version: 7 m_ObsoleteRenderingPath: 0 m_ObsoleteFrameSettings: overrides: 0 @@ -1248,6 +1281,12 @@ MonoBehaviour: SMAAQuality: 2 dithering: 0 stopNaNs: 0 + taaSharpenStrength: 0.5 + TAAQuality: 1 + taaHistorySharpening: 0.35 + taaAntiFlicker: 0.5 + taaMotionVectorRejection: 0 + taaAntiHistoryRinging: 0 physicalParameters: m_Iso: 200 m_ShutterSpeed: 0.005 @@ -1257,6 +1296,7 @@ MonoBehaviour: m_BarrelClipping: 0.25 m_Anamorphism: 0 flipYMode: 0 + xrRendering: 1 fullscreenPassthrough: 0 allowDynamicResolution: 0 customRenderingSettings: 0 @@ -1264,14 +1304,21 @@ MonoBehaviour: probeLayerMask: serializedVersion: 2 m_Bits: 4294967295 + hasPersistentHistory: 0 m_RenderingPathCustomFrameSettings: bitDatas: - data1: 69456063627037 + data1: 70005819440989 data2: 4539628424926265344 lodBias: 1 lodBiasMode: 0 + lodBiasQualityLevel: 0 maximumLODLevel: 0 maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 + materialQuality: 0 renderingPathCustomFrameSettingsOverrideMask: mask: data1: 0 @@ -1294,11 +1341,15 @@ MonoBehaviour: TargetHeight: 560 PerPixelCorrectnessThreshold: 0.001 AverageCorrectnessThreshold: 0.0001 + UseHDR: 0 doBeforeTest: m_PersistentCalls: m_Calls: [] captureFramerate: 0 waitFrames: 0 + xrCompatible: 1 + xrThresholdMultiplier: 1 + checkMemoryAllocation: 1 renderPipelineAsset: {fileID: 11400000, guid: d7fe5f39d2c099a4ea1f1f610af309d7, type: 2} --- !u!1 &82468730 @@ -1372,6 +1423,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1396,6 +1448,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &102081030 GameObject: m_ObjectHideFlags: 0 @@ -1465,6 +1518,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1489,6 +1543,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &115985703 GameObject: m_ObjectHideFlags: 0 @@ -1558,6 +1613,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1582,6 +1638,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &126187769 GameObject: m_ObjectHideFlags: 0 @@ -1643,6 +1700,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1667,6 +1725,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &126187773 MeshFilter: m_ObjectHideFlags: 0 @@ -1848,6 +1907,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -1938,17 +1998,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -1963,6 +2024,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -1977,9 +2039,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -1988,12 +2052,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &140724492 GameObject: m_ObjectHideFlags: 0 @@ -2063,6 +2139,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2087,6 +2164,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!21 &153968511 Material: serializedVersion: 6 @@ -2260,6 +2338,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -2350,17 +2429,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -2375,6 +2455,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -2389,9 +2470,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -2400,12 +2483,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &164541262 GameObject: m_ObjectHideFlags: 0 @@ -2463,6 +2558,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2487,6 +2583,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &164541265 Transform: m_ObjectHideFlags: 0 @@ -2556,6 +2653,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2580,6 +2678,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &167047107 Transform: m_ObjectHideFlags: 0 @@ -2767,6 +2866,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -2857,17 +2957,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -2882,6 +2983,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -2896,9 +2998,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -2907,12 +3011,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &214093414 GameObject: m_ObjectHideFlags: 0 @@ -2956,9 +3072,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &214093417 MeshRenderer: @@ -2975,6 +3091,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -2999,6 +3116,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &214093418 MeshFilter: m_ObjectHideFlags: 0 @@ -3068,6 +3186,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3092,6 +3211,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &225496980 MeshFilter: m_ObjectHideFlags: 0 @@ -3273,6 +3393,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -3363,17 +3484,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -3388,6 +3510,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -3402,9 +3525,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -3413,12 +3538,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &265609860 GameObject: m_ObjectHideFlags: 0 @@ -3474,6 +3611,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3498,6 +3636,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &265609863 Transform: m_ObjectHideFlags: 0 @@ -3567,6 +3706,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3591,6 +3731,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &275760672 Transform: m_ObjectHideFlags: 0 @@ -3674,6 +3815,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3698,6 +3840,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &318085184 GameObject: m_ObjectHideFlags: 0 @@ -3741,9 +3884,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &318085187 MeshRenderer: @@ -3760,6 +3903,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3784,6 +3928,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &318085188 MeshFilter: m_ObjectHideFlags: 0 @@ -3849,6 +3994,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3873,6 +4019,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &322748704 Transform: m_ObjectHideFlags: 0 @@ -3942,6 +4089,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -3966,6 +4114,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &323809367 Transform: m_ObjectHideFlags: 0 @@ -4023,9 +4172,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &335810560 MeshRenderer: @@ -4042,6 +4191,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4066,6 +4216,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &335810561 MeshFilter: m_ObjectHideFlags: 0 @@ -4129,6 +4280,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4153,6 +4305,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &350477504 Transform: m_ObjectHideFlags: 0 @@ -4340,6 +4493,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -4430,17 +4584,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -4455,6 +4610,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -4469,9 +4625,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -4480,12 +4638,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &410583931 GameObject: m_ObjectHideFlags: 0 @@ -4547,6 +4717,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4571,6 +4742,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &410583935 MeshFilter: m_ObjectHideFlags: 0 @@ -4752,6 +4924,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -4842,17 +5015,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -4867,6 +5041,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -4881,9 +5056,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -4892,12 +5069,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &433309750 GameObject: m_ObjectHideFlags: 0 @@ -4959,6 +5148,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -4983,6 +5173,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &433309754 MeshFilter: m_ObjectHideFlags: 0 @@ -5060,6 +5251,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5084,6 +5276,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &451336651 GameObject: m_ObjectHideFlags: 0 @@ -5145,6 +5338,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5169,6 +5363,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &451336655 MeshFilter: m_ObjectHideFlags: 0 @@ -5220,9 +5415,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &466757110 MeshRenderer: @@ -5239,6 +5434,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5263,6 +5459,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &466757111 MeshFilter: m_ObjectHideFlags: 0 @@ -5318,6 +5515,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5342,6 +5540,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &474425942 MeshFilter: m_ObjectHideFlags: 0 @@ -5421,6 +5620,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5445,6 +5645,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &497040035 Transform: m_ObjectHideFlags: 0 @@ -5530,6 +5731,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5554,6 +5756,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &502626299 GameObject: m_ObjectHideFlags: 0 @@ -5615,6 +5818,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5639,6 +5843,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &502626303 MeshFilter: m_ObjectHideFlags: 0 @@ -5820,6 +6025,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -5910,17 +6116,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -5935,6 +6142,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -5949,9 +6157,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -5960,12 +6170,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &583448485 GameObject: m_ObjectHideFlags: 0 @@ -6009,9 +6231,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &583448488 MeshRenderer: @@ -6028,6 +6250,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6052,6 +6275,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &583448489 MeshFilter: m_ObjectHideFlags: 0 @@ -6107,6 +6331,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6131,6 +6356,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &591089169 MeshFilter: m_ObjectHideFlags: 0 @@ -6326,6 +6552,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -6416,17 +6643,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -6441,6 +6669,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -6455,9 +6684,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -6466,12 +6697,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &610798095 GameObject: m_ObjectHideFlags: 0 @@ -6533,6 +6776,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6557,6 +6801,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &610798099 MeshFilter: m_ObjectHideFlags: 0 @@ -6620,6 +6865,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6644,6 +6890,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &611714892 Transform: m_ObjectHideFlags: 0 @@ -6831,6 +7078,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -6921,17 +7169,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -6946,6 +7195,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -6960,9 +7210,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -6971,12 +7223,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &668861981 GameObject: m_ObjectHideFlags: 0 @@ -7166,11 +7430,14 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 5 - directionalIntensity: 3.1415927 - punctualIntensity: 600 - areaIntensity: 200 - lightLayers: 1 + m_Version: 11 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 + m_PointlightHDType: 0 + m_SpotLightShape: 0 + m_AreaLightShape: 0 m_Intensity: 3.1415927 m_EnableSpotReflector: 0 m_LuxAtDistance: 1 @@ -7182,12 +7449,11 @@ MonoBehaviour: m_AffectDiffuse: 1 m_AffectSpecular: 1 m_NonLightmappedOnly: 0 - m_LightTypeExtent: 0 - m_SpotLightShape: 0 m_ShapeWidth: 0.5 m_ShapeHeight: 0.5 m_AspectRatio: 1 m_ShapeRadius: 0 + m_SoftnessScale: 1 m_UseCustomSpotLightShadowCone: 0 m_CustomSpotLightShadowCone: 30 m_MaxSmoothness: 0.99 @@ -7198,7 +7464,21 @@ MonoBehaviour: m_UseScreenSpaceShadows: 0 m_InteractsWithSky: 1 m_AngularDiameter: 0 + m_FlareSize: 2 + m_FlareTint: {r: 1, g: 1, b: 1, a: 1} + m_FlareFalloff: 4 + m_SurfaceTexture: {fileID: 0} + m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1} m_Distance: 150000000 + m_UseRayTracedShadows: 0 + m_NumRayTracingSamples: 4 + m_FilterTracedShadow: 1 + m_FilterSizeTraced: 16 + m_SunLightConeAngle: 0.5 + m_LightShadowRadius: 0.5 + m_SemiTransparentShadow: 0 + m_ColorShadow: 1 + m_DistanceBasedFiltering: 0 m_EvsmExponent: 15 m_EvsmLightLeakBias: 0 m_EvsmVarianceBias: 0.00001 @@ -7206,24 +7486,31 @@ MonoBehaviour: m_LightlayersMask: 1 m_LinkShadowLayers: 1 m_ShadowNearPlane: 0.1 - m_ShadowSoftness: 0.5 m_BlockerSampleCount: 24 m_FilterSampleCount: 16 - m_MinFilterSize: 0.00001 + m_MinFilterSize: 0.01 m_KernelSize: 5 m_LightAngle: 1 m_MaxDepthBias: 0.001 - m_ShadowResolutionTier: 1 - m_UseShadowQualitySettings: 0 - m_CustomShadowResolution: 512 + m_ShadowResolution: + m_Override: 512 + m_UseOverride: 1 + m_Level: 1 m_ShadowDimmer: 1 m_VolumetricShadowDimmer: 1 m_ShadowFadeDistance: 10000 - m_ContactShadows: 0 + m_UseContactShadow: + m_Override: 0 + m_UseOverride: 1 + m_Level: 0 + m_RayTracedContactShadow: 0 m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} + m_PenumbraTint: 0 m_NormalBias: 0.75 - m_ConstantBias: 0.15 + m_SlopeBias: 0.5 m_ShadowUpdateMode: 0 + m_BarnDoorAngle: 90 + m_BarnDoorLength: 0.05 m_ShadowCascadeRatios: - 0.05 - 0.2 @@ -7240,6 +7527,8 @@ MonoBehaviour: useVolumetric: 1 featuresFoldout: 1 showAdditionalSettings: 0 + m_AreaLightEmissiveMeshShadowCastingMode: 0 + m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 --- !u!1 &696014281 GameObject: m_ObjectHideFlags: 0 @@ -7295,6 +7584,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7319,6 +7609,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &696014284 Transform: m_ObjectHideFlags: 0 @@ -7394,6 +7685,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7418,6 +7710,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &705745959 MeshFilter: m_ObjectHideFlags: 0 @@ -7487,6 +7780,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7511,6 +7805,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &706354889 MeshFilter: m_ObjectHideFlags: 0 @@ -7576,6 +7871,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -7600,6 +7896,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &723713429 Transform: m_ObjectHideFlags: 0 @@ -7787,6 +8084,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -7877,17 +8175,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -7902,6 +8201,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -7916,9 +8216,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -7927,12 +8229,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &738453219 GameObject: m_ObjectHideFlags: 0 @@ -7976,9 +8290,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &738453222 MeshRenderer: @@ -7995,6 +8309,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8019,6 +8334,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &738453223 MeshFilter: m_ObjectHideFlags: 0 @@ -8096,6 +8412,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8120,6 +8437,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &761290108 GameObject: m_ObjectHideFlags: 0 @@ -8181,6 +8499,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8205,6 +8524,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &761290112 MeshFilter: m_ObjectHideFlags: 0 @@ -8386,6 +8706,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -8476,17 +8797,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -8501,6 +8823,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -8515,9 +8838,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -8526,12 +8851,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!21 &777732689 Material: serializedVersion: 6 @@ -8705,6 +9042,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -8795,17 +9133,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -8820,6 +9159,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -8834,9 +9174,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -8845,12 +9187,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &799881712 GameObject: m_ObjectHideFlags: 0 @@ -8912,6 +9266,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -8936,6 +9291,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &799881716 MeshFilter: m_ObjectHideFlags: 0 @@ -9013,6 +9369,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -9037,6 +9394,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &822023385 GameObject: m_ObjectHideFlags: 0 @@ -9084,6 +9442,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -9108,6 +9467,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &822023388 MeshFilter: m_ObjectHideFlags: 0 @@ -9199,6 +9559,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -9223,6 +9584,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &840064229 GameObject: m_ObjectHideFlags: 0 @@ -9284,6 +9646,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -9308,6 +9671,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &840064233 MeshFilter: m_ObjectHideFlags: 0 @@ -9377,6 +9741,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -9401,6 +9766,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &842240211 MeshFilter: m_ObjectHideFlags: 0 @@ -9464,6 +9830,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -9488,6 +9855,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &856014138 Transform: m_ObjectHideFlags: 0 @@ -9563,6 +9931,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -9587,6 +9956,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &865144764 MeshFilter: m_ObjectHideFlags: 0 @@ -9768,6 +10138,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -9858,17 +10229,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -9883,6 +10255,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -9897,9 +10270,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -9908,12 +10283,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &936093829 GameObject: m_ObjectHideFlags: 0 @@ -9957,9 +10344,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &936093832 MeshRenderer: @@ -9976,6 +10363,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10000,6 +10388,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &936093833 MeshFilter: m_ObjectHideFlags: 0 @@ -10063,6 +10452,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10087,6 +10477,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &970190522 Transform: m_ObjectHideFlags: 0 @@ -10172,6 +10563,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10196,6 +10588,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &980233703 GameObject: m_ObjectHideFlags: 0 @@ -10251,6 +10644,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10275,6 +10669,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &980233706 Transform: m_ObjectHideFlags: 0 @@ -10462,6 +10857,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -10552,17 +10948,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -10577,6 +10974,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -10591,9 +10989,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -10602,12 +11002,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1003179268 GameObject: m_ObjectHideFlags: 0 @@ -10669,6 +11081,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -10693,6 +11106,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1003179272 MeshFilter: m_ObjectHideFlags: 0 @@ -10874,6 +11288,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -10964,17 +11379,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -10989,6 +11405,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -11003,9 +11420,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -11014,12 +11433,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1020602144 GameObject: m_ObjectHideFlags: 0 @@ -11081,6 +11512,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -11105,6 +11537,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1020602148 MeshFilter: m_ObjectHideFlags: 0 @@ -11182,6 +11615,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -11206,6 +11640,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1056248094 GameObject: m_ObjectHideFlags: 0 @@ -11275,6 +11710,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -11299,6 +11735,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!21 &1082360504 Material: serializedVersion: 6 @@ -11472,6 +11909,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -11562,17 +12000,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -11587,6 +12026,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -11601,9 +12041,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -11612,12 +12054,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1082854018 GameObject: m_ObjectHideFlags: 0 @@ -11679,6 +12133,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -11703,6 +12158,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1082854022 MeshFilter: m_ObjectHideFlags: 0 @@ -11766,6 +12222,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -11790,6 +12247,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1100767636 Transform: m_ObjectHideFlags: 0 @@ -11977,6 +12435,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -12067,17 +12526,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -12092,6 +12552,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -12106,9 +12567,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -12117,12 +12580,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1110235904 GameObject: m_ObjectHideFlags: 0 @@ -12184,6 +12659,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -12208,6 +12684,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1110235908 MeshFilter: m_ObjectHideFlags: 0 @@ -12285,6 +12762,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -12309,6 +12787,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1130594298 GameObject: m_ObjectHideFlags: 0 @@ -12352,9 +12831,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &1130594301 MeshRenderer: @@ -12371,6 +12850,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -12395,6 +12875,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1130594302 MeshFilter: m_ObjectHideFlags: 0 @@ -12458,6 +12939,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -12482,6 +12964,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1150080096 Transform: m_ObjectHideFlags: 0 @@ -12551,6 +13034,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -12575,6 +13059,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1159515358 Transform: m_ObjectHideFlags: 0 @@ -12694,6 +13179,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -12718,6 +13204,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1201919807 MeshFilter: m_ObjectHideFlags: 0 @@ -12899,6 +13386,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -12989,17 +13477,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -13014,6 +13503,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -13028,9 +13518,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -13039,12 +13531,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 2, g: 2, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1237308185 GameObject: m_ObjectHideFlags: 0 @@ -13106,6 +13610,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -13130,6 +13635,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1237308189 MeshFilter: m_ObjectHideFlags: 0 @@ -13311,6 +13817,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -13401,17 +13908,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -13426,6 +13934,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -13440,9 +13949,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -13451,12 +13962,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1258990983 GameObject: m_ObjectHideFlags: 0 @@ -13518,6 +14041,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -13542,6 +14066,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1258990987 MeshFilter: m_ObjectHideFlags: 0 @@ -13619,6 +14144,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -13643,6 +14169,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1288075099 GameObject: m_ObjectHideFlags: 0 @@ -13714,6 +14241,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -13738,6 +14266,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1322064150 GameObject: m_ObjectHideFlags: 0 @@ -13793,6 +14322,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -13817,6 +14347,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1322064153 Transform: m_ObjectHideFlags: 0 @@ -13838,11 +14369,21 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 6004892619064504655, guid: adc7a3141c583ce49b9022be98bd5d96, + - target: {fileID: 198941061589059314, guid: adc7a3141c583ce49b9022be98bd5d96, type: 3} - propertyPath: m_Name - value: BrokenTestText + propertyPath: m_CharacterSize + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2366749451762349873, guid: adc7a3141c583ce49b9022be98bd5d96, + type: 3} + propertyPath: m_Enabled + value: 0 objectReference: {fileID: 0} + - target: {fileID: 2366749451762349873, guid: adc7a3141c583ce49b9022be98bd5d96, + type: 3} + propertyPath: targetCamera + value: + objectReference: {fileID: 75293432} - target: {fileID: 5489785850083597078, guid: adc7a3141c583ce49b9022be98bd5d96, type: 3} propertyPath: m_LocalPosition.x @@ -13913,21 +14454,11 @@ PrefabInstance: propertyPath: m_LocalScale.z value: 0.59329414 objectReference: {fileID: 0} - - target: {fileID: 198941061589059314, guid: adc7a3141c583ce49b9022be98bd5d96, - type: 3} - propertyPath: m_CharacterSize - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2366749451762349873, guid: adc7a3141c583ce49b9022be98bd5d96, + - target: {fileID: 6004892619064504655, guid: adc7a3141c583ce49b9022be98bd5d96, type: 3} - propertyPath: m_Enabled - value: 0 + propertyPath: m_Name + value: BrokenTestText objectReference: {fileID: 0} - - target: {fileID: 2366749451762349873, guid: adc7a3141c583ce49b9022be98bd5d96, - type: 3} - propertyPath: targetCamera - value: - objectReference: {fileID: 75293432} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: adc7a3141c583ce49b9022be98bd5d96, type: 3} --- !u!1 &1369571295 @@ -13985,6 +14516,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -14009,6 +14541,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1369571298 Transform: m_ObjectHideFlags: 0 @@ -14084,6 +14617,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -14108,6 +14642,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1390785807 MeshFilter: m_ObjectHideFlags: 0 @@ -14289,6 +14824,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -14379,17 +14915,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -14404,6 +14941,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -14418,9 +14956,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -14429,12 +14969,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1418023247 GameObject: m_ObjectHideFlags: 0 @@ -14504,6 +15056,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -14528,6 +15081,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1426059128 GameObject: m_ObjectHideFlags: 0 @@ -14589,6 +15143,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -14613,6 +15168,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1426059132 MeshFilter: m_ObjectHideFlags: 0 @@ -14682,6 +15238,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -14706,6 +15263,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1426758647 MeshFilter: m_ObjectHideFlags: 0 @@ -14775,6 +15333,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -14799,6 +15358,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1439520866 MeshFilter: m_ObjectHideFlags: 0 @@ -14868,6 +15428,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -14892,6 +15453,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1461010173 MeshFilter: m_ObjectHideFlags: 0 @@ -15073,6 +15635,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -15163,17 +15726,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -15188,6 +15752,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -15202,9 +15767,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -15213,12 +15780,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1498536033 GameObject: m_ObjectHideFlags: 0 @@ -15274,6 +15853,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -15298,6 +15878,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1498536036 Transform: m_ObjectHideFlags: 0 @@ -15485,6 +16066,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -15575,17 +16157,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -15600,6 +16183,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -15614,9 +16198,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -15625,12 +16211,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1508597291 GameObject: m_ObjectHideFlags: 0 @@ -15674,9 +16272,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &1508597294 MeshRenderer: @@ -15693,6 +16291,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -15717,6 +16316,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1508597295 MeshFilter: m_ObjectHideFlags: 0 @@ -15768,9 +16368,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &1509512978 MeshRenderer: @@ -15787,6 +16387,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -15811,6 +16412,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1509512979 MeshFilter: m_ObjectHideFlags: 0 @@ -15992,6 +16594,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -16082,17 +16685,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -16107,6 +16711,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -16121,9 +16726,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -16132,12 +16739,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!21 &1582081110 Material: serializedVersion: 6 @@ -16311,6 +16930,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -16401,17 +17021,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -16426,6 +17047,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -16440,9 +17062,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -16451,12 +17075,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1613179979 GameObject: m_ObjectHideFlags: 0 @@ -16512,6 +17148,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16536,6 +17173,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1613179982 Transform: m_ObjectHideFlags: 0 @@ -16605,6 +17243,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16629,6 +17268,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1628155542 Transform: m_ObjectHideFlags: 0 @@ -16686,9 +17326,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &1657802540 MeshRenderer: @@ -16705,6 +17345,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -16729,6 +17370,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1657802541 MeshFilter: m_ObjectHideFlags: 0 @@ -16910,6 +17552,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -17000,17 +17643,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -17025,6 +17669,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -17039,9 +17684,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -17050,12 +17697,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1680095224 GameObject: m_ObjectHideFlags: 0 @@ -17125,6 +17784,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -17149,6 +17809,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1693924828 GameObject: m_ObjectHideFlags: 0 @@ -17192,9 +17853,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &1693924831 MeshRenderer: @@ -17211,6 +17872,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -17235,6 +17897,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1693924832 MeshFilter: m_ObjectHideFlags: 0 @@ -17312,6 +17975,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -17336,6 +18000,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1752131080 GameObject: m_ObjectHideFlags: 0 @@ -17405,6 +18070,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -17429,6 +18095,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1762925362 GameObject: m_ObjectHideFlags: 0 @@ -17472,9 +18139,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &1762925365 MeshRenderer: @@ -17491,6 +18158,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -17515,6 +18183,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1762925366 MeshFilter: m_ObjectHideFlags: 0 @@ -17696,6 +18365,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -17786,17 +18456,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -17811,6 +18482,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -17825,9 +18497,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -17836,12 +18510,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1786551326 GameObject: m_ObjectHideFlags: 0 @@ -17903,6 +18589,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -17927,6 +18614,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1786551330 MeshFilter: m_ObjectHideFlags: 0 @@ -18108,6 +18796,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -18198,17 +18887,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -18223,6 +18913,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -18237,9 +18928,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -18248,12 +18941,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!21 &1794769461 Material: serializedVersion: 6 @@ -18427,6 +19132,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -18517,17 +19223,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -18542,6 +19249,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -18556,9 +19264,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -18567,12 +19277,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!21 &1806450501 Material: serializedVersion: 6 @@ -18746,6 +19468,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -18836,17 +19559,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -18861,6 +19585,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -18875,9 +19600,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -18886,12 +19613,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!21 &1806901691 Material: serializedVersion: 6 @@ -19065,6 +19804,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -19155,17 +19895,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -19180,6 +19921,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -19194,9 +19936,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -19205,12 +19949,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1822534184 GameObject: m_ObjectHideFlags: 0 @@ -19272,6 +20028,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -19296,6 +20053,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1822534188 MeshFilter: m_ObjectHideFlags: 0 @@ -19477,6 +20235,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -19567,17 +20326,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -19592,6 +20352,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -19606,9 +20367,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -19617,12 +20380,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!21 &1847923393 Material: serializedVersion: 6 @@ -19796,6 +20571,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -19886,17 +20662,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -19911,6 +20688,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -19925,9 +20703,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -19936,12 +20716,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1852201115 GameObject: m_ObjectHideFlags: 0 @@ -20011,6 +20803,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -20035,6 +20828,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!21 &1865601234 Material: serializedVersion: 6 @@ -20208,6 +21002,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -20298,17 +21093,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -20323,6 +21119,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -20337,9 +21134,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -20348,12 +21147,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!21 &1888583710 Material: serializedVersion: 6 @@ -20527,6 +21338,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -20617,17 +21429,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -20642,6 +21455,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -20656,9 +21470,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -20667,12 +21483,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!21 &1894177490 Material: serializedVersion: 6 @@ -20846,6 +21674,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -20936,17 +21765,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -20961,6 +21791,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -20975,9 +21806,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -20986,12 +21819,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1894567276 GameObject: m_ObjectHideFlags: 0 @@ -21061,6 +21906,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -21085,6 +21931,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &1909660569 GameObject: m_ObjectHideFlags: 0 @@ -21146,6 +21993,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -21170,6 +22018,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1909660573 MeshFilter: m_ObjectHideFlags: 0 @@ -21233,6 +22082,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -21257,6 +22107,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &1916000110 Transform: m_ObjectHideFlags: 0 @@ -21332,6 +22183,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -21356,6 +22208,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &1919108762 MeshFilter: m_ObjectHideFlags: 0 @@ -21537,6 +22390,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -21627,17 +22481,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -21652,6 +22507,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -21666,9 +22522,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -21677,12 +22535,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 5, g: 5, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &1943596800 GameObject: m_ObjectHideFlags: 0 @@ -21814,6 +22684,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -21838,6 +22709,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &2011602049 MeshFilter: m_ObjectHideFlags: 0 @@ -21915,6 +22787,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -21939,6 +22812,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &2022497119 GameObject: m_ObjectHideFlags: 0 @@ -21996,6 +22870,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -22020,6 +22895,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &2022497122 Transform: m_ObjectHideFlags: 0 @@ -22089,6 +22965,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -22113,6 +22990,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &2026519736 Transform: m_ObjectHideFlags: 0 @@ -22188,6 +23066,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -22212,6 +23091,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &2066681238 MeshFilter: m_ObjectHideFlags: 0 @@ -22393,6 +23273,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -22444,7 +23325,7 @@ Material: - _EnableGeometricSpecularAA: 0 - _EnableSpecularOcclusion: 0 - _EnergyConservingSpecularColor: 1 - - _Flags: 8 + - _Flags: 0 - _HdrpVersion: 2 - _HeightAmplitude: 0.02 - _HeightCenter: 0.5 @@ -22483,17 +23364,18 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - - _StencilRef: 2 - - _StencilRefDepth: 16 + - _StencilRef: 0 + - _StencilRefDepth: 8 - _StencilRefDistortionVec: 64 - _StencilRefGBuffer: 2 - - _StencilRefMV: 144 - - _StencilWriteMask: 3 - - _StencilWriteMaskDepth: 48 + - _StencilRefMV: 40 + - _StencilWriteMask: 6 + - _StencilWriteMaskDepth: 8 - _StencilWriteMaskDistortionVec: 64 - _StencilWriteMaskGBuffer: 3 - - _StencilWriteMaskMV: 176 + - _StencilWriteMaskMV: 40 - _SubsurfaceMask: 1 - _SupportDecals: 1 - _SurfaceType: 0 @@ -22508,6 +23390,7 @@ Material: - _TransparentDepthPrepassEnable: 0 - _TransparentSortPriority: 0 - _TransparentWritingMotionVec: 0 + - _TransparentZWrite: 0 - _UVBase: 0 - _UVDetail: 0 - _UVEmissive: 0 @@ -22522,9 +23405,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -22533,12 +23418,24 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 2, g: 2, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} - _UVDetailsMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMask: {r: 1, g: 0, b: 0, a: 0} - _UVMappingMaskEmissive: {r: 1, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] --- !u!1 &2103592705 GameObject: m_ObjectHideFlags: 0 @@ -22608,6 +23505,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -22632,6 +23530,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &2111968800 GameObject: m_ObjectHideFlags: 0 @@ -22689,6 +23588,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -22713,6 +23613,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &2111968803 Transform: m_ObjectHideFlags: 0 @@ -22798,6 +23699,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -22822,6 +23724,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &2138308295 GameObject: m_ObjectHideFlags: 0 @@ -22865,9 +23768,9 @@ MeshCollider: m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 - serializedVersion: 3 + serializedVersion: 4 m_Convex: 0 - m_CookingOptions: 14 + m_CookingOptions: 30 m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} --- !u!23 &2138308298 MeshRenderer: @@ -22884,6 +23787,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -22908,6 +23812,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!33 &2138308299 MeshFilter: m_ObjectHideFlags: 0 @@ -22971,6 +23876,7 @@ MeshRenderer: m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -22995,6 +23901,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!4 &2147273450 Transform: m_ObjectHideFlags: 0 diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF/AxF_aniso/AxF_aniso.mat b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF/AxF_aniso/AxF_aniso.mat index a2e68b3ddbe..734b3db1523 100644 --- a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF/AxF_aniso/AxF_aniso.mat +++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF/AxF_aniso/AxF_aniso.mat @@ -173,6 +173,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -263,6 +264,7 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - _StencilRef: 0 - _StencilRefDepth: 8 @@ -303,9 +305,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -314,6 +318,17 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 2, g: 2, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF/AxF_displacement/AxF_displacement.mat b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF/AxF_displacement/AxF_displacement.mat index 36e419b4302..46a78f24e72 100644 --- a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF/AxF_displacement/AxF_displacement.mat +++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/1x_Materials/1451_AxF_SVBRDF/AxF_displacement/AxF_displacement.mat @@ -173,6 +173,7 @@ Material: - _AlphaCutoffShadow: 0.5 - _AlphaDstBlend: 0 - _AlphaSrcBlend: 1 + - _AlphaToMask: 0 - _Anisotropy: 0 - _AxF_BRDFType: 0 - _BlendMode: 0 @@ -224,7 +225,7 @@ Material: - _EnableGeometricSpecularAA: 0 - _EnableSpecularOcclusion: 0 - _EnergyConservingSpecularColor: 1 - - _Flags: 8 + - _Flags: 0 - _HdrpVersion: 2 - _HeightAmplitude: 0.02 - _HeightCenter: 0.5 @@ -263,6 +264,7 @@ Material: - _SmoothnessRemapMin: 0 - _SpecularAAScreenSpaceVariance: 0.1 - _SpecularAAThreshold: 0.2 + - _SpecularOcclusionMode: 1 - _SrcBlend: 1 - _StencilRef: 0 - _StencilRefDepth: 8 @@ -303,9 +305,11 @@ Material: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _CarPaint2_BRDFColorMapUVScale: {r: 1, g: 1, b: 0, a: 0} + - _CarPaint2_BTFFlakeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _CarPaint2_CTCoeffs: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTF0s: {r: 1, g: 1, b: 1, a: 1} - _CarPaint2_CTSpreads: {r: 1, g: 1, b: 1, a: 1} + - _ClearcoatNormalMap_SO: {r: 1, g: 1, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} - _DiffusionProfileAsset: {r: 0, g: 0, b: 0, a: 0} - _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0} @@ -314,6 +318,17 @@ Material: - _EmissiveColorLDR: {r: 0, g: 0, b: 0, a: 1} - _InvPrimScale: {r: 1, g: 1, b: 0, a: 0} - _IridescenceThicknessRemap: {r: 0, g: 1, b: 0, a: 0} + - _Material_SO: {r: 2, g: 2, b: 0, a: 0} + - _SVBRDF_AlphaMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_AnisoRotationMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_ClearcoatIORMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_DiffuseColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_FresnelMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_HeightMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_NormalMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularColorMap_SO: {r: 1, g: 1, b: 0, a: 0} + - _SVBRDF_SpecularLobeMap_SO: {r: 1, g: 1, b: 0, a: 0} - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} - _ThicknessRemap: {r: 0, g: 1, b: 0, a: 0} - _TransmittanceColor: {r: 1, g: 1, b: 1, a: 1} diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2002_Light_DynamicMix.unity b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2002_Light_DynamicMix.unity index 0669ff028df..a309d419ec1 100644 --- a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2002_Light_DynamicMix.unity +++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/2x_Lighting/2002_Light_DynamicMix.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.30957052, g: 0.3253681, b: 0.35991505, a: 1} + m_IndirectSpecularColor: {r: 0.31014416, g: 0.3259645, b: 0.36057484, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -576,7 +576,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 10 + m_Version: 11 m_ObsoleteShadowResolutionTier: 1 m_ObsoleteUseShadowQualitySettings: 0 m_ObsoleteCustomShadowResolution: 512 @@ -624,7 +624,6 @@ MonoBehaviour: m_LightShadowRadius: 0.5 m_SemiTransparentShadow: 0 m_ColorShadow: 1 - m_DistanceBasedFiltering: 0 m_EvsmExponent: 15 m_EvsmLightLeakBias: 0 m_EvsmVarianceBias: 0.00001 @@ -675,6 +674,7 @@ MonoBehaviour: showAdditionalSettings: 1 m_AreaLightEmissiveMeshShadowCastingMode: 0 m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 --- !u!108 &487878716 Light: m_ObjectHideFlags: 0 @@ -925,7 +925,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 10 + m_Version: 11 m_ObsoleteShadowResolutionTier: 1 m_ObsoleteUseShadowQualitySettings: 0 m_ObsoleteCustomShadowResolution: 512 @@ -973,7 +973,6 @@ MonoBehaviour: m_LightShadowRadius: 0.5 m_SemiTransparentShadow: 0 m_ColorShadow: 1 - m_DistanceBasedFiltering: 0 m_EvsmExponent: 15 m_EvsmLightLeakBias: 0 m_EvsmVarianceBias: 0.00001 @@ -1024,6 +1023,7 @@ MonoBehaviour: showAdditionalSettings: 5 m_AreaLightEmissiveMeshShadowCastingMode: 0 m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 --- !u!108 &576870515 Light: m_ObjectHideFlags: 0 @@ -1810,7 +1810,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 10 + m_Version: 11 m_ObsoleteShadowResolutionTier: 1 m_ObsoleteUseShadowQualitySettings: 0 m_ObsoleteCustomShadowResolution: 512 @@ -1858,7 +1858,6 @@ MonoBehaviour: m_LightShadowRadius: 0.5 m_SemiTransparentShadow: 0 m_ColorShadow: 1 - m_DistanceBasedFiltering: 0 m_EvsmExponent: 15 m_EvsmLightLeakBias: 0 m_EvsmVarianceBias: 0.00001 @@ -1909,6 +1908,7 @@ MonoBehaviour: showAdditionalSettings: 5 m_AreaLightEmissiveMeshShadowCastingMode: 0 m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 --- !u!108 &1083378962 Light: m_ObjectHideFlags: 0 @@ -2065,7 +2065,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 10 + m_Version: 11 m_ObsoleteShadowResolutionTier: 1 m_ObsoleteUseShadowQualitySettings: 0 m_ObsoleteCustomShadowResolution: 512 @@ -2113,7 +2113,6 @@ MonoBehaviour: m_LightShadowRadius: 0.5 m_SemiTransparentShadow: 0 m_ColorShadow: 1 - m_DistanceBasedFiltering: 0 m_EvsmExponent: 15 m_EvsmLightLeakBias: 0 m_EvsmVarianceBias: 0.00001 @@ -2164,6 +2163,7 @@ MonoBehaviour: showAdditionalSettings: 1 m_AreaLightEmissiveMeshShadowCastingMode: 0 m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 --- !u!108 &1302673722 Light: m_ObjectHideFlags: 0 @@ -2612,7 +2612,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 10 + m_Version: 11 m_ObsoleteShadowResolutionTier: 1 m_ObsoleteUseShadowQualitySettings: 0 m_ObsoleteCustomShadowResolution: 512 @@ -2660,7 +2660,6 @@ MonoBehaviour: m_LightShadowRadius: 0.5 m_SemiTransparentShadow: 0 m_ColorShadow: 1 - m_DistanceBasedFiltering: 0 m_EvsmExponent: 15 m_EvsmLightLeakBias: 0 m_EvsmVarianceBias: 0.00001 @@ -2711,6 +2710,7 @@ MonoBehaviour: showAdditionalSettings: 1 m_AreaLightEmissiveMeshShadowCastingMode: 0 m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 + m_AreaLightEmissiveMeshLayer: -1 --- !u!108 &1637281123 Light: m_ObjectHideFlags: 0 diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9713_VirtualTexturing.meta b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9713_VirtualTexturing.meta new file mode 100644 index 00000000000..735cd34ee74 --- /dev/null +++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/9x_Other/9713_VirtualTexturing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2559987e9b9bc30428f6e337ec811b1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None.meta new file mode 100644 index 00000000000..eb010f78023 --- /dev/null +++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b838e15c9e0d6a74b82a23ee7930cafb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None.meta new file mode 100644 index 00000000000..2fb084f30a9 --- /dev/null +++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b4eb0e5b5fd9d841b1c9ec2a273d583 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None.meta new file mode 100644 index 00000000000..a2b4627624f --- /dev/null +++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f65095793041e14499935e4dd8e36f0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None.meta new file mode 100644 index 00000000000..eebb1122e9e --- /dev/null +++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsPlayer/Direct3D11/None.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 841b7041a26803844a51ce2d4e2dfc75 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None.meta new file mode 100644 index 00000000000..34691e459cc --- /dev/null +++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsPlayer/Vulkan/None.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2c3ce77a122d9144e94026de76ca1ef6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.unity.render-pipelines.core/CHANGELOG.md b/com.unity.render-pipelines.core/CHANGELOG.md index 91499c367d8..fd2d3bec35e 100644 --- a/com.unity.render-pipelines.core/CHANGELOG.md +++ b/com.unity.render-pipelines.core/CHANGELOG.md @@ -19,6 +19,9 @@ The version number for this package has increased due to a version update of a r - Fixed copy/pasting of Volume Components when loading a new scene - Fix LookDev's camera button layout. - Fix LookDev's layout vanishing on domain reload. +- Fixed null reference exception in LookDev when setting the SRP to one not implementing LookDev (case 1245086) +- Fix LookDev's undo/redo on EnvironmentLibrary (case 1234725) +- Fixed a wrong condition in CameraSwitcher, potentially causing out of bound exceptions. ## [8.0.1] - 2020-02-25 diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev1.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev1.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev1.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev1.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev2.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev2.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev2.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev2.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev3.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev3.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev3.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev3.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev4.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev4.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev4.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev4.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev5.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev5.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev5.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev5.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev6.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev6.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev6.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev6.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev7.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev7.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev7.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev7.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev8.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev8.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev8.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev8.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev9.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDev9.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDev9.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDev9.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary1.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary1.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary1.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary1.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary2.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary2.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary2.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary2.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary3.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary3.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary3.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary3.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary4.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary4.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary4.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary4.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary5.png b/com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary5.png similarity index 100% rename from com.unity.render-pipelines.high-definition/Documentation~/Images/LookDevEnvironmentLibrary5.png rename to com.unity.render-pipelines.core/Documentation~/Images/LookDevEnvironmentLibrary5.png diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Look-Dev-Environment-Library.md b/com.unity.render-pipelines.core/Documentation~/Look-Dev-Environment-Library.md similarity index 98% rename from com.unity.render-pipelines.high-definition/Documentation~/Look-Dev-Environment-Library.md rename to com.unity.render-pipelines.core/Documentation~/Look-Dev-Environment-Library.md index 0bc2862a183..cfaa0c1da1a 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Look-Dev-Environment-Library.md +++ b/com.unity.render-pipelines.core/Documentation~/Look-Dev-Environment-Library.md @@ -47,6 +47,6 @@ To add, remove, or duplicate environments, use the toolbar at the bottom of the ## Importing an HDRI Texture -To import an HDRI Texture into the Unity Editor, load an **.hdr** or **.exr** file into your Unity Project like you would any other image. In the Texture Importer Inspector window, set **Texture Type** to **Default**, set **Texture Shape** to **Cube**, and set **Convolution Type** to **Specular (Glossy Reflection)**. +To import an HDRI Texture into the Unity Editor, load an **.hdr** or **.exr** file into your Unity Project like you would any other image. In the Texture Importer Inspector window, set **Texture Type** to **Default**, set **Texture Shape** to **Cube**, and set **Convolution Type** to **None**. When you want to test an HDRI Texture Asset or a skybox cube map Material, drag and drop it into the Look Dev view. \ No newline at end of file diff --git a/com.unity.render-pipelines.core/Documentation~/Look-Dev.md b/com.unity.render-pipelines.core/Documentation~/Look-Dev.md new file mode 100644 index 00000000000..2797d2b7a5c --- /dev/null +++ b/com.unity.render-pipelines.core/Documentation~/Look-Dev.md @@ -0,0 +1,142 @@ +# Look Dev + +Look Dev is an image-based lighting tool that contains a viewer for you to check and compare Assets to ensure they work well in various lighting conditions. Look Dev uses the Scriptable Render Pipeline, so it can display the Asset in the same way as it looks in your Scene. You can load Assets into Look Dev either as Prefabs or from the Hierarchy window. + +Look Dev is only available in Edit mode. The Look Dev window closes when you enter Play mode. + +### Asset validation + +Asset validation confirms whether Assets are authored correctly and behave as expected in different lighting environments. + +You must use an HDRI (high dynamic range image) to validate your Assets in Look Dev. An HDRI contains real-world lighting with incredibly high detail. As such, it offers perfect lighting that is difficult to create by hand. By using such an accurate lighting environment to test an Asset, you can determine whether the Asset itself or your Project's lighting is reducing the visual quality of your Scene. + +You can load two different Assets into Look Dev at the same time and compare them in two viewports. For example, an Art Director can check that a new Asset matches the art direction guidelines of a reference Asset. + +## Using Look Dev + +To open Look Dev in the Unity Editor, select **Window > Render Pipeline > Look Dev**. The first time you use Look Dev, you must either create a new [Environment Library](Look-Dev-Environment-Library.html) or load one. For information on how to create an Environment Library, see the [Environment Library documentation](Look-Dev-Environment-Library.html). + +### Viewports + +By default, there is only one viewport in Look Dev, but you can choose from a selection of split-screen views (see the [Multi-view section](#MultiView)). + +### Controls + +Navigation with the Look Dev Camera works in a similar way to the [Scene view Camera](https://docs.unity3d.com/Manual/SceneViewNavigation.html): + +- **Rotate around pivot:** Left click and drag (this is similar to the Scene view except that you need to press the Alt key for the Scene view Camera). +- **Pan camera:** Middle click and drag. +- **Zoom:** Alt + right click and drag. +- **Forward/backward:** Mouse wheel. +- **First Person mode:** Right click + W, A,S, and D. + +### Loading Assets into Look Dev + +Look Dev lets you view: + +**Prefabs** - To load a Prefab into Look Dev, drag it from the Project window into the Look Dev viewport. + +**GameObjects** - To load a copy of a Hierarchy GameObject, drag the GameObject from the Hierarchy into the Look Dev viewport. + + + +## Viewport modes + +Use the toolbar in the top-left of the window to change which viewing mode Look Dev uses. + +### Single viewport + +![](Images/LookDev1.png) + +By default, Look Dev displays a single viewport which contains the Prefab or GameObject you are working with. If you are in another viewing mode, you can click either the number **1** or number **2** button to go back to single view. Each button corresponds to a viewport in Look Dev. Select button **1** to use viewport 1, and button 2 to use viewport **2**. + + + +### Multi-viewport + +![](Images/LookDev2.png) + +Use multiple viewports to compare different environments and settings for the same Asset. You can arrange viewports: + +- Vertically side-by-side. Use this mode to compare two different lighting conditions on the same Asset to check that the Asset behaves correctly. +- Horizontally side-by-side. Use this mode to compare two different lighting conditions for horizontal objects, like an environment Asset, to check that the Asset behaves correctly. +- Split-screen. Use this mode investigate texture problems using a debug Shader mode (for example, use one screen to view Normal or Albedo shading, and the other for environment-lit mode). +- Side-by-side and split-screen: Use this mode to compare two different versions of the same Asset using the same lighting conditions to see which changes improve the Asset’s quality. + +All three of these modes are useful to compare two different versions of the same Asset using the same lighting conditions to see which changes improve the Asset’s quality. + +To load a different Prefab or Hierarchy GameObject into each split-screen view, drag and drop the Asset into the viewport that you want to view it in. + +When using multiple viewports, it only makes sense to compare different Prefabs or GameObjects when you want to look at two versions of the same Asset. Comparing completely different Assets doesn’t give you a good idea of the difference in lighting or visual effect. + +##### Vertical or horizontal side-by-side + +Vertical and horizontal side-by-side viewports show an identical view of your Asset. + +![](Images/LookDev3.png) + +##### Split-screen + +In a split-screen view, there is a red/blue manipulation Gizmo that separates the two viewports. For information on how to use this Gizmo, see [Using the manipulation Gizmo](#ManipulationGizmo). + +![](Images/LookDev4.png) + +#### Multi-viewport Camera + +By default, Look Dev synchronizes the camera movement for both views. To decouple the Cameras from one another, and manipulate them independently, click the **Synchronized Cameras** button in-between the two numbered Camera buttons. + +![](Images/LookDev5.png) + +To align the cameras with each other, or reset them, click on the drop-down arrow next to the viewport **2** icon: + +![](Images/LookDev6.png) + + + +### Using the manipulation Gizmo + +The manipulation Gizmo represents the separation plane between the two viewports. It has different behavior in split-screen mode, but you use it in the same way for both side-by-side or split-screen modes. + +#### Moving the separator + +To move the separator, click and drag the straight line of the Gizmo to the location you want. + +![](Images/LookDev7.png) + +#### Changing the orientation and length + +To change the orientation and length of the manipulator Gizmo, click and drag the circle at either end of the manipulator. Changing the length of the Gizmo lets you set the orientation and [blending](#Blending) values more precisely. + +![](Images/LookDev8.png)) + +#### Changing the split in increments + +To change the split in increments, click and hold the circle on the end of the manipulation Gizmo, then hold Shift as you move the mouse. This snaps the manipulation Gizmo to set angles in increments of 22.5°, which is useful for a perfectly horizontal, vertical or diagonal angle. + + + +#### Blending + +The central white circle on the separator allows you to blend between the two views. Left click on it and drag along the red line to blend the left-hand view with the right-hand view. Drag along the blue line to blend the right-hand view with the left-hand view (as shown in the image below). + +The white circle automatically snaps back into the center when you drag it back. This helps you get back to the default blending value quickly. + +![](Images/LookDev9.png) + +### HDRI environments in Look Dev + +Lighting in Look Dev uses an HDRI. The Look Dev view allows you to manipulate and easily switch between HDRIs to simulate different environments for the Asset you are working on. + +Look Dev uses the [Environment Library](Look-Dev-Environment-Library.html) Asset to store a list of environments, which are HDRIs with extra properties that you can use to further refine the environment. For information on how to create, edit, and assign Environment Libraries, see the [Environment Library documentation](Look-Dev-Environment-Library.html#Creation). + +## Implementing Look Dev for your custom Scriptable Render Pipeline + +In order to use Look Dev in your custom Scriptable Render Pipeline, you must implement the **UnityEngine.Rendering.LookDev.IDataProvider** interface. + +| **Function** | **Description** | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| **void FirstInitScene(StageRuntimeInterface stage)** | Look Dev calls this function after it initializes the Scene with a Light and Camera. It uses this function to add and configure extra components according to the needs of your Scriptable Render Pipeline. | +| **void UpdateSky(Camera camera, Sky sky, StageRuntimeInterface stage)** | Look Dev uses this function to update the environment when you change something in Look Dev. You can handle the sky in various ways, so add code that corresponds to your Scriptable Render Pipeline. | +| **IEnumerable****** **supportedDebugModes { get; }** | Use this function to specify the list of supported debug modes. You do not need to add **None** because Look Dev handles that automatically. | +| **void UpdateDebugMode(int debugIndex)** | Use this function to update the debug mode based on what the user selects. The **debugIndex** matches the list in **supportedDebugModes**. If the user selects **None**, then the **debugIndex** is **-1**; | +| **void GetShadowMask(ref RenderTexture output, StageRuntimeInterface stage)** | This function computes a shadow map. The given **StageRuntimeInterface** contains access to the Camera and a Light simulating the sun. | \ No newline at end of file diff --git a/com.unity.render-pipelines.core/Documentation~/TableOfContents.md b/com.unity.render-pipelines.core/Documentation~/TableOfContents.md index 43587d6cc61..3896f5b625e 100644 --- a/com.unity.render-pipelines.core/Documentation~/TableOfContents.md +++ b/com.unity.render-pipelines.core/Documentation~/TableOfContents.md @@ -1,4 +1,6 @@ * [SRP Core](index) * Camera components * [Free Camera](Free-Camera) - * [Camera Switcher](Camera-Switcher) \ No newline at end of file + * [Camera Switcher](Camera-Switcher) +* [Look Dev](Look-Dev) + * [Environment Library](Look-Dev-Environment-Library) \ No newline at end of file diff --git a/com.unity.render-pipelines.core/Editor/LookDev/Context.cs b/com.unity.render-pipelines.core/Editor/LookDev/Context.cs index 04f0300517e..7db4c4e799f 100644 --- a/com.unity.render-pipelines.core/Editor/LookDev/Context.cs +++ b/com.unity.render-pipelines.core/Editor/LookDev/Context.cs @@ -264,6 +264,18 @@ internal bool HasLibraryAssetChanged(EnvironmentLibrary environmentLibrary) return m_EnvironmentLibraryGUID != AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(environmentLibrary)); } + + internal void FullReimportEnvironmentLibrary() + { + if (environmentLibrary == null) + return; + + // refresh AssetDatabase in case of undo/redo creating/destructing environment subasset + string libraryPath = AssetDatabase.GetAssetPath(environmentLibrary); + AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(environmentLibrary), ImportAssetOptions.DontDownloadFromCacheServer | ImportAssetOptions.ForceSynchronousImport | ImportAssetOptions.ForceUpdate | ImportAssetOptions.ImportRecursive); + UpdateEnvironmentLibrary(AssetDatabase.LoadAssetAtPath(libraryPath)); + EditorUtility.SetDirty(environmentLibrary); + } } /// diff --git a/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.EnvironmentLibrarySidePanel.cs b/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.EnvironmentLibrarySidePanel.cs index 30d1e966387..5db3aba5723 100644 --- a/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.EnvironmentLibrarySidePanel.cs +++ b/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.EnvironmentLibrarySidePanel.cs @@ -463,5 +463,13 @@ void OnFocus() ((IEnvironmentDisplayer)this).Repaint(); } } + + void FullRefreshEnvironmentList() + { + if (LookDev.currentContext.environmentLibrary != null) + LookDev.currentContext.FullReimportEnvironmentLibrary(); + + ((IEnvironmentDisplayer)this).Repaint(); + } } } diff --git a/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.cs b/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.cs index a616701a681..12b7368fccc 100644 --- a/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.cs +++ b/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.cs @@ -3,6 +3,8 @@ using UnityEngine; using UnityEngine.UIElements; +using RenderPipelineManager = UnityEngine.Rendering.RenderPipelineManager; + namespace UnityEditor.Rendering.LookDev { /// Interface that must implement the viewer to communicate with the compositor and data management @@ -257,9 +259,15 @@ void OnEnable() ApplyLayout(viewLayout); ApplySidePanelChange(layout.showedSidePanel); + + Undo.undoRedoPerformed += FullRefreshEnvironmentList; } - void OnDisable() => OnClosedInternal?.Invoke(); + void OnDisable() + { + Undo.undoRedoPerformed -= FullRefreshEnvironmentList; + OnClosedInternal?.Invoke(); + } void CreateToolbar() { @@ -680,6 +688,17 @@ void OnGUI() rootVisualElement.styleSheets.Add(styleSheetLight); } + // [case 1245086] Guard in case the SRP asset is set to null (or to a not supported SRP) when the lookdev window is already open + // Note: After an editor reload, we might get a null OnUpdateRequestedInternal and null SRP for a couple of frames, hence the check. + if (!LookDev.supported && OnUpdateRequestedInternal !=null) + { + // Print an error and close the Lookdev window (to avoid spamming the console) + Debug.LogError($"LookDev is not supported by this Scriptable Render Pipeline: " + + (RenderPipelineManager.currentPipeline == null ? "No SRP in use" : RenderPipelineManager.currentPipeline.ToString())); + LookDev.Close(); + return; + } + OnUpdateRequestedInternal?.Invoke(); } } diff --git a/com.unity.render-pipelines.core/Editor/LookDev/EnvironmentLibrary.cs b/com.unity.render-pipelines.core/Editor/LookDev/EnvironmentLibrary.cs index 310239b1ac5..18872041db4 100644 --- a/com.unity.render-pipelines.core/Editor/LookDev/EnvironmentLibrary.cs +++ b/com.unity.render-pipelines.core/Editor/LookDev/EnvironmentLibrary.cs @@ -32,15 +32,21 @@ public class EnvironmentLibrary : ScriptableObject /// The created Environment public Environment Add() { + Undo.SetCurrentGroupName("Add Environment"); + int group = Undo.GetCurrentGroup(); + Environment environment = ScriptableObject.CreateInstance(); environment.name = "New Environment"; Undo.RegisterCreatedObjectUndo(environment, "Add Environment"); + Undo.RecordObject(this, "Add Environment"); environments.Add(environment); // Store this new environment as a subasset so we can reference it safely afterwards. AssetDatabase.AddObjectToAsset(environment, this); + Undo.CollapseUndoOperations(group); + // Force save / refresh. Important to do this last because SaveAssets can cause effect to become null! EditorUtility.SetDirty(this); AssetDatabase.SaveAssets(); @@ -54,11 +60,16 @@ public Environment Add() /// Index where to remove Environment public void Remove(int index) { + Undo.SetCurrentGroupName("Remove Environment"); + int group = Undo.GetCurrentGroup(); + Environment environment = environments[index]; Undo.RecordObject(this, "Remove Environment"); environments.RemoveAt(index); Undo.DestroyObjectImmediate(environment); + Undo.CollapseUndoOperations(group); + // Force save / refresh EditorUtility.SetDirty(this); AssetDatabase.SaveAssets(); diff --git a/com.unity.render-pipelines.core/Editor/Volume/VolumeEditor.cs b/com.unity.render-pipelines.core/Editor/Volume/VolumeEditor.cs index a9e96ed1b9d..274016aa54a 100644 --- a/com.unity.render-pipelines.core/Editor/Volume/VolumeEditor.cs +++ b/com.unity.render-pipelines.core/Editor/Volume/VolumeEditor.cs @@ -1,4 +1,7 @@ +using System.IO; +using UnityEditor.PackageManager; using UnityEngine; +using UnityEngine.Assertions; using UnityEngine.Rendering; namespace UnityEditor.Rendering @@ -153,7 +156,13 @@ public override void OnInspectorGUI() // Duplicate the currently assigned profile and save it as a new profile var origin = profileRef; var path = AssetDatabase.GetAssetPath(m_Profile.objectReferenceValue); - path = AssetDatabase.GenerateUniqueAssetPath(path); + + path = IsAssetInReadOnlyPackage(path) + // We may be in a read only package, in that case we need to clone the volume profile in an + // editable area, such as the root of the project. + ? AssetDatabase.GenerateUniqueAssetPath(Path.Combine("Assets", Path.GetFileName(path))) + // Otherwise, duplicate next to original asset. + : AssetDatabase.GenerateUniqueAssetPath(path); var asset = Instantiate(origin); asset.components.Clear(); @@ -202,5 +211,12 @@ public override void OnInspectorGUI() serializedObject.ApplyModifiedProperties(); } + + static bool IsAssetInReadOnlyPackage(string path) + { + Assert.IsNotNull(path); + var info = PackageManager.PackageInfo.FindForAssetPath(path); + return info != null && (info.source != PackageSource.Local && info.source != PackageSource.Embedded); + } } } diff --git a/com.unity.render-pipelines.core/Runtime/Camera/CameraSwitcher.cs b/com.unity.render-pipelines.core/Runtime/Camera/CameraSwitcher.cs index 91754c7bdaf..8f8772bec44 100644 --- a/com.unity.render-pipelines.core/Runtime/Camera/CameraSwitcher.cs +++ b/com.unity.render-pipelines.core/Runtime/Camera/CameraSwitcher.cs @@ -89,7 +89,7 @@ Camera GetNextCamera() void SetCameraIndex(int index) { - if (index > 0 || index < GetCameraCount()) + if (index > 0 && index < GetCameraCount()) { m_CurrentCameraIndex = index; diff --git a/com.unity.render-pipelines.core/Runtime/Utilities/CoreUtils.cs b/com.unity.render-pipelines.core/Runtime/Utilities/CoreUtils.cs index 0f16e604818..2b59a468cfc 100644 --- a/com.unity.render-pipelines.core/Runtime/Utilities/CoreUtils.cs +++ b/com.unity.render-pipelines.core/Runtime/Utilities/CoreUtils.cs @@ -1106,6 +1106,32 @@ public static bool IsSceneLightingDisabled(Camera camera) return disabled; } + /// + /// Returns true if the "Light Overlap" scene view draw mode is enabled. + /// + /// Input camera. + /// True if "Light Overlap" is enabled in the scene view associated with the input camera. + public static bool IsLightOverlapDebugEnabled(Camera camera) + { + bool enabled = false; +#if UNITY_EDITOR + if (camera.cameraType == CameraType.SceneView) + { + // Determine whether the "LightOverlap" mode is enabled for the current view. + for (int i = 0; i < UnityEditor.SceneView.sceneViews.Count; i++) + { + var sv = UnityEditor.SceneView.sceneViews[i] as UnityEditor.SceneView; + if (sv.camera == camera && sv.cameraMode.drawMode == UnityEditor.DrawCameraMode.LightOverlap) + { + enabled = true; + break; + } + } + } +#endif + return enabled; + } + #if UNITY_EDITOR static Func> materialEditors; diff --git a/com.unity.render-pipelines.high-definition/CHANGELOG.md b/com.unity.render-pipelines.high-definition/CHANGELOG.md index 176dc0804e1..cae2ea33570 100644 --- a/com.unity.render-pipelines.high-definition/CHANGELOG.md +++ b/com.unity.render-pipelines.high-definition/CHANGELOG.md @@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added - Added a function (HDRenderPipeline.ResetRTHandleReferenceSize) to reset the reference size of RTHandle systems. +- Added support for AxF measurements importing into texture resources tilings. +- Added Layer parameter on Area Light to modify Layer of generated Emissive Mesh ### Fixed - Fixed issue with reflection probes in realtime time mode with OnEnable baking having wrong lighting with sky set to dynamic (case 1238047). @@ -21,7 +23,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed a performance issue with stochastic ray traced area shadows. - Made more explicit the warning about raytracing and asynchronous compute. Also fixed the condition in which it appears. - Fixed a null ref exception in static sky when the default volume profile is invalid. -- Fixed an error about procedural sky being logged by mistake. - Fixed flickering of the game/scene view when lookdev is running. - Fixed some GCAlloc in the debug window. - Removed logic in the UI to disable parameters for contact shadows and fog volume components as it was going against the concept of the volume system. @@ -39,11 +40,33 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixed issue with light layers bigger than 8 (and above the supported range). - Fixed an issue where decals were duplicated in prefab isolation mode. - Fixed the valid TRS test failing due to variable not being initialized to the identity matrix in RTShadows (1220600). +- Fixed cookie texture not updated when changing an import settings (srgb for example). +- Fixed transparent motion vectors not working when in MSAA. +- Fixed an invalid rotation in Planar Reflection Probe editor display, that was causing an error message (case 1182022) +- Fix conflicts with Handles manipulation when performing a Reset in DecalComponent (case 1238833) +- Fix error when removing DecalProjector from component contextual menu (case 1243960) +- Fixed issue when switching back to custom sensor type in physical camera settings (case 1244350). +- Fixed the prefab integration of custom passes (Prefab Override Highlight not working as expected). +- Fixed issue with post process when running in RGBA16 and an object with additive blending is in the scene. +- Fixed issue with sceneview camera settings not being saved after Editor restart. +- Fixed issue that caused not all baked reflection to be deleted upon clicking "Clear Baked Data" in the lighting menu (case 1136080) +- Fixed the light overlap scene view draw mode (wasn't working at all). +- Fixed error when undo a Reflection Probe removal in a prefab instance. (case 1244047) +- Fixed various multi-editing issues when changing Emission parameters. +- Fixed issue that prevented cubemap thumbnails from rendering (only on D3D11 and Metal). +- Fixed Microshadow not working correctly in deferred with LightLayers +- Tentative fix for missing include in depth of field shaders. +- Fixed Wizard check on default volume profile to also check it is not the default one in package. +- Fixed light layers not correctly disabled when the lightlayers is set to Nothing and Lightlayers isn't enabled in HDRP Asset ### Changed - Shadowmask and realtime reflection probe property are hide in Quality settings - Made the StaticLightingSky class public so that users can change it by script for baking purpose. - Changed default exposure compensation to 0. +- Improved performance of reflection probe management when using a lot of probes. +- MSAA Within Forward Frame Setting is now enabled by default on Cameras when new Render Pipeline Asset is created +- Cloned volume profile from read only assets are created in the root of the project. (case 1154961) +- Lit and LayeredLit tessellation cross lod fade don't used dithering anymore between LOD but fade the tessellation height instead. Allow a smoother transition ## [8.1.0] - 2020-04-21 diff --git a/com.unity.render-pipelines.high-definition/Documentation~/AxF-Shader.md b/com.unity.render-pipelines.high-definition/Documentation~/AxF-Shader.md index 5a346878a38..116b81ce63b 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/AxF-Shader.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/AxF-Shader.md @@ -58,8 +58,7 @@ Note: The AxF Importer imports every Texture as half float, linear, sRGB gamut ( | **Property** | **Description** | | --------------------- | ------------------------------------------------------------ | -| **Material Tiling U** | Sets the tile rate along the x-axis for every Texture in the **Surface Inputs** section. HDRP uses this value to tile the Textures along the x-axis of the Material’s surface, in object space. | -| **Material Tiling V** | Sets the tile rate along the y-axis for every Texture in the **Surface Inputs** section. HDRP uses this value to tile the Textures along the y-axis of the Material’s surface, in object space. | +| **Main Tiling & Offset** | Sets the tiling rate (xy) and offsets (zw) for every Texture in the **Surface Inputs** section. HDRP uses these values to tile the Textures along the xy-axes of the Material’s surface, in the object's tangent space. Each texture property can also specify additional tiling and offset values that are applied on top of these main values (Texture property-specific tiling rates are multiplied and offsets are added to the main values set here) | | **BRDF Type** | Controls the main AxF Material representation.
• **SVBRDF**: For information on the properties Unity makes visible when you select this option, see [BRDF Type - SVBRDF](#SVBRDF).
•**CAR_PAINT**: For information on the properties Unity makes visible when you select this option, see [BRDF Type - CAR_PAINT](#CAR_PAINT). | diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Custom-Post-Process.md b/com.unity.render-pipelines.high-definition/Documentation~/Custom-Post-Process.md index 35148a1abb8..8e1943c222e 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Custom-Post-Process.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Custom-Post-Process.md @@ -113,7 +113,7 @@ Now there are the **Setup**, **Render**, and **Cleanup** functions. These are he ### GrayScale Shader -HDRP gives you total control over the vertex and fragment Shader so you can edit both of them to suit your needs. Note that there are a number of utility functions in [Common.hlsl](https://github.com/Unity-Technologies/ScriptableRenderPipeline/blob/master/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl) and [Color.hlsl](https://github.com/Unity-Technologies/ScriptableRenderPipeline/blob/master/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl) that the Shader includes by default. This means that you have access to these utility functions in your effect. For example, the GrayScale Shader uses the Luminance() function to convert a linear RGB value to its luminance equivalent. +HDRP gives you total control over the vertex and fragment Shader so you can edit both of them to suit your needs. Note that there are a number of utility functions in [Common.hlsl](https://github.com/Unity-Technologies/Graphics/blob/master/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl) and [Color.hlsl](https://github.com/Unity-Technologies/Graphics/blob/master/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl) that the Shader includes by default. This means that you have access to these utility functions in your effect. For example, the GrayScale Shader uses the Luminance() function to convert a linear RGB value to its luminance equivalent. ``` Shader "Hidden/Shader/GrayScale" diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Decal-Projector.md b/com.unity.render-pipelines.high-definition/Documentation~/Decal-Projector.md index 371832bad66..088a8523a98 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Decal-Projector.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Decal-Projector.md @@ -42,6 +42,8 @@ Using the Inspector allows you to change all of the Decal Projector properties, | **Fade Factor** | Allows you to manually fade the decal in and out. A value of 0 makes the decal fully transparent, and a value of 1 makes the decal as opaque as defined by the **Material**. The **Material** manages the maximum opacity of the decal using **Global Opacity** and an opacity map. | | **Affects Transparent** | Enable the checkbox to allow HDRP to draw the projector’s decal on top of transparent surfaces. HDRP packs all Textures from decals with **Affects Transparency** enabled into an atlas, which can affect memory and performance. You can edit the dimensions of this atlas in the **Decals** section of your Unity Project’s [HDRP Asset](HDRP-Asset.html#Decals). | -## Know limitation +## Limitations -- Decal texture tiling is ignored when projected on transparent surface +- If you project a decal onto a transparent surface, HDRP ignores the decal's Texture tiling. +- When you project a decal onto a surface, the emissive component of the decal affects the surface regardless of whether you enable **Receive Decal** on the surface's Material or not. +- In **Project Settings > Graphics**, if **Instancing Variants** is set to **Strip All**, Unity strips the Decal Shader this component references when you build your Project. This happens even if you include the Shader in the **Always Included Shaders** list. If Unity strips the Shader during the build process, the decal does not appear in your built Application. diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Diffusion-Profile.md b/com.unity.render-pipelines.high-definition/Documentation~/Diffusion-Profile.md index 09d6da2ae7d..8c85dcee955 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Diffusion-Profile.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Diffusion-Profile.md @@ -1,8 +1,13 @@ # Diffusion Profile -The High Definition Render Pipeline (HDRP) stores most [subsurface scattering](Subsurface-Scattering.html) settings in a __Diffusion Profile__ Asset. You can assign a __Diffusion Profile__ Asset directly to Materials that use Subsurface Scattering. +The High Definition Render Pipeline (HDRP) stores most [subsurface scattering](Subsurface-Scattering.md) settings in a __Diffusion Profile__ Asset. You can assign a __Diffusion Profile__ Asset directly to Materials that use Subsurface Scattering. -To create a Diffusion Profile, navigate to __Assets > Create > Rendering > Diffusion Profile__. To use it, open your HDRP Asset and add it to the __Diffusion Profile List__ property. +To create a Diffusion Profile, navigate to __Assets > Create > Rendering > Diffusion Profile__. + +* To use it by default, open your HDRP Asset and, in the **Material** section, add it to the __Diffusion Profile List__. +* To use it in a particular [Volume](Volumes.md), select a Volume with a [Diffusion Profile Override](Override-Diffusion-Profile.md) and add it to the **Diffusion Profile List** . + +## Properties | Property| Description | |:---|:---| @@ -14,7 +19,7 @@ To create a Diffusion Profile, navigate to __Assets > Create > Rendering > Diffu -## Subsurface Scattering only +### Subsurface Scattering only | Property| Description | |:---|:---| @@ -22,7 +27,7 @@ To create a Diffusion Profile, navigate to __Assets > Create > Rendering > Diffu -## Transmission only +### Transmission only | Property| Description | |:---|:---| @@ -33,7 +38,7 @@ To create a Diffusion Profile, navigate to __Assets > Create > Rendering > Diffu -## Profile Previews +### Profile Previews | Property| Description | |:---|:---| diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Forward-And-Deferred-Rendering.md b/com.unity.render-pipelines.high-definition/Documentation~/Forward-And-Deferred-Rendering.md index 3ac208d453b..17daafbdd19 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Forward-And-Deferred-Rendering.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Forward-And-Deferred-Rendering.md @@ -15,8 +15,8 @@ You can choose between three rendering modes: | **Lit Shader Mode** | **Description** | | ------------------- | ------------------------------------------------------------ | -| **Forward** | HDRP calculates the lighting in a single pass when rendering each individual Material. | -| **Deferred** | HDRP renders all GameObjects into a GBuffer that stores the Material properties that are visible on the screen. HDRP then processes the lighting for every GameObject in the Scene. | +| **Forward** | HDRP calculates the lighting in a single pass when rendering each individual GameObject. | +| **Deferred** | HDRP renders the Material properties of every GameObject visible on screen into a GBuffer. HDRP then processes the lighting for every pixel in the frame. | | **Both** | Use the [Frame Settings](Frame-Settings.html) to change between **Forward** and **Deferred** rendering mode on a per Camera and Reflection Probe basis at runtime. Selecting this increases Project [build time](#BuildTime). | If you select **Both**, you can set a rendering mode for all Cameras to use by default, and also override this default rendering mode at runtime for a specific Camera. For example, you can use Forward mode for a Planar Reflection Probe and then render your main Camera using Deferred mode. diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings-API.md b/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings-API.md new file mode 100644 index 00000000000..6a95b715d56 --- /dev/null +++ b/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings-API.md @@ -0,0 +1,112 @@ +# Frame Settings Scripting API + +In the High Definition Render Pipelines (HDRP), [Frame Settings](Frame-Settings.md) control how a rendering component, such as a [Camera](HDRP-Camera.md), [Reflection Probe](Reflection-Probe.md), or [Planar Reflection Probe](Planar-Reflection-Probe.md), renders a Scene. You can specify default Frame Settings for your entire Project and then override them for a particular rendering component. This means that each Frame Setting has a default value, set in the [HDRP Asset](HDRP-Asset.md), then each individual rendering component in your Scene can have an override for it. This is useful if you have lower priority rendering components that do not need to use certain effects. To specify which default Frame Settings a rendering component overrides, each rendering component contains an [override mask](../api/UnityEngine.Rendering.HighDefinition.FrameSettingsOverrideMask.html). A mask is an array of bits, where each bit represents one of two states (0 for disabled and 1 for enabled). Each bit in the override mask represents the override state of a particular Frame Setting. + +To get the final value of a Frame Setting for a particular rendering component, HDRP performs the following steps: + +1. Checks the Project-wide default value for the Frame Setting. In this step, HDRP checks the current value stored for the Frame Setting in the HDRP Asset. +2. Checks the rendering component's override mask to see if the bit that corresponds to the Frame Setting is set. The state of the Frame Setting's bit in the override mask corresponds to the state of the override checkbox to the left of the Frame Setting in the rendering component's Inspector. +3. Gets the Frame Setting's override value from the rendering component's custom Frame Settings. +4. Sanitizes the result. To lighten your Project, you can specify which features to use in the HDRP Asset. If the Frame Setting you try to modify affects an unavailable feature, Unity discards it in this final sanitization pass. To make sure it is not possible for HDRP to process features that are not available, you cannot access the sanitization process via scripting API. + +## Modifying default Frame Settings + +The Default Frame Settings are in the HDRP Asset, so it is not good practice to modify them at runtime. Instead, you can modify them in Edit mode in [Default Settings tab](Default-Settings-Window.md). + +Note that you can set individual default Frame Settings for three types of rendering component: + +- Cameras +- Realtime Reflection Probes and Realtime Planar Reflection Probes +- Baked/custom Reflection Probes and Baked/custom Planar Reflection Probe + +There is currently no scripting API to modify default Frame Settings. + +## Modifying Frame Settings for a particular rendering component + +HDRP stores the Frame Settings for rendering components in additional data components attached to the rendering component. The additional data components are: + +| **Rendering component** | **Additional data component** | +| ----------------------- | ----------------------------- | +| **Camera** | HDAdditionalCameraData | +| **Reflection Probe** | HDAdditionalReflectionData | + +To modify the value of a Frame Setting, the first step is to get a reference to the additional data component. To do this, either create a public variable and assign it in the Inspector, or use [GetComponent()](https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html) where T is the additional data component type. + +Next, access the Frame Settings override mask. This controls which Frame Settings to use overridden values for and is of type `FrameSettingsOverrideMask`. Accessing the Frame Settings override mask is different depending on whether you want to modify the Frame Settings of a Camera or a Reflection Probe: + +- **Camera**: `HDAdditionalCameraData.renderingPathCustomFrameSettingsOverrideMask` +- **Reflection Probe**: `HDAdditionalReflectionData.frameSettingsOverrideMask` + +For information on the API available for `FrameSettingsOverrideMask`, including how to set/unset a bit in the mask, see [FrameSettingsOverrideMask Scripting API](#framesettingsoverridemask-scripting-api). + +Finally, access the Frame Settings structure itself. This controls the actual value for each Frame Setting and is of type `FrameSettings`. Accessing the Frame Settings is also different depending on whether you want to modify the Frame Settings of a Camera or a Reflection Probe: + +- **Camera**: `HDAdditionalCameraData.renderingPathCustomFrameSettings` +- **Reflection Probe**: `HDAdditionalReflectionData.frameSettings` + +For information on the API available for `FrameSettings`, including how to edit the value of a Frame Setting, see [FrameSettings Scripting API](framesettings-scripting-api). + +## Frame Setting enumerations + +To make it easier to set the value of some Frame Settings, HDRP provides the following enum types. + +### LitShaderMode + +An enum which helps to switch a rendering component between deferred and forward rendering. + +For information on what each enum value does, see [LitShaderMode](../api/UnityEngine.Rendering.HighDefinition.LitShaderMode.html). + +### LODBiasMode + +An enum which defines how HDRP calculates a LOD bias. + +For information on what each enum value does, see [LODBiasMode](../api/UnityEngine.Rendering.HighDefinition.LODBiasMode.html). + +### MaximumLODLevelMode + +An enum which defines how HDRP calculates the maximum LOD level. + +For information on what each enum value does, see [MaximumLODLevelMode](../api/UnityEngine.Rendering.HighDefinition.MaximumLODLevelMode.html). + +### FrameSettingsField + +An enum where each entry represents a particular Frame Setting. For a list of entries in this enum, see [FrameSettingsField](../api/UnityEngine.Rendering.HighDefinition.FrameSettingsField.html). + +As well as an entry for each Frame Settings, this enum also includes the value `FrameSettingsField.None` that is set to **-1** for convenience and internal usage. + +## FrameSettingsOverrideMask Scripting API + +This is a structure that has a single field which stores the override mask. For more information about this structure and the API it contains, see [FrameSettingsOverrideMask](../api/UnityEngine.Rendering.HighDefinition.FrameSettingsOverrideMask.html). + +In the override mask, to allow you to easily access the bit for a given Frame Setting, HDRP provides the [FrameSettingsField](#framesettingsfield) enum. You can use this, for example, to find the bit responsible for overriding the **Opaque Objects** Frame Setting. To do this, you would do `this[(int)FrameSettingsField.OpaqueObjects]`. + +The following example shows how to compare the `humanizedData` from a rendering component's override mask with the rendering component's custom Frame Settings. There are some custom Frame Settings set, but the mask is all zeros which means that this rendering component uses the default Frame Settings. + +![](Images/FrameSettingsAPI-watch.png) + +## FrameSettings Scripting API + +This is a structure that contains information on how a rendering component should render the Scene. For more information about this structure and the API it contains, see [FrameSettings](../api/UnityEngine.Rendering.HighDefinition.FrameSettings.html). + +### Example + +The following example demonstrates a component that changes a Camera's Frame Settings so the Camera does not render opaque GameObjects. It has the public field `cameraToChange`, which represents the Camera to change the Frame Settings for, and the public function `RemoveOpaqueObjectsFromRendering`, which contains the logic to change the Camera's Frame Settings. + +``` +using UnityEngine; +using UnityEngine.Rendering.HighDefinition; + +public class ChangeFrameSettings : MonoBehaviour +{ + public Camera cameraToChange; + + public void RemoveOpaqueObjectsFromRendering() + { + HDAdditionalCameraData hdCameraData = cameraToChange.GetComponent(); + + hdCameraData.renderingPathCustomFrameSettingsOverrideMask.mask[(int)FrameSettingsField.OpaqueObjects] = true; + + hdCameraData.renderingPathCustomFrameSettings.SetEnabled(FrameSettingsField.OpaqueObjects, false); + } +} +``` \ No newline at end of file diff --git a/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md b/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md index ba666e6311b..fae814bece9 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md @@ -65,7 +65,7 @@ These settings control the draw distance and resolution of the decals atlas that | **- Atlas Width** | The Decal Atlas width. This atlas stores all decals that project onto transparent surfaces. | | **- Atlas Height** | The Decal Atlas height. This atlas stores all decals that project onto transparent surfaces. | | **- Metal and Ambient Occlusion properties** | Enable the checkbox to allow decals to affect metallic and ambient occlusion Material properties. Enabling this feature has a performance impact. | -| **- Maximum** **Decals on Screen** | The maximum number of decals you can have on screen at one time. | +| **- Maximum Clustered Decals on Screen** | The maximum number of clustered decals that can affect transparent GameObjects on screen. Clustered decals refer to a list of decals that HDRP uses when it renders transparent GameObjects. | @@ -75,7 +75,7 @@ These settings control the draw distance and resolution of the decals atlas that | ------------------------------- | ------------------------------------------------------------ | | **Enable** | Enable the checkbox to make HDRP support dynamic resolution in your Unity Project. | | **- Dynamic Resolution Type** | Use the drop-down to select the type of dynamic resolution HDRP uses:
• **Software**: This option allocates render targets to accommodate the maximum resolution possible, then rescales the viewport accordingly. This allows the viewport to render at varying resolutions. | -| **- Upscale Filter** | Use the drop-down to select the filter that HDRP uses for upscaling.
• **Bilinear**: A low quality upsample. The least resource intensive option.
• **Catmull-Rom**: A bicubic upsample with 4 taps.
• **Lanczos**: A sharp upsample. This method can potentially introduce artifacts so you should not use it for extreme upsampling cases for example, when the screen percentage is less than 50%.
• **Contrast Adaptive Sharpen**: An ultra sharp upsample. Not meant for screen percenatage less than 50% and will still sharpen when screen percentage is set to 100% | +| **- Upscale Filter** | Use the drop-down to select the filter that HDRP uses for upscaling.
• **Bilinear**: A low quality upsample. The least resource intensive option.
• **Catmull-Rom**: A bicubic upsample with 4 taps.
• **Lanczos**: A sharp upsample. This method can potentially introduce artifacts so you should not use it for extreme upsampling cases for example, when the screen percentage is less than 50%.
• **Contrast Adaptive Sharpen**: An ultra sharp upsample. This option is not meant for screen percentages less than 50% and still sharpens when the screen percentage is set to 100%. This uses **FidelityFX (CAS) AMD™**. For information about FidelityFX and Contrast Adaptive Sharpening, see [AMD FidelityFX](https://www.amd.com/en/technologies/radeon-software-fidelityfx). | | **- Minimum Screen Percentage** | The minimum screen percentage that dynamic resolution can reach. | | **- Maximum Screen Percentage** | The maximum screen percentage that dynamic resolution can reach. This value must be higher than the **Min Screen Percentage**. | | **- Force Screen Percentage** | Enable the checkbox to force HDRP to use a specific screen percentage for dynamic resolution. This feature is useful for debugging dynamic resolution. | diff --git a/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md b/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md index feb8105994e..e3c1be83a66 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md @@ -40,7 +40,6 @@ Use Volumes to localize environmental Scene settings and post-processing effects HDRP Shaders allow you to use the following features: - [Opaque/transparent surfaces](Surface-Type.md). - - Different blend modes for transparent surfaces. - Transparent surfaces that work with fog. - Refraction and distortion for transparent surfaces. @@ -92,19 +91,19 @@ The StackLit Shader improves on the Lit Shader in favor of quality over performa ![](Images/HDRPFeatures-HairShader.png) -The Hair Shader is purpose-built to accurately render realistic hair in your Unity Project. It uses an improved Kajiya Kay lighting model which features better energy conservation and provides you with more flexibility. +The Hair Shader is purpose-built to accurately render realistic hair in your Unity Project. It uses an improved Kajiya Kay lighting model which features better energy conservation and provides you with more flexibility. For more information, including a full list of Shader properties, see the [Hair Shader documentation](Master-Node-Hair). ### Fabric Shader ![](Images/HDRPFeatures-FabricShader.png) -The Fabric Shader allows you to render realistic fabric Materials in HDRP. You can use the cotton wool or silk lighting model to create a wide variety of fabrics. +The Fabric Shader allows you to render realistic fabric Materials in HDRP. You can use the cotton wool or silk lighting model to create a wide variety of fabrics. For more information, including a full list of Shader properties, see the [Fabric Shader documentation](Master-Node-Fabric). ### AxF Shader ![](Images/HDRPFeatures-AxFShader.png) -The AxF Shader supports the [X-Rite AxF](https://www.xrite.com/axf) measured Material format. The AxF importer, available in [Unity Enterprise for Product Lifecylce](https://unity.com/products/unity-enterprise-product-lifecycle), automatically populates an AxF Material when it imports AxF Assets. +The AxF Shader supports the [X-Rite AxF](https://www.xrite.com/axf) measured Material format. The AxF importer, available in [Unity Enterprise for Product Lifecylce](https://unity.com/products/unity-enterprise-product-lifecycle), automatically populates an AxF Material when it imports AxF Assets. For more information, including a full list of Shader properties, see the [AxF Shader documentation](AxF-Shader). ### Decal Shader @@ -116,7 +115,7 @@ The Decal Shader allows you to place decals on surfaces in your Scene. To apply ![](Images/HDRPFeatures-TerrainShader.png) -The Terrain Lit Shader is compatible with the built-in terrain system and supports up to eight layers in a single draw call. This Shader uses the same lighting model as the Lit Shader. +The Terrain Lit Shader is compatible with the built-in terrain system and supports up to eight layers in a single draw call. This Shader uses the same lighting model as the Lit Shader. For more information, including the full list of Shader properties, see the [Terrain Lit Shader documentation](Terrain-Lit-Shader.md). @@ -216,7 +215,7 @@ om ![](Images/HDRPFeatures-Fog.png) -In HDRP, you set up fog, inside a [Volume](Volumes.md),so you can change fog settings, or even the fog type itself, depending on the position of the Camera in the Scene. You can set the color of the fog yourself or use the color of the sky. HDRP fog affects Materials with both opaque and transparent surfaces. HDRP implements an exponential [fog](Override-Fog.md) with optional volumetric effects. +In HDRP, you set up fog, inside a [Volume](Volumes.md), so you can change fog settings, or even the fog type itself, depending on the position of the Camera in the Scene. You can set the color of the fog yourself or use the color of the sky. HDRP fog affects Materials with both opaque and transparent surfaces. HDRP implements an exponential [fog](Override-Fog.md) with optional volumetric effects. ### Light Layers @@ -250,7 +249,7 @@ HDRP uses ray tracing to replace some of its screen space effects, shadowing tec Real time raytracing effect are currently in Preview and behavior could change in the future. - [Ray-Traced Ambient Occlusion](Ray-Traced-Ambient-Occlusion.md) replaces [screen space ambient occlusion](Override-Ambient-Occlusion.md) with a more accurate, ray-traced, ambient occlusion technique that can use off screen data. -- [Ray-Traced Contact Shadows](Ray-Tracing-Contact-Shadows.md) replaces [contact shadows](Override-Contact-Shadows.md) with a more accurate, ray-traced, contact shadow technique that can use off screen data. +- [Ray-Traced Contact Shadows](Ray-Traced-Contact-Shadows.md) replaces [contact shadows](Override-Contact-Shadows.md) with a more accurate, ray-traced, contact shadow technique that can use off screen data. - [Ray-Traced Global Illumination](Ray-Traced-Global-Illumination.md) is an alternative to Light Probes and lightmaps in HDRP. - [Ray-Traced Reflections](Ray-Traced-Reflections.md) is a replacement for [screen space reflection](Override-Screen-Space-Reflection.md) that uses a ray-traced reflection technique that can use off-screen data. - [Ray-Traced Shadows](Ray-Traced-Shadows.md) replace shadow maps for Directional, Point, and Area [Lights](Light-Component.md). @@ -307,7 +306,7 @@ The Render Pipeline Debugger contains many debugging and visualization tools to ### LookDev ![](Images/HDRPFeatures-LookDev.png) -The LookDev is a viewer that allows you to import and display Assets in a good, consistent lighting environment. Use it to validate outsourced Assets or to showcase your own created Asset with HDRP. For more information on the LookDev, including a description of how to use it, see the [LookDev documentation](LookDev.md). +The LookDev is a viewer that allows you to import and display Assets in a good, consistent lighting environment. Use it to validate outsourced Assets or to showcase your own created Asset with HDRP. For more information on the LookDev, including a description of how to use it, see the [LookDev documentation](Look-Dev.md). ### MatCap mode diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettingsAPI-watch.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettingsAPI-watch.png new file mode 100644 index 00000000000..7b6000f35dd --- /dev/null +++ b/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettingsAPI-watch.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e025291d565a2ce695ac45c8dc00c59c74ba0750da440e86245d4878c9b40a8b +size 9502 diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/TerrainLitShader1.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/TerrainLitShader1.png new file mode 100644 index 00000000000..930b14bca24 --- /dev/null +++ b/com.unity.render-pipelines.high-definition/Documentation~/Images/TerrainLitShader1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33e6168455c6873019999e3206267be8e3f7a93d6ef9e9d9c94c0c13949f2fbf +size 45539 diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumetricLighting1.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumetricLighting1.png deleted file mode 100644 index 2e653c96395..00000000000 --- a/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumetricLighting1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e93f3e969405031a0b0ab665441d433350ee4560108b83e35fa8ecc9ab3b1750 -size 5823 diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumetricLighting2.png b/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumetricLighting2.png deleted file mode 100644 index e410c9c1561..00000000000 --- a/com.unity.render-pipelines.high-definition/Documentation~/Images/VolumetricLighting2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9e453bbd6f2834915a61cb6e6be8abcee01dc6ec3814184a4b73761ad8c8597 -size 20335 diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Light-Component.md b/com.unity.render-pipelines.high-definition/Documentation~/Light-Component.md index ea857ebb349..cc7d7669fea 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Light-Component.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Light-Component.md @@ -55,7 +55,7 @@ To make the Light work with the **Animation window**, when you click on the **Ad | **Property** | **Description** | | --------------- | ------------------------------------------------------------ | | **Type** | Defines the Light’s type. Lights of different Types behave differently, so when you change the **Type**, the properties change in the Inspector. Possible types are:
• Directional
• Point
• Spot
• Area | -| **Mode** | Specify the [Light Mode](https://docs.unity3d.com/Manual/LightModes.html) that HDRP uses to determine how to bake a Light, if at all. Possible modes are:
• [Realtime](https://docs.unity3d.com/Manual/LightMode-Realtime.html)
• [Mixed](https://docs.unity3d.com/Manual/LightMode-Mixed.html)
• [Baked](https://docs.unity3d.com/Manual/LightMode-Baked.html) | +| **Mode** | Specify the [Light Mode](https://docs.unity3d.com/Manual/LightModes.html) that HDRP uses to determine how to bake a Light, if at all. Possible modes are:
• [Realtime](https://docs.unity3d.com/Manual/LightMode-Realtime.html): Unity performs the lighting calculations for Realtime Lights at runtime, once per frame.
• [Mixed](https://docs.unity3d.com/Manual/LightMode-Mixed.html): Mixed Lights combine elements of both realtime and baked lighting.
• [Baked](https://docs.unity3d.com/Manual/LightMode-Baked.html): Unity performs lighting calculations for Baked Lights in the Unity Editor, and saves the results to disk as lighting data. Note that soft falloff/range attenuation is not supported for Baked Area Lights. | | **Light Layer** | A mask that allows you to choose which Light Layers this Light affects. The affected Light only lights up Mesh Renderers with a matching **Rendering Layer Mask**.
This property only appears when you enable [more options](More-Options.html) for this section. | #### Light Types guide diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Look-Dev.md b/com.unity.render-pipelines.high-definition/Documentation~/Look-Dev.md index 2797d2b7a5c..db12c7feac2 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Look-Dev.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Look-Dev.md @@ -1,142 +1,6 @@ # Look Dev +Look Dev is an image-based lighting tool that you can use to test how your Assets look in various lighting conditions. -Look Dev is an image-based lighting tool that contains a viewer for you to check and compare Assets to ensure they work well in various lighting conditions. Look Dev uses the Scriptable Render Pipeline, so it can display the Asset in the same way as it looks in your Scene. You can load Assets into Look Dev either as Prefabs or from the Hierarchy window. +For more information, see [the SRP Core documentation.](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/index.html?subfolder=/manual/Look-Dev.html) -Look Dev is only available in Edit mode. The Look Dev window closes when you enter Play mode. - -### Asset validation - -Asset validation confirms whether Assets are authored correctly and behave as expected in different lighting environments. - -You must use an HDRI (high dynamic range image) to validate your Assets in Look Dev. An HDRI contains real-world lighting with incredibly high detail. As such, it offers perfect lighting that is difficult to create by hand. By using such an accurate lighting environment to test an Asset, you can determine whether the Asset itself or your Project's lighting is reducing the visual quality of your Scene. - -You can load two different Assets into Look Dev at the same time and compare them in two viewports. For example, an Art Director can check that a new Asset matches the art direction guidelines of a reference Asset. - -## Using Look Dev - -To open Look Dev in the Unity Editor, select **Window > Render Pipeline > Look Dev**. The first time you use Look Dev, you must either create a new [Environment Library](Look-Dev-Environment-Library.html) or load one. For information on how to create an Environment Library, see the [Environment Library documentation](Look-Dev-Environment-Library.html). - -### Viewports - -By default, there is only one viewport in Look Dev, but you can choose from a selection of split-screen views (see the [Multi-view section](#MultiView)). - -### Controls - -Navigation with the Look Dev Camera works in a similar way to the [Scene view Camera](https://docs.unity3d.com/Manual/SceneViewNavigation.html): - -- **Rotate around pivot:** Left click and drag (this is similar to the Scene view except that you need to press the Alt key for the Scene view Camera). -- **Pan camera:** Middle click and drag. -- **Zoom:** Alt + right click and drag. -- **Forward/backward:** Mouse wheel. -- **First Person mode:** Right click + W, A,S, and D. - -### Loading Assets into Look Dev - -Look Dev lets you view: - -**Prefabs** - To load a Prefab into Look Dev, drag it from the Project window into the Look Dev viewport. - -**GameObjects** - To load a copy of a Hierarchy GameObject, drag the GameObject from the Hierarchy into the Look Dev viewport. - - - -## Viewport modes - -Use the toolbar in the top-left of the window to change which viewing mode Look Dev uses. - -### Single viewport - -![](Images/LookDev1.png) - -By default, Look Dev displays a single viewport which contains the Prefab or GameObject you are working with. If you are in another viewing mode, you can click either the number **1** or number **2** button to go back to single view. Each button corresponds to a viewport in Look Dev. Select button **1** to use viewport 1, and button 2 to use viewport **2**. - - - -### Multi-viewport - -![](Images/LookDev2.png) - -Use multiple viewports to compare different environments and settings for the same Asset. You can arrange viewports: - -- Vertically side-by-side. Use this mode to compare two different lighting conditions on the same Asset to check that the Asset behaves correctly. -- Horizontally side-by-side. Use this mode to compare two different lighting conditions for horizontal objects, like an environment Asset, to check that the Asset behaves correctly. -- Split-screen. Use this mode investigate texture problems using a debug Shader mode (for example, use one screen to view Normal or Albedo shading, and the other for environment-lit mode). -- Side-by-side and split-screen: Use this mode to compare two different versions of the same Asset using the same lighting conditions to see which changes improve the Asset’s quality. - -All three of these modes are useful to compare two different versions of the same Asset using the same lighting conditions to see which changes improve the Asset’s quality. - -To load a different Prefab or Hierarchy GameObject into each split-screen view, drag and drop the Asset into the viewport that you want to view it in. - -When using multiple viewports, it only makes sense to compare different Prefabs or GameObjects when you want to look at two versions of the same Asset. Comparing completely different Assets doesn’t give you a good idea of the difference in lighting or visual effect. - -##### Vertical or horizontal side-by-side - -Vertical and horizontal side-by-side viewports show an identical view of your Asset. - -![](Images/LookDev3.png) - -##### Split-screen - -In a split-screen view, there is a red/blue manipulation Gizmo that separates the two viewports. For information on how to use this Gizmo, see [Using the manipulation Gizmo](#ManipulationGizmo). - -![](Images/LookDev4.png) - -#### Multi-viewport Camera - -By default, Look Dev synchronizes the camera movement for both views. To decouple the Cameras from one another, and manipulate them independently, click the **Synchronized Cameras** button in-between the two numbered Camera buttons. - -![](Images/LookDev5.png) - -To align the cameras with each other, or reset them, click on the drop-down arrow next to the viewport **2** icon: - -![](Images/LookDev6.png) - - - -### Using the manipulation Gizmo - -The manipulation Gizmo represents the separation plane between the two viewports. It has different behavior in split-screen mode, but you use it in the same way for both side-by-side or split-screen modes. - -#### Moving the separator - -To move the separator, click and drag the straight line of the Gizmo to the location you want. - -![](Images/LookDev7.png) - -#### Changing the orientation and length - -To change the orientation and length of the manipulator Gizmo, click and drag the circle at either end of the manipulator. Changing the length of the Gizmo lets you set the orientation and [blending](#Blending) values more precisely. - -![](Images/LookDev8.png)) - -#### Changing the split in increments - -To change the split in increments, click and hold the circle on the end of the manipulation Gizmo, then hold Shift as you move the mouse. This snaps the manipulation Gizmo to set angles in increments of 22.5°, which is useful for a perfectly horizontal, vertical or diagonal angle. - - - -#### Blending - -The central white circle on the separator allows you to blend between the two views. Left click on it and drag along the red line to blend the left-hand view with the right-hand view. Drag along the blue line to blend the right-hand view with the left-hand view (as shown in the image below). - -The white circle automatically snaps back into the center when you drag it back. This helps you get back to the default blending value quickly. - -![](Images/LookDev9.png) - -### HDRI environments in Look Dev - -Lighting in Look Dev uses an HDRI. The Look Dev view allows you to manipulate and easily switch between HDRIs to simulate different environments for the Asset you are working on. - -Look Dev uses the [Environment Library](Look-Dev-Environment-Library.html) Asset to store a list of environments, which are HDRIs with extra properties that you can use to further refine the environment. For information on how to create, edit, and assign Environment Libraries, see the [Environment Library documentation](Look-Dev-Environment-Library.html#Creation). - -## Implementing Look Dev for your custom Scriptable Render Pipeline - -In order to use Look Dev in your custom Scriptable Render Pipeline, you must implement the **UnityEngine.Rendering.LookDev.IDataProvider** interface. - -| **Function** | **Description** | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| **void FirstInitScene(StageRuntimeInterface stage)** | Look Dev calls this function after it initializes the Scene with a Light and Camera. It uses this function to add and configure extra components according to the needs of your Scriptable Render Pipeline. | -| **void UpdateSky(Camera camera, Sky sky, StageRuntimeInterface stage)** | Look Dev uses this function to update the environment when you change something in Look Dev. You can handle the sky in various ways, so add code that corresponds to your Scriptable Render Pipeline. | -| **IEnumerable****** **supportedDebugModes { get; }** | Use this function to specify the list of supported debug modes. You do not need to add **None** because Look Dev handles that automatically. | -| **void UpdateDebugMode(int debugIndex)** | Use this function to update the debug mode based on what the user selects. The **debugIndex** matches the list in **supportedDebugModes**. If the user selects **None**, then the **debugIndex** is **-1**; | -| **void GetShadowMask(ref RenderTexture output, StageRuntimeInterface stage)** | This function computes a shadow map. The given **StageRuntimeInterface** contains access to the Camera and a Light simulating the sun. | \ No newline at end of file +![](Images/HDRPFeatures-LookDev.png) diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Master-Node-Lit.md b/com.unity.render-pipelines.high-definition/Documentation~/Master-Node-Lit.md new file mode 100644 index 00000000000..86e814c1e11 --- /dev/null +++ b/com.unity.render-pipelines.high-definition/Documentation~/Master-Node-Lit.md @@ -0,0 +1,111 @@ +# Lit master node + +You can use the Lit master node to render custom physically based materials in the High Definition Render Pipeline (HDRP). It supports various effects, such as subsurface scattering, anisotropy, iridescence, specular color and translucency. + +The Lit master node is the destination node for the Lit Shader Graph. It contains ports that you can attach to other Shader Graph nodes so you can edit properties that control the appearance of the Material. To customize the Material, you must override the inputs attached to these slots with your own values. + +![](Images/HDRPFeatures-LitShader.png) + +## Creating and editing a Lit Material + +To create and edit a Material that uses this master node, see [Creating and Editing HDRP Shader Graphs](Customizing-HDRP-materials-with-Shader-Graph.md). When you create a Material from the Shader Graph, the properties that you exposed in the Blackboard appear in the **Exposed Properties** section. + +## Properties + +There are properties on the master node as well as properties on the Materials that use it. [Material properties](#material-inspector) are in the Inspector for Materials that use this Shader, and the master node properties are inside the Shader Graph itself in two sections: + +- [**Master node input ports**](#Master-node-input-ports): Shader Graph input ports on the master node itself. You can connect these ports to the output of other nodes or, in some cases, input your own values. +- [**Master node settings menu**](#Master-node-settings-menu): Settings you can use to customize your master node and expose more input ports. + +### Master node input ports + +The following table describes the input ports on a Lit master node, including the property type and Shader stage used for each port. For more information on Shader stages, see [Shader stage](https://docs.unity3d.com/Packages/com.unity.shadergraph@6.9/manual/Shader-Stage.html). + +| **Property** | **Type** | **Stage** | **Description** | +| --------------------------------------- | ----------------- | --------- | ------------------------------------------------------------ | +| **Vertex Position** | Vector 3 | Vertex | The object space position of the Material per vertex. | +| **Vertex Normal** | Vector 3 | Vertex | The object space normals of the Material per vertex. | +| **Vertex Tangent** | Vector 3 | Vertex | The object space tangent of the Material per vertex. | +| **Base Color** | Vector 3 | Fragment | The color of the Material. To assign an image, connect a sampled Texture2D to this Master Node. | +| **Normal** | Vector 3 | Fragment | The normal of the pixel.To modify the coordinate space, use the **Fragment Normal Space** setting. | +| **Bent Normal** | Vector 3 | Fragment | The [bent normal](Glossary.md#BentNormalMap) of the fragment. | +| **Subsurface Mask** | Vector 1 | Fragment | The strength of the screen-space blur effect across the Material.
This port only appears when you set **Material Type** to **Subsurface Scattering**. | +| **Tangent** | Vector 3 | | Assign a Texture that defines the direction of the anisotropy effect of a pixel, in tangent space. This stretches the specular highlights in the given direction.
This port only appears when you set **Material Type** to **Anisotropy**. | +| **Anisotropy** | Vector 1 | Fragment | This stretches the specular highlights in a given direction. Negative values make the effect vertical, and positive values make the effect horizontal.
This port only appears when you set **Material Type** to **Anisotropy**. | +| **Thickness** | Vector 1 | Fragment | The strength of the transmission effect. Higher values mean thicker areas, and thicker areas transmit less light. Expected range 0 - 1.
This port only appears when you set **Material Type** to **Subsurface Scattering** or **Translucent**. | +| **Diffusion Profile** | Diffusion Profile | Fragment | Specifies which [Diffusion Profile](Diffusion-Profile.md) the Material uses for subsurface scattering and/or transmission.
This port only appears when you set **Material Type** to **Subsurface Scattering** or **Translucent**. | +| **Iridescence Mask** | Vector 1 | Fragment | The strength of the iridescent effect.
This port only appears when you set **Material Type** to **Iridescence**. | +| **Iridescence Layer Thickness** | Vector 1 | Fragment | The thickness of the iridescence. This modifies the color of the effect.
This port only appears when you set **Material Type** to **Iridescence**. | +| **Specular Color** | Vector 3 | Fragment | The color of the specular highlight.
This port only appears when you set **Material Type** to **Specular Color**. | +| **Coat Mask** | Vector 1 | Fragment | This simulates a clear coat effect on the Material to mimic Materials like car paint or plastics. | +| **Metallic** | Vector 1 | Fragment | The metallic value of the material, 1 for metals and 0 for non metals. | +| **Smoothness** | Vector 1 | Fragment | Every light ray that hits a smooth surface bounces off at predictable and consistent angles. For a perfectly smooth surface that reflects light like a mirror, set this to a value of 1. Less smooth surfaces reflect light over a wider range of angles (because the light hits the bumps in the microsurface), so the reflections have less detail and spread across the surface in a more diffused pattern. | +| **Ambient Occlusion** | Vector 1 | Fragment | A multiplier for the intensity of diffuse global illumination. Set this to **0** to remove all global illumination. | +| **Specular Occlusion** | Vector 1 | Fragment | A multiplier for the intensity of specular global illumination.
This port only appears when you set **Specular Occlusion Mode** to **Custom**. | +| **Emission** | Vector 3 | Fragment | The emission color and it’s intensity. | +| **Alpha** | Vector 1 | Fragment | Defines the Material's alpha value. Used for transparency and/or alpha clip. Expected range 0 - 1. | +| **Alpha Clip Threshold** | Vector 1 | Fragment | Set the alpha value limit that HDRP uses to determine whether it should render each pixel. If the alpha value of the pixel is equal to or higher than the limit then HDRP renders the pixel.
This port only appears when you enable the **Alpha Clipping** setting. | +| **Alpha Clip Threshold Depth Prepass** | Vector 1 | Fragment | Set the alpha value limit that HDRP uses for the Transparent depth prepass.
This port only appears when you set surface type to **Transparent** and enable the **Transparent Depth Prepass** setting. | +| **Alpha Clip Threshold Depth Postpass** | Vector 1 | Fragment | Set the alpha value limit that HDRP uses for the Transparent depth postpass.
This port only appears when you enable the **Transparent Depth Postpass** setting. | +| **Alpha Clip Threshold Shadow** | Vector 1 | Fragment | Set a separate threshold value for alpha clipping shadows.
This port only appears when you set surface type to **Transparent** and enable the **Alpha Clipping** and **Use Shadow Threshold** setting. | +| **Specular AA Screen Space Variance** | Vector 1 | Fragment | The strength of the [geometric specular anti-aliasing](Geometric-Specular-Anti-Aliasing.md) effect between 0 and 1. Higher values produce a blurrier result with less aliasing.
This port only appears when you enable the **Geometric Specular AA** setting. | +| **Specular AA Threshold** | Vector 1 | Fragment | The maximum value that HDRP subtracts from the smoothness value to reduce artifacts.
This port only appears when you enable the **Geometric Specular AA** setting. | +| **RefractionIndex** | | | The index of refraction defines the ratio between the speed of light in a vacuum and the speed of light in the medium of the Material. Higher values produce more intense refraction.
This port only appears when you set **Refraction Model** to a value other than **None**. | +| **Transmittance Color** | | | Refractive Materials can colorize light which passes through them. Use this input to define that color.
This port only appears when you set **Refraction Model** to a value other than **None**. | +| **Transmittance Absorption Distance** | | | Set the thickness of the object at which the Transmittance Color affects incident light at full strength.
This port only appears when you set **Refraction Model** to a value other than **None**. | +| **Distortion Vector** | Vector 2 | Fragment | Set the distortion vector for the light passing through the Material. This port only appears when you set **Surface Type** to **Transparent** and enable the **Distortion** setting. | +| **Distortion Blur** | Vector 1 | Fragment | Set the blur intensity for the distortion.
This port only appears when you set **Surface Type** to **Transparent** and enable the **Distortion** setting. | +| **Baked GI** | Vector 3 | Fragment | Replaces the built-in diffuse global illumination (GI) solution with a value that you can set. This is for the front [face](Glossary.md#Face) of the Mesh only.
This port only appears when you enable the **Override Baked GI** setting. | +| **Baked Back GI** | Vector 3 | Fragment | Replaces the built-in diffuse global illumination (GI) solution with a value that you can set. This is for the back [face](Glossary.md#Face) of the Mesh only.
This port only appears when you enable the **Override Baked GI** setting. | +| **Depth Offset** | Vector 1 | Fragment | The value that the Shader uses to increase the depth of the fragment by.
This port only appears when you enable the **Depth Offset** setting. | + +### Master node settings menu + +To view these properties, click the cog icon in the top right of the master node. + +| **Property** | **Description** | +| ------------------------------------ | ------------------------------------------------------------ | +| **Precision** | Select the precision of the calculations that the Shader processes. Lower precision calculations are faster but can cause issues, such as incorrect intensity for specular highlights.
• **Inherit**: Uses global precision settings. This is the highest precision setting, so using it does not result in any precision issues, but Shader calculations are slower than other values.
• **Float**: Uses single-precision floating-point instructions. This makes each calculation less resource-intensive, which speeds up calculations.
• **Half**: Uses half-precision floating-point instructions. This is the fastest precision level, which means that calculations that use it are the least resource-intensive to process. This precision setting is the most likely one to result in issues, such as quantization (banding) artifacts and intensity clipping. | +| **Surface Type** | Use the drop-down to define whether your Material supports transparency or not. Materials with the **Transparent Surface Type** are more resource intensive to render than Materials with the **Opaque** **Surface Type**. HDRP exposes more properties, depending on the **Surface Type** you select. For more information about the feature and for the list of properties each **Surface Type** exposes, see the [Surface Type documentation](Surface-Type.md). | +| **Rendering Pass** | Use the drop-down to set the rendering pass that HDRP processes this Material in.
• **Before Refraction**: Draws the GameObject before the refraction pass. This means that HDRP includes this Material when it processes refraction. To expose this option, select **Transparent** from the **Surface Type** drop-down.
• **Default**: Draws the GameObject in the default opaque or transparent rendering pass pass, depending on the **Surface Type**.
• **Low Resolution**: Draws the GameObject in half resolution after the **Default** pass.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Blending mode** | Use the drop-down to determine how HDRP calculates the color of each pixel of the transparent Material by blending the Material with the background pixels.
• **Alpha**: Uses the Material’s alpha value to change how transparent an object is. 0 is fully transparent. 1 appears fully opaque, but the Material is still rendered during the Transparent render pass. This is useful for visuals that you want to be fully visible but to also fade over time, like clouds.
• **Additive**: Adds the Material’s RGB values to the background color. The alpha channel of the Material modulates the intensity. A value of 0 adds nothing and a value of 1 adds 100% of the Material color to the background color.
• **Premultiply**: Assumes that you have already multiplied the RGB values of the Material by the alpha channel. This gives better results than **Alpha** blending when filtering images or composing different layers.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **- Preserve Specular Lighting** | Enable the checkbox to make alpha blending not reduce the intensity of specular highlights. This preserves the specular elements on the transparent surface, such as sunbeams shining off glass or water.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Sorting Priority** | Allows you to change the rendering order of overlaid transparent surfaces. For more information and an example of usage, see the [Material sorting documentation](Renderer-And-Material-Priority.md#SortingByMaterial).
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Receive Fog** | Enable the checkbox to allow fog to affect the transparent surface. When disabled, HDRP does not take this Material into account when it calculates the fog in the Scene.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Back Then Front Rendering** | Enable the checkbox to make HDRP render this Material in two separate draw calls. HDRP renders the back face in the first draw call and the front face in the second.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Transparent Depth Prepass** | Enable the checkbox to add polygons from the transparent surface to the depth buffer to improve their sorting. HDRP performs this operation before the lighting pass and this process improves GPU performance.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Transparent Depth Postpass** | Enable the checkbox to add polygons to the depth buffer that post-processing uses. HDRP performs this operation before the lighting pass. Enabling this feature is useful if you want to use post-processing effects that use depth information, like [motion blur](Post-Processing-Motion-Blur.md) or [depth of field](Post-Processing-Depth-of-Field.md).
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Transparent Writes Motion Vector** | Enable the checkbox to make HDRP write motion vectors for transparent GameObjects that use this Material. This allows HDRP to process effects like motion blur for transparent objects. For more information on motion vectors, see the [motion vectors documentation](Motion-Vectors.md).
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Refraction Model** | Use the drop-down to select the model that HDRP uses to process refraction.
• **None**: No refraction occurs. Select this option to disable refraction.
• **Box**: A box-shaped model where incident light enters through a flat surface and leaves through a flat surface. Select this option for hollow surfaces.
• **Sphere**: A sphere-shaped model that produces a magnifying glass-like effect to refraction. Select this option for solid surfaces.
• **Thin**: A thin box surface type, equivalent to Box with a fixed thickness of 5cm. Select this for thin window-like surfaces.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Distortion** | Enable the checkbox to distort the light passing through this transparent Material.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **- Distortion Blend Mode** | Set the mode HDRP uses to blend overlaid distortion surfaces.
This setting only appears when you set **Surface Type** to **Transparent** and enable the **Distortion** setting. | +| **- Distortion Depth Test** | Check this box to make GameObjects that are closer to the Camera hide the distortion effect, otherwise you can always see the effect. If you do not enable this feature then the distortion effect appears on top of the rendering.
This setting only appears when you set **Surface Type** to **Transparent** and enable the **Distortion** setting. | +| **Depth Write** | Enable the checkbox to make HDRP write depth values for transparent GameObjects that use this Material.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Cull Mode** | Use the drop-down to select which face to cull for transparent GameObjects that use this Material. To expose this option, select **Transparent** from the **Surface Type** drop-down.
• **Front:** Culls the front face of the geometry.
• **Back:** Culls the back face of the geometry.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Depth Test** | Unity uses DepthTest when rendering an object, to check if it is behind another object. Unity does this by testing the z-value of a given Objects pixel and comparing against a value stored in the depth buffer. By default, DepthTest is set to Less Equal, allowing the original object to appear in front of the object it is tested against. Use the drop-down to select the comparison function to use for the depth test. Each comparison function changes how the Shader renders. To expose this option, select Transparent from the Surface Type drop-down.
• **Disabled**: Do not perform a depth test.
• **Never**: The depth test never passes.
• **Less**: The depth test passes if the pixel's z-value is less than the stored value.
• **Equal**: The depth test passes if the pixel's z-value is equal to the stored value.
• **Less Equal**: The depth test passes if the pixel's z-value is less than or equal than the Z-buffers value. This renders the tested pixel in front of the other.
• **Greater**: The depth test passes if the pixel's z-value is greater than the stored value.
• **Not Equal**: The depth test passes if the pixel's z-value is not equal to the stored value.
• **Greater Equal**: The depth test passes if the pixel's z-value is greater than or equal to the stored value.
• **Always**: The depth test always passes, there is no comparison to the stored value.
This setting only appears when you set **Surface Type** to **Transparent.** | +| **Double Sided** | Enable this setting to make HDRP render both faces of the polygons in your geometry. For more information about the feature and for the list of properties this feature exposes, see the [Double-Sided documentation](Double-Sided.md). | +| **Fragment Normal Space** | Use this drop-down to select the type of Normal Map space that this Material uses.
• **TangentSpace:** Defines the normals in [tangent space](Glossary.html#TangentSpaceNormalMap). Use this to tile a Texture on a Mesh. The normal map Texture must be BC7, BC5, or DXT5nm format.
• **ObjectSpace:** Defines the normals in [object space](Glossary.md#ObjectSpaceNormalMap). Use this for planar-mapping GameObjects like the terrain. The normal map must be an RGB Texture .
• **WorldSpace:** Defines the normal maps in world space. | +| **Alpha Clipping** | Enable this setting to make this Material act like a Cutout Shader. HDRP then discards pixels with an alpha value below the **Threshold** value. | +| **Use Shadow Threshold** | Enable this setting to set another threshold value for alpha clipping shadows. | +| **Material Type** | The **Material Type** property allows you to give your Material a type, which allows you to customize it with different settings depending on the **Material Type** you select. For information on the available Material Types, see [Material Type](Material-Type.md). | +| **Transmission** | Enable the checkbox to make HDRP simulate the translucency of an object using a thickness map. Configure subsurface scattering and transmission settings using a [Diffusion Profile](Diffusion-Profile.md). For more information, see documentation on [Subsurface Scattering](Subsurface-Scattering.md).
This setting only appears when you set **Material Type** to **Subsurface Scattering** | +| **Energy Conserving Specular** | Enable the checkbox to make HDRP reduce the diffuse color of the Material if the specular effect is more intense. This makes the lighting of the Material more consistent, which makes the Material look more physically accurate.
This port only appears when you set **Material Type** to **Specular Color** | +| **Receive Decals** | Enable this setting to allow HDRP to draw decals on this Material’s surface. | +| **Receive SSR** | Enable this setting to make HDRP include this Material when it processes the screen space reflection pass. | +| **Add Precomputed Velocity** | Enable this setting to use precomputed velocity information stored in an Alembic file. | +| **Geometric Specular AA** | Enable this setting to make HDRP perform geometric anti-aliasing on this Material. This modifies the smoothness values on surfaces of curved geometry to remove specular artifacts. For more information about the feature and for the list of properties this feature exposes, see the [Geometric Specular Anti-aliasing documentation](Geometric-Specular-Anti-Aliasing.md). | +| **Specular Occlusion Mode** | Set the mode that HDRP uses to calculate specular occlusion.
• **Off**: Disables specular occlusion.
• **From AO**: Calculates specular occlusion from the ambient occlusion map and the Camera's view vector.
• **From AO and Bent Normal**: Calculates specular occlusion from the ambient occlusion map, the bent normal map, and the Camera's view vector.
• **Custom**: Allows you to specify your own specular occlusion values. | +| **Override Baked GI** | Enable this setting to expose two baked GI [input ports](#Master-node-input-ports). This makes this Materials ignore global illumination in your Scene and, instead, allows you to provide your own global illumination values and customize the way this Material looks. | +| **Depth Offset** | Enable this setting to expose the **DepthOffset** [InputPort](#Master-node-input-ports) which you can use to increase the depth value of the fragment and push it away from the Camera. | +| **DOTS instancing** | Enable GPU Instancing for use with the Hybrid Renderer. | +| **Support LOD CrossFade** | Indicates whether HDRP processes dithering when moving from one LOD level to another when sampling Textures. | + +### Material Inspector + +These properties are in the **Exposed Properties** section of the Inspector and sit alongside the properties that you exposed in the Shader Graph's Blackboard. If you set **Override ShaderGUI** to `true`, the Material Properties section does not appear, and instead, the ShaderGUI you specified appears. + +| **Property** | **Description** | +| -------------------------------------- | ------------------------------------------------------------ | +| **Enable GPU Instancing** | Enable this setting to tell HDRP to render Meshes with the same geometry and Material in one batch when possible. This makes rendering faster. HDRP cannot render Meshes in one batch if they have different Materials, or if the hardware does not support GPU instancing. For example, you can not [static-batch](https://docs.unity3d.com/Manual/DrawCallBatching.html) GameObjects that have an animation based on the object pivot, but the GPU can instance them. | +| **Emission** | Defines the Material's emission color value. Expects positive values. | +| **Motion Vector For Vertex Animation** | Indicates whether HDRP should evaluate motion vectors for animation. | \ No newline at end of file diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Override-Diffusion-Profile.md b/com.unity.render-pipelines.high-definition/Documentation~/Override-Diffusion-Profile.md index c315b00fc1f..23aff332e11 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Override-Diffusion-Profile.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Override-Diffusion-Profile.md @@ -1,6 +1,6 @@ # Diffusion Profile Override -The High Definition Render Pipeline (HDRP) allows you to use up to 15 [Diffusion Profiles](Diffusion-Profile.html) in view at the same time. To use more than 15 Diffusion Profiles in a Scene, you can use the **Diffusion Profile Override** inside a [Volume](Volumes.html). This allows you to specify which Diffusion Profile to use in a certain area (or in the Scene if the Volume is global). +The High Definition Render Pipeline (HDRP) allows you to use up to 15 custom [Diffusion Profiles](Diffusion-Profile.md) in view at the same time. To use more than 15 custom Diffusion Profiles in a Scene, you can use the **Diffusion Profile Override** inside a [Volume](Volumes.md). This allows you to specify which Diffusion Profiles to use in a certain area (or in the Scene if the Volume is global). ## Using a Diffusion Profile Override diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Probes-Intro.md b/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Probes-Intro.md index 1db5ae91b6b..1d779b8b855 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Probes-Intro.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Probes-Intro.md @@ -11,4 +11,6 @@ The High Definition Render Pipeline (HDRP) allows you to use two different Refle To create a **Reflection Probe** in the Unity Editor, select **GameObject > Light > Reflection Probe** or **Planar Reflection Probe**. -You can customize the behavior of a Reflection Probe in the Inspector. Both types of HDRP Reflection Probe are separate components, but share many of the same properties. For information on each Reflection Probe’s properties, see the [Reflection Probe](Reflection-Probe.html) and [Planar Reflection Probe](Planar-Reflection-Probe.html) documentation. \ No newline at end of file +You can customize the behavior of a Reflection Probe in the Inspector. Both types of HDRP Reflection Probe are separate components, but share many of the same properties. For information on each Reflection Probe’s properties, see the [Reflection Probe](Reflection-Probe.html) and [Planar Reflection Probe](Planar-Reflection-Probe.html) documentation. + +To make sure HDRP does not apply post-processing effects twice, once in a Reflection Probe's capture and once in a Camera's capture of the reflection, HDRP does not apply post-processing to the Reflection Probe capture. \ No newline at end of file diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Subsurface-Scattering.md b/com.unity.render-pipelines.high-definition/Documentation~/Subsurface-Scattering.md index 1ec53d0a336..ca59614540c 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Subsurface-Scattering.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Subsurface-Scattering.md @@ -4,20 +4,20 @@ __Subsurface Scattering__ handles light that penetrates and moves within the are Subsurface scattering also handles the light that penetrates GameObjects from behind and makes those GameObjects look transparent. For certain types of objects, the screen-space blur effect may not make a large visual difference. Therefore, HDRP implements two material types: -* __Subsurface Scattering__ implements both the screen-space blur effect and transmission (you can disable the latter) +* __Subsurface Scattering__ implements both the screen-space blur effect and transmission (you can disable the latter). * __Translucent__ only models transmission. ## Enabling Subsurface Scattering -To enable subsurface scattering in your [HDRP Asset](HDRP-Asset.html): +To enable subsurface scattering in your [HDRP Asset](HDRP-Asset.md): -- In the HDRP Asset’s Inspector window, navigate to the __Material__ section and enable the __Subsurface Scattering__ checkbox. -- When you enable the __Subsurface Scattering__ checkbox, HDRP displays the __High Quality__ option. You can Enable the checkbox to increase the sample count and reduce the amount of visual noise the blur pass can cause by undersampling. Note that this is around two and a half times more resource intensive than the default quality. -- Within the __HDRP Asset__, locate the __Default Frame Settings__. Under the __Lighting__ section, enable __Subsurface Scattering__ and __Transmission__. +1. In the HDRP Asset’s Inspector window, go to the __Material__ section and enable the __Subsurface Scattering__ checkbox. +2. When you enable the __Subsurface Scattering__ checkbox, HDRP displays the __High Quality__ option. You can Enable this option to increase the sample count and reduce the amount of visual noise the blur pass can cause by under sampling. Note that this is around two and a half times more resource intensive than the default quality. +3. Go to **Edit > Project Settings > HDRP Default Settings** and, in the **Default Frame Settings** section, under the __Lighting__ subsection, enable __Subsurface Scattering__ and __Transmission__. -HDRP stores most subsurface scattering settings in a [Diffusion Profile Settings](Diffusion-Profile.html) Asset. The __Diffusion Profile List Asset__ contains a set of 15 Diffusion Profiles you can edit and later assign to your Materials. +HDRP stores most subsurface scattering settings in a [Diffusion Profile](Diffusion-Profile.md). HDRP supports up to 15 custom Diffusion Profiles in view at the same time, but you can override which Diffusion Profiles HDRP uses and thus use as many Diffusion Profiles as you want throughout your project. To do this, use the [Diffusion Profile Override](Override-Diffusion-Profile.md) in the [Volume](Volumes.md) system. This [override](Volume-Components.md) lets you specify 15 custom Diffusion Profiles which HDRP can use for a Camera within the override's Volume. -To create a Diffusion Profile Asset, navigate to __Assets > Create > Rendering > Diffusion Profile Settings__. To use it, open your HDRP Asset and assign the new Diffusion Profile Asset to the __Diffusion Profile List__ property. +For information on how to create and use a Diffusion Profile, see the [Diffusion Profile documentation](Diffusion-Profile.md) ## Adding Subsurface Scattering to your Material @@ -27,6 +27,6 @@ For the __Subsurface Scattering__ material type, uncheck the __Transmission__ ch ### Customizing Subsurface Scattering behavior -When you select __Subsurface Scattering__ or __Translucent__ from the __Material Type__ drop-down, Unity exposes several new properties in the Material UI. For information on how to use these properties to customize the behavior of the subsurface scattering effect, see the [Material Type documentation](Material-Type.html). +When you select __Subsurface Scattering__ or __Translucent__ from the __Material Type__ drop-down, Unity exposes several new properties in the Material UI. For information on how to use these properties to customize the behavior of the subsurface scattering effect, see the [Material Type documentation](Material-Type.md). You can learn more about HDRP’s implementation in our [Efficient Screen-Space Subsurface Scattering](http://advances.realtimerendering.com/s2018/Efficient%20screen%20space%20subsurface%20scattering%20Siggraph%202018.pdf) presentation. diff --git a/com.unity.render-pipelines.high-definition/Documentation~/System-Requirements.md b/com.unity.render-pipelines.high-definition/Documentation~/System-Requirements.md new file mode 100644 index 00000000000..d8f06030ca6 --- /dev/null +++ b/com.unity.render-pipelines.high-definition/Documentation~/System-Requirements.md @@ -0,0 +1,37 @@ +# Requirements and compatibility + +This page contains information on system requirements and compatibility of the High Definition Render Pipeline (HDRP) package. + +## Unity Editor compatibility + +The following table shows the compatibility of the High Definition Render Pipeline (HDRP) versions with different Unity Editor versions. + +| **Package version** | **Minimum Unity version** | **Maximum Unity version** | +| ------------------- | ------------------------- | ------------------------- | +| 10.x | 2020.2 | 2020.2 | +| 8.x / 9.x-preview | 2020.1 | 2020.1 | +| 7.x | 2019.3 | 2019.4 | +| 6.x | 2019.2 | 2019.2 | + +## Render pipeline compatibility + +Projects made using HDRP are not compatible with the Universal Render Pipeline (URP) or the Built-in Render Pipeline. Before you start development, you must decide which render pipeline to use in your Project. For information on choosing a render pipeline, see the [Render Pipelines](https://docs.unity3d.com/2019.3/Documentation/Manual/render-pipelines.html) section of the Unity Manual. + +## Unity Player system requirements + +This section describes the HDRP package’s target platform requirements. For platforms or use cases not covered in this section, general system requirements for the Unity Player apply. + +For more information, see [System requirements for Unity](https://docs.unity3d.com/Manual/system-requirements.html). + +HRDP is only compatible with the following platforms: + +- Windows and Windows Store, with DirectX 11 or DirectX 12 and Shader Model 5.0 +- Modern consoles (Sony PS4 and Microsoft Xbox One) +- MacOS (minimum version 10.13) using Metal graphics +- Linux and Windows platforms with Vulkan + +**Note: HDRP only works on these platforms if the device used supports Compute Shaders. HDRP does not support OpenGL or OpenGL ES devices.** + +### Ray tracing + +To use ray tracing in HDRP, there are hardware requirements you must meet. For information on these requirements, see [Getting started with ray tracing](Ray-Tracing-Getting-Started.md#HardwareRequirements). diff --git a/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md b/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md index 96ac363bab4..2b69e9a4776 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md @@ -3,6 +3,7 @@ * [Features List](HDRP-Features) * [Comparison with the Built-in Render Pipeline](Feature-Comparison) * Getting started + * [System Requirements](System-Requirements.md) * [Getting Started with HDRP](Getting-started-with-HDRP) * [Upgrading to HDRP](Upgrading-To-HDRP) * [Render Pipeline Wizard](Render-Pipeline-Wizard) @@ -63,12 +64,14 @@ * [Layered Lit Shader](Layered-Lit-Shader) * [Lit Tessellation Shader](Lit-Tessellation-Shader) * [Lit Shader](Lit-Shader) + * [Terrain Lit Shader](Terrain-Lit-Shader.md) * [Unlit Shader](Unlit-Shader) * Shader Graph Master Nodes * [Customizing Materials Using Master Nodes](Customizing-HDRP-materials-with-Shader-Graph) * [Decal](Master-Node-Decal) * [Fabric](Master-Node-Fabric) * [Hair](Master-Node-Hair) + * [Lit](Master-Node-Lit) * [Unlit](Master-Node-Unlit) * Shader Graph Nodes * [Emission](SGNode-Emission) @@ -140,9 +143,7 @@ * Components * [Decal Projector](Decal-Projector) * Tools - * Look Dev - * [Look Dev Window](Look-Dev) - * [Environment Library](Look-Dev-Environment-Library) + * [Look Dev](Look-Dev) * Debugging * [MatCap](MatCap) * [Render Pipeline Debug Window](Render-Pipeline-Debug-Window) @@ -155,5 +156,6 @@ * [Creating a Custom Sky](Creating-a-Custom-Sky) * [Creating a Custom Post-Process Effect](Custom-Post-Process) * [Creating a Custom Render Pass](Custom-Pass) + * [Editing Frame Settings at Runtime](Frame-Settings-API.md) * [HDRP Glossary](Glossary) * [Known Issues and How To Fix Them](Known-Issues) diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Terrain-Lit-Shader.md b/com.unity.render-pipelines.high-definition/Documentation~/Terrain-Lit-Shader.md new file mode 100644 index 00000000000..a2e5d3ac8db --- /dev/null +++ b/com.unity.render-pipelines.high-definition/Documentation~/Terrain-Lit-Shader.md @@ -0,0 +1,46 @@ +# **Terrain Lit Shader** + +The High Definition Render Pipeline (HDRP) uses the Terrain Lit Shader for Unity Terrain. This Shader is a simpler version of the [Lit Shader](Lit-Shader.md). A Terrain can use a Terrain Lit Material with up to eight [Terrain Layers](https://docs.unity3d.com/Manual/class-TerrainLayer.html). + +![](Images/HDRPFeatures-TerrainShader.png) + +## Creating a Terrain Lit Material + +To create a new Terrain Lit Shader Material: + +1. Go to your Project window and right-click in the **Assets** folder +2. Select **Create > Material**. This adds a new Material to your Unity Project’s Asset folder. +3. Click on the Material to view it in the Inspector. +4. Click on the **Shader** drop-down and select **HDRP > TerrainLit**. + +## Using a Terrain Lit Material + +To use a Terrain Lit Material, you must assign it to a Terrain: + +1. View the Terrain in the Inspector and click on the cog button to go to the **Terrain Settings** section. +2. Either drag and drop or use the radio button to assign your Terrain Lit Material to the **Material** property. + +![](Images/TerrainLitShader1.png) + +## Material properties + +### Surface Options + +| **Property** | **Description** | +| ------------------ | ------------------------------------------------------------ | +| **Receive Decals** | Enable this checkbox to allow HDRP to draw decals on this Material’s surface. | + +### Terrain + +| **Property** | **Description** | +| ----------------------------- | ------------------------------------------------------------ | +| **Enable Height-based Blend** | Specifies whether HDRP should only render the Terrain Layer with the greatest height value for a particular pixel. When enabled, HDRP takes the height values from the blue channel of the **Mask Map** Texture. When disabled, HDRP blends the Terrain Layers based on the weights painted in the control map Textures. | +| **- Height Transition** | Controls how much HDRP blends the terrain if multiple Terrain Layers are approximately the same height. | +| **Enable Per-pixel Normal** | Specifies whether HDRP should sample the normal map Texture on a per-pixel level. When enabled, Unity preserves more geometry details for distant terrain parts. Unity generates a geometry normal map at runtime from the heightmap, rather than the Mesh geometry. This means you can have high-resolution Mesh normals, even if your Mesh is low resolution. It only works if you enable **Draw Instanced** on the terrain. | +| **Specular Occlusion Mode** | Sets the mode that HDRP uses to calculate specular occlusion.
• **Off**: Disables specular occlusion.
• **From Ambient Occlusion**: Calculates specular occlusion from the ambient occlusion map and the Camera's view direction. | + +### Advanced Options + +| **Property** | **Description** | +| ------------------------- | ------------------------------------------------------------ | +| **Enable GPU Instancing** | Enable this checkbox to tell HDRP to render meshes with the same geometry and Material/Shader in one batch when possible. This makes rendering faster. HDRP can not render Meshes in one batch if they have different Materials, or if the hardware does not support GPU instancing. | \ No newline at end of file diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Upgrading-from-2019.3-to-2020.1.md b/com.unity.render-pipelines.high-definition/Documentation~/Upgrading-from-2019.3-to-2020.1.md index aaf04d2c617..e954c92616a 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Upgrading-from-2019.3-to-2020.1.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Upgrading-from-2019.3-to-2020.1.md @@ -2,6 +2,10 @@ In the High Definition Render Pipeline (HDRP), some features work differently between major versions of Unity. This document helps you upgrade HDRP from Unity 2019.3 to 2020.1. +## Mesh LOD Transition + +From Unity 2020.1, HDRP no longer uses dithering for the LOD crossfade transition between a LOD that uses a material with tessellation and a LOD that uses a material with no tessellation. Instead, HDRP smoothly decreases the tessellation displacement strength. This improves the transition between the first high-quality LOD with tessellation and a second mid-quality LOD without tessellation. The remaining transitions between non-tessellation materials still use dithering. + ## Scene View Camera Settings From Unity 2020.1, the HDRP-specific settings of the scene view camera (anti-aliasing mode and stop NaNs) can be found in the same pop-up window as the standard scene camera settings, which are accessible by clicking the scene camera button on the toolbar of the scene window. These settings were previously in the HDRP preferences window (Edit > Preferences). diff --git a/com.unity.render-pipelines.high-definition/Documentation~/Volumetric-Lighting.md b/com.unity.render-pipelines.high-definition/Documentation~/Volumetric-Lighting.md index 50c128176e8..f327f6ebe43 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/Volumetric-Lighting.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/Volumetric-Lighting.md @@ -1,14 +1,15 @@ # Volumetric Lighting -The High Definition Render Pipeline (HDRP) includes a volumetric lighting system that renders Volumetric Fog. HDRP also implements a unified lighting system, which means that all Scene components (such as Lights, as well as opaque and transparent GameObjects) interact with the fog in order to make it volumetric. +The High Definition Render Pipeline (HDRP) includes a volumetric lighting system that renders Volumetric Fog. HDRP also implements a unified lighting system, which means that all Scene components (such as [Lights](Light-Component.md), as well as opaque and transparent GameObjects) interact with the fog to make it volumetric. ## Enabling Volumetric Lighting -To toggle and customize Volumetric Lighting in an [HDRP Asset](HDRP-Asset.html): +To enable and customize Volumetric Lighting in an [HDRP Asset](HDRP-Asset.md): -1. Open an HDRP Asset in your Unity Project and view it in the Inspector. Enable the **Volumetrics** checkbox in the **Lighting** section to enable Volumetric Lighting. - ![](Images/VolumetricLighting1.png) -2. If you want to increase the resolution of the volumetrics, enable the **High Quality** checkbox. Volumetric lighting is an expensive effect, and this option can potentially increase the cost of volumetric lighting by up to eight times. -3. In the **Default Frame Settings** section, under the **Lighting** subsection, make sure you enable **Fog** and **Volumetric** if they are not already. - ![](Images/VolumetricLighting2.png) -4. If you want to enable reprojection support, check **Reprojection**. This option improves the lighting quality in the Scene by taking previous frames into account when calculating the lighting for the current frame. Currently, this option is not compatible with dynamic lights, so you may encounter ghosting artifacts behind moving Lights. Additionally, using high values for **Global Anisotropy** in the [Fog](Override-Fog.html) Volume override may cause flickering Shadows. +1. Select an HDRP Asset in your Unity Project and view it in the Inspector. In the **Lighting** section, enable the **Volumetrics** checkbox. +2. If you want to increase the resolution of the volumetrics, enable the **High Quality** checkbox. Volumetric lighting is a resource intensive effect and this option can potentially increase the resource intensity by up to eight times. +3. Go to **Edit > Project Settings > HDRP Default Settings** and, in the **Default Frame Settings** section, under the **Lighting** subsection, make sure you enable **Fog** and **Volumetrics** if they are not already. +4. Still in **Default Frame Settings**, if you want to enable reprojection support, enable **Reprojection**. This option improves the lighting quality in the Scene by taking previous frames into account when calculating the lighting for the current frame. Currently, this option is not compatible with dynamic lights, so you may encounter ghosting artifacts behind moving Lights. Additionally, using high values for **Anisotropy** in the [Fog](Override-Fog.md) Volume override may cause flickering Shadows. + +## Notes +Volumetric fog does not work for Cameras that use oblique projection matrices. If you want a Camera to render volumetric fog, do not assign an off-axis projection to it. \ No newline at end of file diff --git a/com.unity.render-pipelines.high-definition/Documentation~/index.md b/com.unity.render-pipelines.high-definition/Documentation~/index.md index b041030e01d..b066920f5ad 100644 --- a/com.unity.render-pipelines.high-definition/Documentation~/index.md +++ b/com.unity.render-pipelines.high-definition/Documentation~/index.md @@ -10,13 +10,4 @@ NOTE: Projects that you make with HDRP are not compatible with the Universal Ren This documentation contains the information you need to create applications using HDRP; including information on Lighting, Materials and Shaders, Cameras, and debugging. -HRDP is only supported on the following platforms: - -* Windows and Windows Store, with DirectX 11 or DirectX 12 and Shader Model 5.0 -* Modern consoles (Sony PS4 and Microsoft Xbox One) -* MacOS using Metal graphics -* Linux and Windows platforms with Vulkan - -**HDRP does not support OpenGL or OpenGL ES devices.** - -**Note: HDRP only works on these platforms if the device used supports Compute Shaders.** \ No newline at end of file +For information on platform support and system requirements, see [System Requirements](System-Requirements.md). diff --git a/com.unity.render-pipelines.high-definition/Editor/AssetProcessors/MaterialPostProcessor.cs b/com.unity.render-pipelines.high-definition/Editor/AssetProcessors/MaterialPostProcessor.cs index dda018cf4e0..b3937f0bb78 100644 --- a/com.unity.render-pipelines.high-definition/Editor/AssetProcessors/MaterialPostProcessor.cs +++ b/com.unity.render-pipelines.high-definition/Editor/AssetProcessors/MaterialPostProcessor.cs @@ -67,7 +67,7 @@ static void RegisterUpgraderReimport() { string commandLineOptions = System.Environment.CommandLine; bool inTestSuite = commandLineOptions.Contains("-testResults"); - if (!inTestSuite && fileExist) + if (!inTestSuite && fileExist && !Application.isBatchMode) { EditorUtility.DisplayDialog("HDRP Material upgrade", "The Materials in your Project were created using an older version of the High Definition Render Pipeline (HDRP)." + " Unity must upgrade them to be compatible with your current version of HDRP. \n" + diff --git a/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs b/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs index e909aa04413..fddb336616d 100644 --- a/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs +++ b/com.unity.render-pipelines.high-definition/Editor/BuildProcessors/HDRPPreprocessShaders.cs @@ -394,9 +394,15 @@ static void GetAllValidHDRPAssets() } // Prompt a warning if we find 0 HDRP Assets. - if (_hdrpAssets.Count == 0) + if (_hdrpAssets.Count == 0 && !Application.isBatchMode) + { if (EditorUtility.DisplayDialog("HDRP Asset missing", "No HDRP Asset has been set in the Graphic Settings, and no potential used in the build HDRP Asset has been found. If you want to continue compiling, this might lead to VERY long compilation time.", "Ok", "Cancel")) - throw new UnityEditor.Build.BuildFailedException("Build canceled"); + throw new UnityEditor.Build.BuildFailedException("Build canceled"); + } + else + { + Debug.LogWarning("There is no HDRP Asset provided in GraphicsSettings. Build time can be extremely long without it."); + } /* Debug.Log(string.Format("{0} HDRP assets in build:{1}", diff --git a/com.unity.render-pipelines.high-definition/Editor/DefaultScene/HDWizard.Configuration.cs b/com.unity.render-pipelines.high-definition/Editor/DefaultScene/HDWizard.Configuration.cs index 9c3d3962740..81526d8115c 100644 --- a/com.unity.render-pipelines.high-definition/Editor/DefaultScene/HDWizard.Configuration.cs +++ b/com.unity.render-pipelines.high-definition/Editor/DefaultScene/HDWizard.Configuration.cs @@ -460,7 +460,9 @@ bool IsDefaultVolumeProfileAssigned() return false; var hdAsset = HDRenderPipeline.currentAsset; - return hdAsset.defaultVolumeProfile != null && !hdAsset.defaultVolumeProfile.Equals(null); + return hdAsset.defaultVolumeProfile != null + && !hdAsset.defaultVolumeProfile.Equals(null) + && hdAsset.defaultVolumeProfile != hdAsset.renderPipelineEditorResources.defaultSettingsVolumeProfile; } void FixDefaultVolumeProfileAssigned(bool fromAsyncUnused) { @@ -471,7 +473,19 @@ void FixDefaultVolumeProfileAssigned(bool fromAsyncUnused) if (hdrpAsset == null) return; - EditorDefaultSettings.GetOrAssignDefaultVolumeProfile(hdrpAsset); + VolumeProfile defaultSettingsVolumeProfileInPackage = hdrpAsset.renderPipelineEditorResources.defaultSettingsVolumeProfile; + string defaultSettingsVolumeProfilePath = "Assets/" + HDProjectSettings.projectSettingsFolderPath + '/' + defaultSettingsVolumeProfileInPackage.name + ".asset"; + + //try load one if one already exist + VolumeProfile defaultSettingsVolumeProfile = AssetDatabase.LoadAssetAtPath(defaultSettingsVolumeProfilePath); + if (defaultSettingsVolumeProfile == null || defaultSettingsVolumeProfile.Equals(null)) + { + //else create it + AssetDatabase.CopyAsset(AssetDatabase.GetAssetPath(defaultSettingsVolumeProfileInPackage), defaultSettingsVolumeProfilePath); + defaultSettingsVolumeProfile = AssetDatabase.LoadAssetAtPath(defaultSettingsVolumeProfilePath); + } + hdrpAsset.defaultVolumeProfile = defaultSettingsVolumeProfile; + EditorUtility.SetDirty(hdrpAsset); } diff --git a/com.unity.render-pipelines.high-definition/Editor/DefaultScene/HDWizard.Window.cs b/com.unity.render-pipelines.high-definition/Editor/DefaultScene/HDWizard.Window.cs index 614da9582a7..e1f451f0171 100644 --- a/com.unity.render-pipelines.high-definition/Editor/DefaultScene/HDWizard.Window.cs +++ b/com.unity.render-pipelines.high-definition/Editor/DefaultScene/HDWizard.Window.cs @@ -108,7 +108,7 @@ public ConfigStyle(string label, string error, string button = resolve, MessageT error: "Default scene prefab must be set to create HD templated scene!"); public static readonly ConfigStyle hdrpVolumeProfile = new ConfigStyle( label: "Default volume profile", - error: "Default volume profile must be assigned in the HDRP asset!"); + error: "Default volume profile must be assigned in the HDRP asset! Also, for it to be editable, it should be outside of package."); public static readonly ConfigStyle vrLegacyVRSystem = new ConfigStyle( label: "Legacy VR System", diff --git a/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.Skin.cs b/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.Skin.cs index 19986edf466..2dcef35355b 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.Skin.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.Skin.cs @@ -81,6 +81,8 @@ sealed class Styles public readonly GUIContent displayAreaLightEmissiveMesh = new GUIContent("Display Emissive Mesh", "Generate an emissive mesh using the size, Color and Intensity of the Area Light."); public readonly GUIContent areaLightEmissiveMeshCastShadow = new GUIContent("Cast Shadows", "Specify wether the generated geometry create shadow or not when a shadow casting Light shines on it"); public readonly GUIContent areaLightEmissiveMeshMotionVector = new GUIContent("Motion Vectors", "Specify wether the generated Mesh renders 'Per Object Motion', 'Camera Motion' or 'No Motion' vectors to the Camera Motion Vector Texture."); + public readonly GUIContent areaLightEmissiveMeshSameLayer = new GUIContent("Same Layer", "If checked, use the same Layer than the Light one."); + public readonly GUIContent areaLightEmissiveMeshCustomLayer = new GUIContent("Custom Layer", "Specify on which layer the generated Mesh live."); public readonly GUIContent lightLayer = new GUIContent("Light Layer", "Specifies the current Light Layers that the Light affects. This Light illuminates corresponding Renderers with the same Light Layer flags."); public readonly GUIContent interactsWithSky = new GUIContent("Affect Physically Based Sky", "Check this option to make the light and the Physically Based sky affect one another."); diff --git a/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.cs b/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.cs index 32d8f3a3816..fa6611e0f33 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Lighting/HDLightUI.cs @@ -104,17 +104,6 @@ static HDLightUI() CED.FoldoutGroup(s_Styles.shapeHeader, Expandable.Shape, k_ExpandedState, DrawShapeContent), CED.Conditional((serialized, owner) => serialized.type == HDLightType.Directional && !serialized.settings.isCompletelyBaked, CED.FoldoutGroup(s_Styles.celestialBodyHeader, Expandable.CelestialBody, k_ExpandedState, DrawCelestialBodyContent)), - //CED.TernaryConditional((serialized, owner) => serialized.type == HDLightType.Directional && !serialized.settings.isCompletelyBaked, - // CED.AdvancedFoldoutGroup(s_Styles.shapeHeader, Expandable.Shape, k_ExpandedState, - // (serialized, owner) => GetAdvanced(AdvancedMode.Shape, serialized, owner), - // (serialized, owner) => SwitchAdvanced(AdvancedMode.Shape, serialized, owner), - // DrawShapeContent, - // DrawShapeAdvancedContent - // ), - // CED.FoldoutGroup(s_Styles.shapeHeader, Expandable.Shape, k_ExpandedState, - // DrawShapeContent - // ) - //), CED.AdvancedFoldoutGroup(s_Styles.emissionHeader, Expandable.Emission, k_ExpandedState, (serialized, owner) => GetAdvanced(AdvancedMode.Emission, serialized, owner), (serialized, owner) => SwitchAdvanced(AdvancedMode.Emission, serialized, owner), @@ -821,6 +810,7 @@ static void DrawEmissionAdvancedContent(SerializedHDLight serialized, Editor own { serialized.UpdateAreaLightEmissiveMeshCastShadow(newCastShadow); } + EditorGUI.showMixedValue = false; lineRect = EditorGUILayout.GetControlRect(); SerializedHDLight.MotionVector newMotionVector; @@ -834,8 +824,62 @@ static void DrawEmissionAdvancedContent(SerializedHDLight serialized, Editor own { serialized.UpdateAreaLightEmissiveMeshMotionVectorGeneration(newMotionVector); } + EditorGUI.showMixedValue = false; + EditorGUI.showMixedValue = serialized.areaLightEmissiveMeshLayer.hasMultipleDifferentValues || serialized.lightLayer.hasMultipleDifferentValues; + EditorGUI.BeginChangeCheck(); + bool toggle; + using (new SerializedHDLight.AreaLightEmissiveMeshDrawScope(lineRect, s_Styles.areaLightEmissiveMeshSameLayer, showSubArea, serialized.areaLightEmissiveMeshLayer, serialized.deportedAreaLightEmissiveMeshLayer)) + { + toggle = EditorGUILayout.Toggle(s_Styles.areaLightEmissiveMeshSameLayer, serialized.areaLightEmissiveMeshLayer.intValue == -1); + } + if (EditorGUI.EndChangeCheck()) + { + serialized.UpdateAreaLightEmissiveMeshLayer(serialized.lightLayer.intValue); + if (toggle) + serialized.areaLightEmissiveMeshLayer.intValue = -1; + } EditorGUI.showMixedValue = false; + + ++EditorGUI.indentLevel; + if (toggle || serialized.areaLightEmissiveMeshLayer.hasMultipleDifferentValues) + { + using (new EditorGUI.DisabledScope(true)) + { + lineRect = EditorGUILayout.GetControlRect(); + EditorGUI.showMixedValue = serialized.areaLightEmissiveMeshLayer.hasMultipleDifferentValues || serialized.lightLayer.hasMultipleDifferentValues; + EditorGUI.LayerField(lineRect, s_Styles.areaLightEmissiveMeshCustomLayer, serialized.lightLayer.intValue); + EditorGUI.showMixedValue = false; + } + } + else + { + EditorGUI.showMixedValue = serialized.areaLightEmissiveMeshLayer.hasMultipleDifferentValues; + lineRect = EditorGUILayout.GetControlRect(); + int layer; + EditorGUI.BeginChangeCheck(); + using (new SerializedHDLight.AreaLightEmissiveMeshDrawScope(lineRect, s_Styles.areaLightEmissiveMeshCustomLayer, showSubArea, serialized.areaLightEmissiveMeshLayer, serialized.deportedAreaLightEmissiveMeshLayer)) + { + layer = EditorGUI.LayerField(lineRect, s_Styles.areaLightEmissiveMeshCustomLayer, serialized.areaLightEmissiveMeshLayer.intValue); + } + if (EditorGUI.EndChangeCheck()) + { + serialized.UpdateAreaLightEmissiveMeshLayer(layer); + } + // or if the value of layer got changed using the layer change including child mechanism (strangely apply even if object not editable), + // discard the change: the child is not saved anyway so the value in HDAdditionalLightData is the only serialized one. + else if (!EditorGUI.showMixedValue + && serialized.deportedAreaLightEmissiveMeshLayer != null + && !serialized.deportedAreaLightEmissiveMeshLayer.Equals(null) + && serialized.areaLightEmissiveMeshLayer.intValue != serialized.deportedAreaLightEmissiveMeshLayer.intValue) + { + GUI.changed = true; //force register change to handle update and apply later + serialized.UpdateAreaLightEmissiveMeshLayer(layer); + } + EditorGUI.showMixedValue = false; + } + --EditorGUI.indentLevel; + --EditorGUI.indentLevel; } diff --git a/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDBakedReflectionSystem.cs b/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDBakedReflectionSystem.cs index 071cf80f198..a72d37ea47e 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDBakedReflectionSystem.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDBakedReflectionSystem.cs @@ -131,26 +131,27 @@ IScriptableBakedReflectionSystemStageNotifier handle HashUtilities.AppendHash(ref skySettingsHash, ref allProbeDependencyHash); var bakedProbes = HDProbeSystem.bakedProbes; + var bakedProbeCount = HDProbeSystem.bakedProbeCount; // == 2. == - var states = stackalloc HDProbeBakingState[bakedProbes.Count]; + var states = stackalloc HDProbeBakingState[bakedProbeCount]; ComputeProbeInstanceID(bakedProbes, states); ComputeProbeSettingsHashes(bakedProbes, states); // TODO: Handle bounce dependency here - ComputeProbeBakingHashes(bakedProbes.Count, allProbeDependencyHash, states); + ComputeProbeBakingHashes(bakedProbeCount, allProbeDependencyHash, states); CoreUnsafeUtils.QuickSort( - bakedProbes.Count, states + bakedProbeCount, states ); int operationCount = 0, addCount = 0, remCount = 0; - var maxProbeCount = Mathf.Max(bakedProbes.Count, m_HDProbeBakedStates.Length); + var maxProbeCount = Mathf.Max(bakedProbeCount, m_HDProbeBakedStates.Length); var addIndices = stackalloc int[maxProbeCount]; var remIndices = stackalloc int[maxProbeCount]; if (m_HDProbeBakedStates.Length == 0) { - for (int i = 0; i < bakedProbes.Count; ++i) + for (int i = 0; i < bakedProbeCount; ++i) addIndices[addCount++] = i; operationCount = addCount; } @@ -165,7 +166,7 @@ IScriptableBakedReflectionSystemStageNotifier handle HDProbeBakingState, HDProbeBakingState.ProbeBakingHash > ( m_HDProbeBakedStates.Length, oldBakedStates, // old hashes - bakedProbes.Count, states, // new hashes + bakedProbeCount, states, // new hashes addIndices, remIndices, out addCount, out remCount ); @@ -202,7 +203,7 @@ IScriptableBakedReflectionSystemStageNotifier handle // Get from cache or render the probe if (!File.Exists(cacheFile)) RenderAndWriteToFile(probe, cacheFile, cubeRT, planarRT); - + planarRT.Release(); } cubeRT.Release(); @@ -232,7 +233,7 @@ IScriptableBakedReflectionSystemStageNotifier handle for (int j = 0; j < 2; ++j) { AssetDatabase.StartAssetEditing(); - for (int i = 0; i < bakedProbes.Count; ++i) + for (int i = 0; i < bakedProbeCount; ++i) { var index = addIndices[i]; var instanceId = states[index].instanceID; @@ -312,7 +313,7 @@ IScriptableBakedReflectionSystemStageNotifier handle handle.SetIsDone(true); } - public static bool BakeProbes(IList bakedProbes) + public static bool BakeProbes(IEnumerable bakedProbes) { if (!(RenderPipelineManager.currentPipeline is HDRenderPipeline hdPipeline)) { @@ -326,9 +327,8 @@ public static bool BakeProbes(IList bakedProbes) var cubeRT = HDRenderUtilities.CreateReflectionProbeRenderTarget(cubemapSize); // Render and write the result to disk - for (int i = 0; i < bakedProbes.Count; ++i) + foreach (var probe in bakedProbes) { - var probe = bakedProbes[i]; var bakedTexturePath = HDBakingUtilities.GetBakedTextureFilePath(probe); var planarRT = HDRenderUtilities.CreatePlanarProbeRenderTarget((int)probe.resolution); RenderAndWriteToFile(probe, bakedTexturePath, cubeRT, planarRT); @@ -342,9 +342,8 @@ public static bool BakeProbes(IList bakedProbes) for (int j = 0; j < 2; ++j) { AssetDatabase.StartAssetEditing(); - for (int i = 0; i < bakedProbes.Count; ++i) + foreach (var probe in bakedProbes) { - var probe = bakedProbes[i]; var bakedTexturePath = HDBakingUtilities.GetBakedTextureFilePath(probe); AssetDatabase.ImportAsset(bakedTexturePath); ImportAssetAt(probe, bakedTexturePath); @@ -353,9 +352,8 @@ public static bool BakeProbes(IList bakedProbes) } AssetDatabase.StartAssetEditing(); - for (int i = 0; i < bakedProbes.Count; ++i) + foreach (var probe in bakedProbes) { - var probe = bakedProbes[i]; var bakedTexturePath = HDBakingUtilities.GetBakedTextureFilePath(probe); // Get or create the baked texture asset for the probe @@ -379,9 +377,8 @@ public static bool BakeProbes(IList bakedProbes) // updateCount is a transient data, so don't execute this code before the asset reload. { UnityEngine.Random.InitState((int)(1000 * hdPipeline.GetTime())); - for (int i = 0; i < bakedProbes.Count; ++i) + foreach (var probe in bakedProbes) { - var probe = bakedProbes[i]; var c = UnityEngine.Random.Range(2, 10); while (probe.texture.updateCount < c) probe.texture.IncrementUpdateCount(); } @@ -474,8 +471,13 @@ void DeleteCubemapAssets(bool deleteUnusedOnly) // Or we delete all assets || !deleteUnusedOnly) { + // If the buffer is full we empty it and then push again the element we were trying to + // push but failed. if (!buffer.TryPush(files[fileI])) + { DeleteAllAssetsIn(ref buffer); + buffer.TryPush(files[fileI]); + } } } } @@ -492,6 +494,9 @@ static void DeleteAllAssetsIn(ref CoreUnsafeUtils.FixedBufferStringQueue queue) while (queue.TryPop(out string path)) AssetDatabase.DeleteAsset(path); AssetDatabase.StopAssetEditing(); + + // Clear the queue so that can be filled again. + queue.Clear(); } internal static void Checkout(string targetFile) @@ -663,23 +668,28 @@ string GetGICacheFileForHDProbe(Hash128 hash) return Path.Combine(hashFolder, string.Format("HDProbe-{0}.exr", hash)); } - static void ComputeProbeInstanceID(IList probes, HDProbeBakingState* states) + static void ComputeProbeInstanceID(IEnumerable probes, HDProbeBakingState* states) { - for (int i = 0; i < probes.Count; ++i) - states[i].instanceID = probes[i].GetInstanceID(); + var i = 0; + foreach (var probe in probes) + { + states[i].instanceID = probe.GetInstanceID(); + ++i; + } } - static void ComputeProbeSettingsHashes(IList probes, HDProbeBakingState* states) + static void ComputeProbeSettingsHashes(IEnumerable probes, HDProbeBakingState* states) { - for (int i = 0; i < probes.Count; ++i) + var i = 0; + foreach (var probe in probes) { - var probe = probes[i]; var positionSettings = ProbeCapturePositionSettings.ComputeFrom(probe, null); var positionSettingsHash = positionSettings.ComputeHash(); // TODO: make ProbeSettings and unmanaged type so its hash can be the hash of its memory var probeSettingsHash = probe.settings.ComputeHash(); HashUtilities.AppendHash(ref positionSettingsHash, ref probeSettingsHash); states[i].probeSettingsHash = probeSettingsHash; + ++i; } } diff --git a/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDCubemapInspector.cs b/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDCubemapInspector.cs index b82a3d45ab0..e65b65b5eb0 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDCubemapInspector.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/HDCubemapInspector.cs @@ -232,7 +232,12 @@ public override Texture2D RenderStaticPreview(string assetPath, Object[] subAsse m_PreviewUtility.ambientColor = Color.black; m_PreviewUtility.BeginStaticPreview(new Rect(0, 0, width, height)); m_PreviewUtility.DrawMesh(sphereMesh, Matrix4x4.identity, previewMaterial, 0); - m_PreviewUtility.camera.Render(); + // TODO: For now the following line is D3D11 + Metal only as it cause out of memory on both DX12 and Vulkan API. + // We will need to invest time to understand what is happening + // For now priority is to enable Yamato platform automation + // This mean that cubemap icon will render incorrectly on anything but D3D11 + if(SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11 || SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal) + m_PreviewUtility.camera.Render(); var outTexture = m_PreviewUtility.EndStaticPreview(); diff --git a/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/PlanarReflectionProbeEditor.cs b/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/PlanarReflectionProbeEditor.cs index cbece4f9ae9..4a37f1c8492 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/PlanarReflectionProbeEditor.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Lighting/Reflection/PlanarReflectionProbeEditor.cs @@ -273,7 +273,7 @@ static void DrawCapturePositionGizmo(PlanarReflectionProbe probe) var mirrorPositionProxySpace = settings.proxySettings.mirrorPositionProxySpace + Vector3.up * 0.001f; var mirrorPosition = proxyToWorld.MultiplyPoint(mirrorPositionProxySpace); - var mirrorRotation = proxyToWorld.rotation * settings.proxySettings.mirrorRotationProxySpace * Quaternion.Euler(0, 180, 0); + var mirrorRotation = (proxyToWorld.rotation * settings.proxySettings.mirrorRotationProxySpace * Quaternion.Euler(0, 180, 0)).normalized; var renderData = probe.renderData; var gpuProj = GL.GetGPUProjectionMatrix(renderData.projectionMatrix, true); diff --git a/com.unity.render-pipelines.high-definition/Editor/Lighting/SerializedHDLight.cs b/com.unity.render-pipelines.high-definition/Editor/Lighting/SerializedHDLight.cs index d4c5aef2d36..b9cfcea5681 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Lighting/SerializedHDLight.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Lighting/SerializedHDLight.cs @@ -32,6 +32,8 @@ internal class SerializedHDLight public SerializedProperty deportedAreaLightEmissiveMeshCastShadow; public SerializedProperty areaLightEmissiveMeshMotionVector; public SerializedProperty deportedAreaLightEmissiveMeshMotionVector; + public SerializedProperty areaLightEmissiveMeshLayer; + public SerializedProperty deportedAreaLightEmissiveMeshLayer; public SerializedProperty renderingLayerMask; public SerializedProperty shadowNearPlane; public SerializedProperty blockerSampleCount; @@ -97,12 +99,15 @@ internal class SerializedHDLight private SerializedProperty pointLightHDType; private SerializedProperty areaLightShapeProperty; - private IEnumerable emissiveMeshes; + private GameObject[] emissiveMeshes; public bool needUpdateAreaLightEmissiveMeshComponents = false; public SerializedObject serializedObject; + public SerializedProperty lightLayer; + private SerializedObject lightGameObject; + //contain serialized property that are mainly used to draw inspector public LightEditor.Settings settings; @@ -226,25 +231,50 @@ void System.IDisposable.Dispose() } } + struct AreaLightEmissiveMeshObjectEditionScope : System.IDisposable + { + SerializedHDLight m_Serialized; + public AreaLightEmissiveMeshObjectEditionScope(SerializedHDLight serialized) + { + m_Serialized = serialized; + foreach (GameObject emissiveMesh in m_Serialized.emissiveMeshes) + { + emissiveMesh.hideFlags &= ~HideFlags.NotEditable; + } + m_Serialized.areaLightEmissiveMeshLayer.serializedObject.Update(); + } + + void System.IDisposable.Dispose() + { + m_Serialized.areaLightEmissiveMeshLayer.serializedObject.ApplyModifiedProperties(); + foreach (GameObject emissiveMesh in m_Serialized.emissiveMeshes) + { + emissiveMesh.hideFlags |= HideFlags.NotEditable; + } + m_Serialized.areaLightEmissiveMeshLayer.serializedObject.Update(); + } + } + public struct AreaLightEmissiveMeshDrawScope : System.IDisposable { - int propertyCount; - bool oldEnableState; + SerializedProperty[] m_Properties; + bool m_OldEnableState; public AreaLightEmissiveMeshDrawScope(Rect rect, GUIContent label, bool enabler, params SerializedProperty[] properties) { - propertyCount = properties.Count(p => p != null); - foreach (var property in properties) + m_Properties = properties; + foreach (var property in m_Properties) if (property != null) EditorGUI.BeginProperty(rect, label, property); - oldEnableState = GUI.enabled; + m_OldEnableState = GUI.enabled; GUI.enabled = enabler; } void System.IDisposable.Dispose() { - GUI.enabled = oldEnableState; - for (int i = 0; i < propertyCount; ++i) - EditorGUI.EndProperty(); + GUI.enabled = m_OldEnableState; + foreach (var property in m_Properties) + if (property != null) + EditorGUI.EndProperty(); } } @@ -276,6 +306,16 @@ public void UpdateAreaLightEmissiveMeshMotionVectorGeneration(MotionVector motio } } + public void UpdateAreaLightEmissiveMeshLayer(int layer) + { + using (new AreaLightEmissiveMeshObjectEditionScope(this)) + { + areaLightEmissiveMeshLayer.intValue = layer; + if (deportedAreaLightEmissiveMeshLayer != null) //only possible while editing from prefab + deportedAreaLightEmissiveMeshLayer.intValue = layer; + } + } + public SerializedHDLight(HDAdditionalLightData[] lightDatas, LightEditor.Settings settings) { serializedObject = new SerializedObject(lightDatas); @@ -372,9 +412,13 @@ public SerializedHDLight(HDAdditionalLightData[] lightDatas, LightEditor.Setting // emission mesh areaLightEmissiveMeshCastShadow = o.Find("m_AreaLightEmissiveMeshShadowCastingMode"); areaLightEmissiveMeshMotionVector = o.Find("m_AreaLightEmissiveMeshMotionVectorGenerationMode"); + areaLightEmissiveMeshLayer = o.Find("m_AreaLightEmissiveMeshLayer"); } RefreshEmissiveMeshReference(); + + lightGameObject = new SerializedObject(serializedObject.targetObjects.Select(ld => ((HDAdditionalLightData)ld).gameObject).ToArray()); + lightLayer = lightGameObject.FindProperty("m_Layer"); } void RefreshEmissiveMeshReference() @@ -386,9 +430,11 @@ void RefreshEmissiveMeshReference() SerializedObject meshRendererSerializedObject = new SerializedObject(meshRenderers.ToArray()); deportedAreaLightEmissiveMeshCastShadow = meshRendererSerializedObject.FindProperty("m_CastShadows"); deportedAreaLightEmissiveMeshMotionVector = meshRendererSerializedObject.FindProperty("m_MotionVectors"); + SerializedObject gameObjectSerializedObject = new SerializedObject(emissiveMeshes); + deportedAreaLightEmissiveMeshLayer = gameObjectSerializedObject.FindProperty("m_Layer"); } else - deportedAreaLightEmissiveMeshCastShadow = deportedAreaLightEmissiveMeshMotionVector = null; + deportedAreaLightEmissiveMeshCastShadow = deportedAreaLightEmissiveMeshMotionVector = deportedAreaLightEmissiveMeshLayer = null; } public void FetchAreaLightEmissiveMeshComponents() @@ -416,6 +462,10 @@ public void Update() serializedObject.Update(); settings.Update(); + + lightGameObject.Update(); + deportedAreaLightEmissiveMeshMotionVector?.serializedObject.Update(); + deportedAreaLightEmissiveMeshLayer?.serializedObject.Update(); } void ApplyInternal(bool withDeportedEmissiveMeshData) @@ -423,7 +473,10 @@ void ApplyInternal(bool withDeportedEmissiveMeshData) serializedObject.ApplyModifiedProperties(); settings.ApplyModifiedProperties(); if (withDeportedEmissiveMeshData) + { deportedAreaLightEmissiveMeshMotionVector?.serializedObject.ApplyModifiedProperties(); + deportedAreaLightEmissiveMeshLayer?.serializedObject.ApplyModifiedProperties(); + } } public void Apply() => ApplyInternal(withDeportedEmissiveMeshData: true); diff --git a/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.cs b/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.cs index 28842b8128a..2d3e741f9e6 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Material/Decal/DecalProjectorEditor.cs @@ -109,7 +109,7 @@ private void OnEnable() UpdateMaterialEditor(); foreach (var decalProjector in targets) { - (decalProjector as DecalProjector).OnMaterialChange += UpdateMaterialEditor; + (decalProjector as DecalProjector).OnMaterialChange += RequireUpdateMaterialEditor; } // Fetch serialized properties @@ -125,9 +125,10 @@ private void OnEnable() private void OnDisable() { - foreach (var decalProjector in targets) + foreach (DecalProjector decalProjector in targets) { - (decalProjector as DecalProjector).OnMaterialChange -= UpdateMaterialEditor; + if (decalProjector != null) + decalProjector.OnMaterialChange -= RequireUpdateMaterialEditor; } s_Owner = null; } @@ -147,6 +148,10 @@ public Bounds OnGetFrameBounds() return new Bounds(decalProjector.transform.position, handle.size); } + private bool m_RequireUpdateMaterialEditor = false; + + private void RequireUpdateMaterialEditor() => m_RequireUpdateMaterialEditor = true; + public void UpdateMaterialEditor() { int validMaterialsCount = 0; @@ -317,41 +322,49 @@ Bounds GetBoundsGetter() public override void OnInspectorGUI() { - EditorGUI.BeginChangeCheck(); + serializedObject.Update(); - EditorGUILayout.BeginHorizontal(); - GUILayout.FlexibleSpace(); - DoInspectorToolbar(k_EditVolumeModes, editVolumeLabels, GetBoundsGetter, this); + if (m_RequireUpdateMaterialEditor) + { + UpdateMaterialEditor(); + m_RequireUpdateMaterialEditor = false; + } - //[TODO: add editable pivot. Uncomment this when ready] - //DoInspectorToolbar(k_EditPivotModes, editPivotLabels, GetBoundsGetter, this); - GUILayout.FlexibleSpace(); - EditorGUILayout.EndHorizontal(); + EditorGUI.BeginChangeCheck(); + { + EditorGUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + DoInspectorToolbar(k_EditVolumeModes, editVolumeLabels, GetBoundsGetter, this); - EditorGUILayout.Space(); + //[TODO: add editable pivot. Uncomment this when ready] + //DoInspectorToolbar(k_EditPivotModes, editPivotLabels, GetBoundsGetter, this); + GUILayout.FlexibleSpace(); + EditorGUILayout.EndHorizontal(); - EditorGUILayout.PropertyField(m_Size, k_SizeContent); - EditorGUILayout.PropertyField(m_MaterialProperty, k_MaterialContent); + EditorGUILayout.Space(); - EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(m_DrawDistanceProperty, k_DistanceContent); - if (EditorGUI.EndChangeCheck() && m_DrawDistanceProperty.floatValue < 0f) - m_DrawDistanceProperty.floatValue = 0f; + EditorGUILayout.PropertyField(m_Size, k_SizeContent); + EditorGUILayout.PropertyField(m_MaterialProperty, k_MaterialContent); - EditorGUILayout.PropertyField(m_FadeScaleProperty, k_FadeScaleContent); - EditorGUILayout.PropertyField(m_UVScaleProperty, k_UVScaleContent); - EditorGUILayout.PropertyField(m_UVBiasProperty, k_UVBiasContent); - EditorGUILayout.PropertyField(m_FadeFactor, k_FadeFactorContent); + EditorGUI.BeginChangeCheck(); + EditorGUILayout.PropertyField(m_DrawDistanceProperty, k_DistanceContent); + if (EditorGUI.EndChangeCheck() && m_DrawDistanceProperty.floatValue < 0f) + m_DrawDistanceProperty.floatValue = 0f; - // only display the affects transparent property if material is HDRP/decal - if (showAffectTransparencyHaveMultipleDifferentValue) - { - using (new EditorGUI.DisabledScope(true)) - EditorGUILayout.LabelField(EditorGUIUtility.TrTextContent("Multiple material type in selection")); - } - else if (showAffectTransparency) - EditorGUILayout.PropertyField(m_AffectsTransparencyProperty, k_AffectTransparentContent); + EditorGUILayout.PropertyField(m_FadeScaleProperty, k_FadeScaleContent); + EditorGUILayout.PropertyField(m_UVScaleProperty, k_UVScaleContent); + EditorGUILayout.PropertyField(m_UVBiasProperty, k_UVBiasContent); + EditorGUILayout.PropertyField(m_FadeFactor, k_FadeFactorContent); + // only display the affects transparent property if material is HDRP/decal + if (showAffectTransparencyHaveMultipleDifferentValue) + { + using (new EditorGUI.DisabledScope(true)) + EditorGUILayout.LabelField(EditorGUIUtility.TrTextContent("Multiple material type in selection")); + } + else if (showAffectTransparency) + EditorGUILayout.PropertyField(m_AffectsTransparencyProperty, k_AffectTransparentContent); + } if (EditorGUI.EndChangeCheck()) serializedObject.ApplyModifiedProperties(); diff --git a/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/AxfSurfaceInputsUIBlock.cs b/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/AxfSurfaceInputsUIBlock.cs index 3b379fa186c..55b8ab0f75d 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/AxfSurfaceInputsUIBlock.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/AxfSurfaceInputsUIBlock.cs @@ -113,10 +113,23 @@ enum SvbrdfFresnelVariant ///////////////////////////////////////////////////////////////////////////////////////////////// // Generic Parameters - static string m_MaterialTilingUText = "_MaterialTilingU"; - MaterialProperty m_MaterialTilingU; - static string m_MaterialTilingVText = "_MaterialTilingV"; - MaterialProperty m_MaterialTilingV; + + MaterialProperty m_MaterialTilingOffset = null; + MaterialProperty m_DiffuseColorMapST = null; + MaterialProperty m_SpecularColorMapST = null; + MaterialProperty m_NormalMapST = null; + MaterialProperty m_SpecularLobeMapST = null; + MaterialProperty m_AlphaMapST = null; + MaterialProperty m_FresnelMapST = null; + MaterialProperty m_AnisoRotationMapST = null; + MaterialProperty m_HeightMapST = null; + MaterialProperty m_ClearcoatColorMapST = null; + MaterialProperty m_ClearcoatNormalMapST = null; + MaterialProperty m_ClearcoatIORMapST = null; + MaterialProperty m_CarPaint2_BTFFlakeMapST = null; + + static string tilingOffsetPropNameSuffix = "_SO"; + static string m_MaterialTilingOffsetText = "_Material_SO"; static string m_AxF_BRDFTypeText = "_AxF_BRDFType"; MaterialProperty m_AxF_BRDFType = null; @@ -179,9 +192,6 @@ enum SvbrdfFresnelVariant static string m_CarPaint2_BTFFlakeMapScaleText = "_CarPaint2_BTFFlakeMapScale"; MaterialProperty m_CarPaint2_BTFFlakeMapScale; - static string m_CarPaint2_FlakeTilingText = "_CarPaint2_FlakeTiling"; - MaterialProperty m_CarPaint2_FlakeTiling; - static string m_CarPaint2_FlakeThetaFISliceLUTMapText = "_CarPaint2_FlakeThetaFISliceLUTMap"; MaterialProperty m_CarPaint2_FlakeThetaFISliceLUTMap; @@ -224,8 +234,20 @@ public AxfSurfaceInputsUIBlock(Expandable expandableBit) public override void LoadMaterialProperties() { - m_MaterialTilingU = FindProperty(m_MaterialTilingUText); - m_MaterialTilingV = FindProperty(m_MaterialTilingVText); + m_MaterialTilingOffset = FindProperty(m_MaterialTilingOffsetText); + + m_DiffuseColorMapST = FindProperty(m_DiffuseColorMapText + tilingOffsetPropNameSuffix); + m_SpecularColorMapST = FindProperty(m_SpecularColorMapText + tilingOffsetPropNameSuffix); + m_NormalMapST = FindProperty(m_NormalMapText + tilingOffsetPropNameSuffix); + m_SpecularLobeMapST = FindProperty(m_SpecularLobeMapText + tilingOffsetPropNameSuffix); + m_AlphaMapST = FindProperty(m_AlphaMapText + tilingOffsetPropNameSuffix); + m_FresnelMapST = FindProperty(m_FresnelMapText + tilingOffsetPropNameSuffix); + m_AnisoRotationMapST = FindProperty(m_AnisoRotationMapText + tilingOffsetPropNameSuffix); + m_HeightMapST = FindProperty(m_HeightMapText + tilingOffsetPropNameSuffix); + m_ClearcoatColorMapST = FindProperty(m_ClearcoatColorMapText + tilingOffsetPropNameSuffix); + m_ClearcoatNormalMapST = FindProperty(m_ClearcoatNormalMapText + tilingOffsetPropNameSuffix); + m_ClearcoatIORMapST = FindProperty(m_ClearcoatIORMapText + tilingOffsetPropNameSuffix); + m_CarPaint2_BTFFlakeMapST = FindProperty(m_CarPaint2_BTFFlakeMapText + tilingOffsetPropNameSuffix); m_AxF_BRDFType = FindProperty(m_AxF_BRDFTypeText); @@ -264,7 +286,6 @@ public override void LoadMaterialProperties() m_CarPaint2_BRDFColorMapScale = FindProperty(m_CarPaint2_BRDFColorMapScaleText); m_CarPaint2_BRDFColorMapUVScale = FindProperty(m_CarPaint2_BRDFColorMapUVScaleText); m_CarPaint2_BTFFlakeMapScale = FindProperty(m_CarPaint2_BTFFlakeMapScaleText); - m_CarPaint2_FlakeTiling = FindProperty(m_CarPaint2_FlakeTilingText); m_CarPaint2_FlakeMaxThetaI = FindProperty(m_CarPaint2_FlakeMaxThetaIText); m_CarPaint2_FlakeNumThetaF = FindProperty(m_CarPaint2_FlakeNumThetaFText); @@ -323,8 +344,7 @@ public static void ExtractFlags(uint flags, void DrawAxfSurfaceOptionsGUI() { - materialEditor.ShaderProperty(m_MaterialTilingU, "Material Tiling U"); - materialEditor.ShaderProperty(m_MaterialTilingV, "Material Tiling V"); + materialEditor.ShaderProperty(m_MaterialTilingOffset, "Main Tiling & Offset"); AxfBrdfType AxF_BRDFType = (AxfBrdfType)m_AxF_BRDFType.floatValue; AxF_BRDFType = (AxfBrdfType)EditorGUILayout.Popup("BRDF Type", (int)AxF_BRDFType, AxfBrdfTypeNames); @@ -372,15 +392,15 @@ void DrawAxfSurfaceOptionsGUI() } // Regular maps - materialEditor.TexturePropertySingleLine(Styles.diffuseColorMapText, m_DiffuseColorMap); - materialEditor.TexturePropertySingleLine(Styles.specularColorMapText, m_SpecularColorMap); - materialEditor.TexturePropertySingleLine(Styles.specularLobeMapText, m_SpecularLobeMap); + materialEditor.TexturePropertySingleLine(Styles.diffuseColorMapText, m_DiffuseColorMap, m_DiffuseColorMapST); + materialEditor.TexturePropertySingleLine(Styles.specularColorMapText, m_SpecularColorMap, m_SpecularColorMapST); + materialEditor.TexturePropertySingleLine(Styles.specularLobeMapText, m_SpecularLobeMap, m_SpecularLobeMapST); m_SpecularLobeMapScale.floatValue = EditorGUILayout.FloatField(Styles.specularLobeMapScaleText, m_SpecularLobeMapScale.floatValue); - materialEditor.TexturePropertySingleLine(Styles.fresnelMapText, m_FresnelMap); - materialEditor.TexturePropertySingleLine(Styles.normalMapText, m_NormalMap); + materialEditor.TexturePropertySingleLine(Styles.fresnelMapText, m_FresnelMap, m_FresnelMapST); + materialEditor.TexturePropertySingleLine(Styles.normalMapText, m_NormalMap, m_NormalMapST); // Alpha - materialEditor.TexturePropertySingleLine(Styles.alphaMapText, m_AlphaMap); + materialEditor.TexturePropertySingleLine(Styles.alphaMapText, m_AlphaMap, m_AlphaMapST); // Displacement //TODO: unsupported for now @@ -389,7 +409,7 @@ void DrawAxfSurfaceOptionsGUI() if (useHeightMap) { ++EditorGUI.indentLevel; - materialEditor.TexturePropertySingleLine(Styles.heightMapText, m_HeightMap); + materialEditor.TexturePropertySingleLine(Styles.heightMapText, m_HeightMap, m_HeightMapST); materialEditor.ShaderProperty(m_SVBRDF_HeightMapMaxMM, "Max Displacement (mm)"); --EditorGUI.indentLevel; } @@ -399,7 +419,7 @@ void DrawAxfSurfaceOptionsGUI() if (anisotropy) { ++EditorGUI.indentLevel; - materialEditor.TexturePropertySingleLine(Styles.anisoRotationMapText, m_AnisoRotationMap); + materialEditor.TexturePropertySingleLine(Styles.anisoRotationMapText, m_AnisoRotationMap, m_AnisoRotationMapST); --EditorGUI.indentLevel; } @@ -408,12 +428,12 @@ void DrawAxfSurfaceOptionsGUI() if (clearcoat) { ++EditorGUI.indentLevel; - materialEditor.TexturePropertySingleLine(Styles.clearcoatColorMapText, m_ClearcoatColorMap); - materialEditor.TexturePropertySingleLine(Styles.clearcoatNormalMapText, m_ClearcoatNormalMap); + materialEditor.TexturePropertySingleLine(Styles.clearcoatColorMapText, m_ClearcoatColorMap, m_ClearcoatColorMapST); + materialEditor.TexturePropertySingleLine(Styles.clearcoatNormalMapText, m_ClearcoatNormalMap, m_ClearcoatNormalMapST); clearcoatRefraction = EditorGUILayout.Toggle("Enable Refraction", clearcoatRefraction); // The IOR map is always required for the coat F0, while in the CAR_PAINT model, the IOR // is given by a scalar value. - materialEditor.TexturePropertySingleLine(Styles.clearcoatIORMapText, m_ClearcoatIORMap); + materialEditor.TexturePropertySingleLine(Styles.clearcoatIORMapText, m_ClearcoatIORMap, m_ClearcoatIORMapST); --EditorGUI.indentLevel; } @@ -456,11 +476,11 @@ void DrawAxfSurfaceOptionsGUI() } - materialEditor.TexturePropertySingleLine(Styles.BTFFlakesMapText, m_CarPaint2_BTFFlakeMap); + //materialEditor.TexturePropertySingleLine(Styles.BTFFlakesMapText, m_CarPaint2_BTFFlakeMap, m_CarPaint2_BTFFlakeMapST); + materialEditor.TexturePropertySingleLine(Styles.BTFFlakesMapText, m_CarPaint2_BTFFlakeMap, m_CarPaint2_BTFFlakeMapST); //EditorGUILayout.LabelField( "Texture Dimension = " + m_CarPaint_BTFFlakesMap_sRGB.textureDimension ); //EditorGUILayout.LabelField( "Texture Format = " + m_CarPaint_BTFFlakesMap_sRGB.textureValue. ); m_CarPaint2_BTFFlakeMapScale.floatValue = EditorGUILayout.FloatField(Styles.BTFFlakesMapScaleText, m_CarPaint2_BTFFlakeMapScale.floatValue); - m_CarPaint2_FlakeTiling.floatValue = EditorGUILayout.FloatField(Styles.FlakesTilingText, m_CarPaint2_FlakeTiling.floatValue); materialEditor.TexturePropertySingleLine(Styles.thetaFI_sliceLUTMapText, m_CarPaint2_FlakeThetaFISliceLUTMap); @@ -481,7 +501,10 @@ void DrawAxfSurfaceOptionsGUI() { ++EditorGUI.indentLevel; // materialEditor.TexturePropertySingleLine( Styles.clearcoatColorMapText, m_ClearcoatColorMap ); - materialEditor.TexturePropertySingleLine(Styles.clearcoatNormalMapText, m_ClearcoatNormalMap); + //materialEditor.TexturePropertySingleLine(Styles.clearcoatNormalMapText, m_ClearcoatNormalMap); + materialEditor.TexturePropertySingleLine(Styles.clearcoatNormalMapText, m_ClearcoatNormalMap, m_ClearcoatNormalMapST); + //materialEditor.TexturePropertySingleLine(Styles.clearcoatNormalMapText, m_ClearcoatNormalMap, m_ClearcoatNormalMapST); + // materialEditor.TexturePropertySingleLine( Styles.clearcoatIORMapText, m_ClearcoatIORMap ); m_CarPaint2_ClearcoatIOR.floatValue = EditorGUILayout.FloatField(Styles.CarPaintIORText, m_CarPaint2_ClearcoatIOR.floatValue); --EditorGUI.indentLevel; diff --git a/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/EmissionUIBlock.cs b/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/EmissionUIBlock.cs index 08eeee01db4..34a9c22eff4 100644 --- a/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/EmissionUIBlock.cs +++ b/com.unity.render-pipelines.high-definition/Editor/Material/UIBlocks/EmissionUIBlock.cs @@ -103,6 +103,31 @@ public override void OnGUI() } } + void UpdateEmissiveColorAndIntensity() + { + materialEditor.serializedObject.ApplyModifiedProperties(); + foreach (Material target in materials) + { + if (target.HasProperty(kEmissiveColorLDR) && target.HasProperty(kEmissiveIntensity) && target.HasProperty(kEmissiveColor)) + { + target.SetColor(kEmissiveColor, target.GetColor(kEmissiveColorLDR) * target.GetFloat(kEmissiveIntensity)); + } + } + materialEditor.serializedObject.Update(); + } + + void UpdateEmissionUnit(float newUnitFloat) + { + foreach (Material target in materials) + { + if (target.HasProperty(kEmissiveIntensityUnit) && target.HasProperty(kEmissiveIntensity)) + { + target.SetFloat(kEmissiveIntensityUnit, newUnitFloat); + } + } + materialEditor.serializedObject.Update(); + } + void DrawEmissionGUI() { EditorGUI.BeginChangeCheck(); @@ -120,35 +145,85 @@ void DrawEmissionGUI() else { EditorGUI.BeginChangeCheck(); + DoEmissiveTextureProperty(emissiveColorLDR); + // Normalize all emissive colors for each target separately + foreach (Material material in materials) { - DoEmissiveTextureProperty(emissiveColorLDR); - emissiveColorLDR.colorValue = NormalizeEmissionColor(ref updateEmissiveColor, emissiveColorLDR.colorValue); + if (material.HasProperty(kEmissiveColorLDR)) + material.SetColor(kEmissiveColorLDR, NormalizeEmissionColor(ref updateEmissiveColor, material.GetColor(kEmissiveColorLDR))); + } + if (EditorGUI.EndChangeCheck() || updateEmissiveColor) + UpdateEmissiveColorAndIntensity(); + float newUnitFloat; + float newIntensity = emissiveIntensity.floatValue; + bool unitIsMixed = emissiveIntensityUnit.hasMixedValue; + bool intensityIsMixed = unitIsMixed || emissiveIntensity.hasMixedValue; + bool intensityChanged = false; + bool unitChanged = false; + EditorGUI.BeginChangeCheck(); + { using (new EditorGUILayout.HorizontalScope()) { EmissiveIntensityUnit unit = (EmissiveIntensityUnit)emissiveIntensityUnit.floatValue; + EditorGUI.showMixedValue = intensityIsMixed; if (unit == EmissiveIntensityUnit.Nits) { using (var change = new EditorGUI.ChangeCheckScope()) { materialEditor.ShaderProperty(emissiveIntensity, Styles.emissiveIntensityText); - if (change.changed) - emissiveIntensity.floatValue = Mathf.Clamp(emissiveIntensity.floatValue, 0, float.MaxValue); + intensityChanged = change.changed; + if (intensityChanged) + newIntensity = Mathf.Clamp(emissiveIntensity.floatValue, 0, float.MaxValue); } } else { - float evValue = LightUtils.ConvertLuminanceToEv(emissiveIntensity.floatValue); - evValue = EditorGUILayout.FloatField(Styles.emissiveIntensityText, evValue); - evValue = Mathf.Clamp(evValue, 0, float.MaxValue); - emissiveIntensity.floatValue = LightUtils.ConvertEvToLuminance(evValue); + float value = emissiveIntensity.floatValue; + if (!intensityIsMixed) + { + float evValue = LightUtils.ConvertLuminanceToEv(emissiveIntensity.floatValue); + evValue = EditorGUILayout.FloatField(Styles.emissiveIntensityText, evValue); + newIntensity = Mathf.Clamp(evValue, 0, float.MaxValue); + emissiveIntensity.floatValue = LightUtils.ConvertEvToLuminance(evValue); + } + else + { + using (var change = new EditorGUI.ChangeCheckScope()) + { + newIntensity = EditorGUILayout.FloatField(Styles.emissiveIntensityText, value); + intensityChanged = change.changed; + } + } + } + EditorGUI.showMixedValue = false; + + EditorGUI.showMixedValue = emissiveIntensityUnit.hasMixedValue; + using (var change = new EditorGUI.ChangeCheckScope()) + { + newUnitFloat = (float)(EmissiveIntensityUnit)EditorGUILayout.EnumPopup(unit); + unitChanged = change.changed; } - emissiveIntensityUnit.floatValue = (float)(EmissiveIntensityUnit)EditorGUILayout.EnumPopup(unit); + EditorGUI.showMixedValue = false; } } if (EditorGUI.EndChangeCheck() || updateEmissiveColor) - emissiveColor.colorValue = emissiveColorLDR.colorValue * emissiveIntensity.floatValue; + { + if(unitChanged) + { + if (unitIsMixed) + UpdateEmissionUnit(newUnitFloat); + else + emissiveIntensityUnit.floatValue = newUnitFloat; + } + + // We don't allow changes on intensity if units are mixed + if (intensityChanged && !unitIsMixed) + emissiveIntensity.floatValue = newIntensity; + + UpdateEmissiveColorAndIntensity(); + } } materialEditor.ShaderProperty(emissiveExposureWeight, Styles.emissiveExposureWeightText); diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Drawers.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Drawers.cs index 56f220191ce..f90ab8abf7b 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Drawers.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Drawers.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Reflection; +using System.Runtime.CompilerServices; using UnityEngine; using UnityEngine.Rendering.HighDefinition; using UnityEngine.Rendering; @@ -62,6 +63,8 @@ enum ShutterSpeedUnit "Custom" }; + static readonly int k_CustomPresetIndex = k_ApertureFormatNames.Length - 1; + static readonly Vector2[] k_ApertureFormatValues = { new Vector2(4.8f, 3.5f), @@ -76,6 +79,10 @@ enum ShutterSpeedUnit new Vector2(70.41f, 52.63f) }; + // Saves the value of the sensor size when the user switches from "custom" size to a preset per camera. + // We use a ConditionalWeakTable instead of a Dictionary to avoid keeping alive (with strong references) deleted cameras + static ConditionalWeakTable s_PerCameraSensorSizeHistory = new ConditionalWeakTable(); + static bool s_FovChanged; static float s_FovLastValue; @@ -298,14 +305,51 @@ static void Drawer_PhysicalCamera(SerializedHDCamera p, Editor owner) using (new EditorGUI.IndentLevelScope()) { EditorGUI.BeginChangeCheck(); - int filmGateIndex = Array.IndexOf(k_ApertureFormatValues, new Vector2((float)Math.Round(cam.sensorSize.vector2Value.x, 3), (float)Math.Round(cam.sensorSize.vector2Value.y, 3))); - if (filmGateIndex == -1) - filmGateIndex = EditorGUILayout.Popup(cameraTypeContent, k_ApertureFormatNames.Length - 1, k_ApertureFormatNames); - else - filmGateIndex = EditorGUILayout.Popup(cameraTypeContent, filmGateIndex, k_ApertureFormatNames); - if (EditorGUI.EndChangeCheck() && filmGateIndex < k_ApertureFormatValues.Length) - cam.sensorSize.vector2Value = k_ApertureFormatValues[filmGateIndex]; + int oldFilmGateIndex = Array.IndexOf(k_ApertureFormatValues, new Vector2((float)Math.Round(cam.sensorSize.vector2Value.x, 3), (float)Math.Round(cam.sensorSize.vector2Value.y, 3))); + + // If it is not one of the preset sizes, set it to custom + oldFilmGateIndex = (oldFilmGateIndex == -1) ? k_CustomPresetIndex: oldFilmGateIndex; + + // Get the new user selection + int newFilmGateIndex = EditorGUILayout.Popup(cameraTypeContent, oldFilmGateIndex, k_ApertureFormatNames); + + if (EditorGUI.EndChangeCheck()) + { + // Retrieve the previous custom size value, if one exists for this camera + object previousCustomValue; + s_PerCameraSensorSizeHistory.TryGetValue((Camera)p.serializedObject.targetObject, out previousCustomValue); + + // When switching from custom to a preset, update the last custom value (to display again, in case the user switches back to custom) + if (oldFilmGateIndex == k_CustomPresetIndex) + { + if (previousCustomValue == null) + { + s_PerCameraSensorSizeHistory.Add((Camera)p.serializedObject.targetObject, cam.sensorSize.vector2Value); + } + else + { + previousCustomValue = cam.sensorSize.vector2Value; + } + } + + if (newFilmGateIndex < k_CustomPresetIndex) + { + cam.sensorSize.vector2Value = k_ApertureFormatValues[newFilmGateIndex]; + } + else + { + // The user switched back to custom, so display by deafulr the previous custom value + if (previousCustomValue != null) + { + cam.sensorSize.vector2Value = (Vector2)previousCustomValue; + } + else + { + cam.sensorSize.vector2Value = new Vector2(36.0f, 24.0f); // this is the value new cameras are created with + } + } + } EditorGUILayout.PropertyField(cam.sensorSize, sensorSizeContent); EditorGUILayout.PropertyField(p.iso, isoContent); diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassDrawer.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassDrawer.cs index f9fe32253d7..4921eb510ce 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassDrawer.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassDrawer.cs @@ -158,36 +158,33 @@ void DoCommonSettingsGUI(ref Rect rect) rect.y += Styles.defaultLineSpace; } -#if true if ((commonPassUIFlags & PassUIFlag.TargetColorBuffer) != 0) { - m_TargetColorBuffer.intValue = (int)(CustomPass.TargetBuffer)EditorGUI.EnumPopup(rect, Styles.targetColorBuffer, (CustomPass.TargetBuffer)m_TargetColorBuffer.intValue); + EditorGUI.BeginProperty(rect, Styles.targetColorBuffer, m_TargetColorBuffer); + // There is still a bug with SerializedReference and PropertyField so we can't use it yet + // EditorGUI.PropertyField(rect, m_TargetColorBuffer, Styles.targetColorBuffer); + m_TargetColorBuffer.intValue = (int)(CustomPass.TargetBuffer)EditorGUI.EnumPopup(rect, Styles.targetColorBuffer, (CustomPass.TargetBuffer)m_TargetColorBuffer.intValue); + EditorGUI.EndProperty(); rect.y += Styles.defaultLineSpace; } if ((commonPassUIFlags & PassUIFlag.TargetDepthBuffer) != 0) { - m_TargetDepthBuffer.intValue = (int)(CustomPass.TargetBuffer)EditorGUI.EnumPopup(rect, Styles.targetDepthBuffer, (CustomPass.TargetBuffer)m_TargetDepthBuffer.intValue); + EditorGUI.BeginProperty(rect, Styles.targetColorBuffer, m_TargetDepthBuffer); + // EditorGUI.PropertyField(rect, m_TargetDepthBuffer, Styles.targetDepthBuffer); + m_TargetDepthBuffer.intValue = (int)(CustomPass.TargetBuffer)EditorGUI.EnumPopup(rect, Styles.targetDepthBuffer, (CustomPass.TargetBuffer)m_TargetDepthBuffer.intValue); + EditorGUI.EndProperty(); rect.y += Styles.defaultLineSpace; } if ((commonPassUIFlags & PassUIFlag.ClearFlags) != 0) { - m_ClearFlags.intValue = (int)(ClearFlag)EditorGUI.EnumPopup(rect, Styles.clearFlags, (ClearFlag)m_ClearFlags.intValue); + EditorGUI.BeginProperty(rect, Styles.clearFlags, m_ClearFlags); + // EditorGUI.PropertyField(rect, m_ClearFlags, Styles.clearFlags); + m_ClearFlags.intValue = (int)(ClearFlag)EditorGUI.EnumPopup(rect, Styles.clearFlags, (ClearFlag)m_ClearFlags.intValue); + EditorGUI.EndProperty(); rect.y += Styles.defaultLineSpace; } - -#else // TODO: remove all this code when the fix for SerializedReference lands - - EditorGUI.PropertyField(rect, m_TargetColorBuffer, Styles.targetColorBuffer); - rect.y += Styles.defaultLineSpace; - - EditorGUI.PropertyField(rect, m_TargetDepthBuffer, Styles.targetDepthBuffer); - rect.y += Styles.defaultLineSpace; - - EditorGUI.PropertyField(rect, m_ClearFlags, Styles.clearFlags); - rect.y += Styles.defaultLineSpace; -#endif } /// @@ -216,10 +213,18 @@ void DoHeaderGUI(ref Rect rect) enabledRect.x = rect.xMax - enabledSize.x; enabledRect.width = enabledSize.x; - m_PassFoldout.boolValue = EditorGUI.Foldout(headerRect, m_PassFoldout.boolValue, $"{m_Name.stringValue} ({m_PassType.Name})", true, EditorStyles.boldLabel); - EditorGUIUtility.labelWidth = enabledRect.width - 14; - m_Enabled.boolValue = EditorGUI.Toggle(enabledRect, Styles.enabled, m_Enabled.boolValue); - EditorGUIUtility.labelWidth = 0; + EditorGUI.BeginProperty(headerRect, GUIContent.none, m_PassFoldout); + { + m_PassFoldout.boolValue = EditorGUI.Foldout(headerRect, m_PassFoldout.boolValue, $"{m_Name.stringValue} ({m_PassType.Name})", true, EditorStyles.boldLabel); + } + EditorGUI.EndProperty(); + EditorGUI.BeginProperty(enabledRect, Styles.enabled, m_Enabled); + { + EditorGUIUtility.labelWidth = enabledRect.width - 14; + m_Enabled.boolValue = EditorGUI.Toggle(enabledRect, Styles.enabled, m_Enabled.boolValue); + EditorGUIUtility.labelWidth = 0; + } + EditorGUI.EndProperty(); } /// diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassVolumeEditor.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassVolumeEditor.cs index 1c22be4c267..19b8e67f528 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassVolumeEditor.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/CustomPassVolumeEditor.cs @@ -71,7 +71,7 @@ public override void OnInspectorGUI() } List GatherCustomPassesMaterials() - => m_Volume.customPasses.SelectMany(p => p.RegisterMaterialForInspector()).Where(m => m != null).ToList(); + => m_Volume.customPasses.Where(p => p != null).SelectMany(p => p.RegisterMaterialForInspector()).Where(m => m != null).ToList(); void UpdateMaterialEditors() { @@ -113,6 +113,9 @@ CustomPassDrawer GetCustomPassDrawer(SerializedProperty pass, int listIndex) var customPass = m_Volume.customPasses[listIndex]; + if (customPass == null) + return null; + foreach (var drawerType in TypeCache.GetTypesWithAttribute(typeof(CustomPassDrawerAttribute))) { var attr = drawerType.GetCustomAttributes(typeof(CustomPassDrawerAttribute), true)[0] as CustomPassDrawerAttribute; @@ -140,7 +143,12 @@ void DrawSettingsGUI() EditorGUI.BeginChangeCheck(); { - m_SerializedPassVolume.isGlobal.boolValue = EditorGUILayout.Popup(Styles.isGlobal, m_SerializedPassVolume.isGlobal.boolValue ? 0 : 1, Styles.modes) == 0; + Rect isGlobalRect = EditorGUILayout.GetControlRect(); + EditorGUI.BeginProperty(isGlobalRect, Styles.isGlobal, m_SerializedPassVolume.isGlobal); + { + m_SerializedPassVolume.isGlobal.boolValue = EditorGUI.Popup(isGlobalRect, Styles.isGlobal, m_SerializedPassVolume.isGlobal.boolValue ? 0 : 1, Styles.modes) == 0; + } + EditorGUI.EndProperty(); EditorGUILayout.PropertyField(m_SerializedPassVolume.injectionPoint, Styles.injectionPoint); EditorGUILayout.PropertyField(m_SerializedPassVolume.priority, Styles.priority); if (!m_SerializedPassVolume.isGlobal.boolValue) @@ -163,9 +171,15 @@ void DrawCustomPassReorderableList() } } - EditorGUILayout.BeginVertical(); - m_CustomPassList.DoLayoutList(); - EditorGUILayout.EndVertical(); + float customPassListHeight = m_CustomPassList.GetHeight(); + var customPassRect = EditorGUILayout.GetControlRect(false, customPassListHeight); + EditorGUI.BeginProperty(customPassRect, GUIContent.none, m_SerializedPassVolume.customPasses); + { + EditorGUILayout.BeginVertical(); + m_CustomPassList.DoList(customPassRect); + EditorGUILayout.EndVertical(); + } + EditorGUI.EndProperty(); } void CreateReorderableList(SerializedProperty passList) @@ -200,28 +214,34 @@ void CreateReorderableList(SerializedProperty passList) }; m_CustomPassList.onAddCallback += (list) => { - Undo.RegisterCompleteObjectUndo(target, "Remove custom pass"); + Undo.RegisterCompleteObjectUndo(target, "Add custom pass"); var menu = new GenericMenu(); foreach (var customPassType in TypeCache.GetTypesDerivedFrom()) { if (customPassType.IsAbstract) continue; - + menu.AddItem(new GUIContent(customPassType.Name), false, () => { - m_Volume.AddPassOfType(customPassType); passList.serializedObject.Update(); + m_Volume.AddPassOfType(customPassType); UpdateMaterialEditors(); - }); + passList.serializedObject.ApplyModifiedProperties(); + // Notify the prefab that something have changed: + PrefabUtility.RecordPrefabInstancePropertyModifications(target); + }); } menu.ShowAsContext(); }; m_CustomPassList.onRemoveCallback = (list) => { + passList.serializedObject.Update(); Undo.RegisterCompleteObjectUndo(target, "Remove custom pass"); m_Volume.customPasses.RemoveAt(list.index); - passList.serializedObject.Update(); UpdateMaterialEditors(); + passList.serializedObject.ApplyModifiedProperties(); + // Notify the prefab that something have changed: + PrefabUtility.RecordPrefabInstancePropertyModifications(target); }; } diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/DrawRenderersCustomPassDrawer.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/DrawRenderersCustomPassDrawer.cs index 0d28dd585c9..5759a22323c 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/DrawRenderersCustomPassDrawer.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/DrawRenderersCustomPassDrawer.cs @@ -161,8 +161,7 @@ protected override void DoPassGUI(SerializedProperty customPass, Rect rect) #endif // TODO: remove all this code when the fix for SerializedReference lands - // EditorGUI.PropertyField(rect, m_SortingCriteria, Styles.sortingCriteria); - m_SortingCriteria.intValue = (int)(SortingCriteria)EditorGUI.EnumPopup(rect, Styles.sortingCriteria, (SortingCriteria)m_SortingCriteria.intValue); + EditorGUI.PropertyField(rect, m_SortingCriteria, Styles.sortingCriteria); rect.y += Styles.defaultLineSpace; EditorGUI.indentLevel--; @@ -205,10 +204,11 @@ void DoFilters(ref Rect rect) if (m_FilterFoldout.boolValue) { EditorGUI.indentLevel++; - //Render queue filter + EditorGUI.BeginProperty(rect, Styles.renderQueueFilter, m_RenderQueue); + // There is still a bug with SerializedReference and PropertyField so we can't use it yet // EditorGUI.PropertyField(rect, m_RenderQueue, Styles.renderQueueFilter); - // TODO: remove all this code when the fix for SerializedReference lands m_RenderQueue.intValue = (int)(CustomPass.RenderQueueType)EditorGUI.EnumPopup(rect, Styles.renderQueueFilter, (CustomPass.RenderQueueType)m_RenderQueue.intValue); + EditorGUI.EndProperty(); rect.y += Styles.defaultLineSpace; if (ShowOpaqueObjectWarning()) { @@ -229,9 +229,7 @@ void DoMaterialOverride(ref Rect rect) { //Override material EditorGUI.BeginChangeCheck(); - // TODO: remove all this code when the fix for SerializedReference lands - m_OverrideMaterial.objectReferenceValue = EditorGUI.ObjectField(rect, Styles.overrideMaterial, m_OverrideMaterial.objectReferenceValue, typeof(Material), false); - // EditorGUI.PropertyField(rect, m_OverrideMaterial, Styles.overrideMaterial); + EditorGUI.PropertyField(rect, m_OverrideMaterial, Styles.overrideMaterial); if (EditorGUI.EndChangeCheck()) { var mat = m_OverrideMaterial.objectReferenceValue as Material; @@ -244,37 +242,49 @@ void DoMaterialOverride(ref Rect rect) EditorGUI.indentLevel++; if (m_OverrideMaterial.objectReferenceValue) { - var mat = m_OverrideMaterial.objectReferenceValue as Material; - EditorGUI.BeginChangeCheck(); - int index = mat.FindPass(m_OverrideMaterialPassName.stringValue); - index = EditorGUI.IntPopup(rect, Styles.overrideMaterialPass, index, GetMaterialPassNames(mat), Enumerable.Range(0, mat.passCount).ToArray()); - if (EditorGUI.EndChangeCheck()) - m_OverrideMaterialPassName.stringValue = mat.GetPassName(index); + EditorGUI.BeginProperty(rect, Styles.overrideMaterialPass, m_OverrideMaterialPassName); + { + var mat = m_OverrideMaterial.objectReferenceValue as Material; + EditorGUI.BeginChangeCheck(); + int index = mat.FindPass(m_OverrideMaterialPassName.stringValue); + index = EditorGUI.IntPopup(rect, Styles.overrideMaterialPass, index, GetMaterialPassNames(mat), Enumerable.Range(0, mat.passCount).ToArray()); + if (EditorGUI.EndChangeCheck()) + m_OverrideMaterialPassName.stringValue = mat.GetPassName(index); + } + EditorGUI.EndProperty(); } else { + EditorGUI.BeginProperty(rect, Styles.renderQueueFilter, m_RenderQueue); + // There is still a bug with SerializedReference and PropertyField so we can't use it yet + // EditorGUI.PropertyField(rect, m_ShaderPass, Styles.shaderPass); m_ShaderPass.intValue = (int)(DrawRenderersCustomPass.ShaderPass)EditorGUI.EnumPopup(rect, Styles.shaderPass, (DrawRenderersCustomPass.ShaderPass)m_ShaderPass.intValue); + EditorGUI.EndProperty(); } EditorGUI.indentLevel--; rect.y += Styles.defaultLineSpace; - if (customDepthIsNone) - { - using (new EditorGUI.DisabledScope(true)) - EditorGUI.Toggle(rect, Styles.overrideDepth, false); - } - else + EditorGUI.BeginProperty(rect, Styles.overrideDepth, m_OverrideDepthState); { - m_OverrideDepthState.boolValue = EditorGUI.Toggle(rect, Styles.overrideDepth, m_OverrideDepthState.boolValue); + if (customDepthIsNone) + { + using (new EditorGUI.DisabledScope(true)) + EditorGUI.Toggle(rect, Styles.overrideDepth, false); + } + else + { + EditorGUI.PropertyField(rect, m_OverrideDepthState, Styles.overrideDepth); + } } + EditorGUI.EndProperty(); if (m_OverrideDepthState.boolValue && !customDepthIsNone) { EditorGUI.indentLevel++; rect.y += Styles.defaultLineSpace; - m_DepthCompareFunction.intValue = (int)(CompareFunction)EditorGUI.EnumPopup(rect, Styles.depthCompareFunction, (CompareFunction)m_DepthCompareFunction.intValue); + EditorGUI.PropertyField(rect, m_DepthCompareFunction, Styles.depthCompareFunction); rect.y += Styles.defaultLineSpace; - m_DepthWrite.boolValue = EditorGUI.Toggle(rect, Styles.depthWrite, m_DepthWrite.boolValue); + EditorGUI.PropertyField(rect, m_DepthWrite, Styles.depthWrite); EditorGUI.indentLevel--; } } diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/FullScreenCustomPassDrawer.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/FullScreenCustomPassDrawer.cs index 909409738fa..7d52d4b7017 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/FullScreenCustomPassDrawer.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/CustomPass/FullScreenCustomPassDrawer.cs @@ -54,19 +54,21 @@ protected override void DoPassGUI(SerializedProperty customPass, Rect rect) rect.y += Styles.defaultLineSpace; } - // TODO: remove all this code when the fix for SerializedReference lands - m_FullScreenPassMaterial.objectReferenceValue = EditorGUI.ObjectField(rect, Styles.fullScreenPassMaterial, m_FullScreenPassMaterial.objectReferenceValue, typeof(Material), false); - // EditorGUI.PropertyField(rect, m_FullScreenPassMaterial, Styles.fullScreenPassMaterial); + EditorGUI.PropertyField(rect, m_FullScreenPassMaterial, Styles.fullScreenPassMaterial); rect.y += Styles.defaultLineSpace; if (m_FullScreenPassMaterial.objectReferenceValue is Material mat) { using (new EditorGUI.IndentLevelScope()) { - EditorGUI.BeginChangeCheck(); - int index = mat.FindPass(m_MaterialPassName.stringValue); - index = EditorGUI.IntPopup(rect, Styles.materialPassName, index, GetMaterialPassNames(mat), Enumerable.Range(0, mat.passCount).ToArray()); - if (EditorGUI.EndChangeCheck()) - m_MaterialPassName.stringValue = mat.GetPassName(index); + EditorGUI.BeginProperty(rect, Styles.materialPassName, m_MaterialPassName); + { + EditorGUI.BeginChangeCheck(); + int index = mat.FindPass(m_MaterialPassName.stringValue); + index = EditorGUI.IntPopup(rect, Styles.materialPassName, index, GetMaterialPassNames(mat), Enumerable.Range(0, mat.passCount).ToArray()); + if (EditorGUI.EndChangeCheck()) + m_MaterialPassName.stringValue = mat.GetPassName(index); + } + EditorGUI.EndProperty(); } } } diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs index c1aedeca879..d019df5a07b 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs @@ -145,7 +145,7 @@ public class GeneralSection public static readonly GUIContent maxPonctualContent = EditorGUIUtility.TrTextContent("Maximum Punctual on Screen", "Sets the maximum number of Point and Spot Lights HDRP can handle on screen at once."); public static readonly GUIContent maxAreaContent = EditorGUIUtility.TrTextContent("Maximum Area on Screen", "Sets the maximum number of area Lights HDRP can handle on screen at once."); public static readonly GUIContent maxEnvContent = EditorGUIUtility.TrTextContent("Maximum Reflection Probes on Screen", "Sets the maximum number of Planar and Reflection Probes HDRP can handle on screen at once."); - public static readonly GUIContent maxDecalContent = EditorGUIUtility.TrTextContent("Maximum Decals on Screen", "Sets the maximum number of Decals HDRP can handle on screen at once."); + public static readonly GUIContent maxDecalContent = EditorGUIUtility.TrTextContent("Maximum Clustered Decals on Screen", "Sets the maximum number of decals that can affect transparent GameObjects on screen."); public static readonly GUIContent resolutionContent = EditorGUIUtility.TrTextContent("Resolution", "Specifies the resolution of the shadow Atlas."); public static readonly GUIContent directionalShadowPrecisionContent = EditorGUIUtility.TrTextContent("Directional Shadow Precision", "Select the shadow map bit depth, this forces HDRP to use selected bit depth for shadow maps."); diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs index bd41dd2e4e1..8ecc4016043 100644 --- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs +++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.cs @@ -221,17 +221,8 @@ static void Drawer_SectionCookies(SerializedHDRenderPipelineAsset serialized, Ed { GraphicsFormat cookieFormat = (GraphicsFormat)serialized.renderPipelineSettings.lightLoopSettings.cookieFormat.intValue; long currentCache = PowerOfTwoTextureAtlas.GetApproxCacheSizeInByte(1, serialized.renderPipelineSettings.lightLoopSettings.cookieAtlasSize.intValue, true, cookieFormat); - if (currentCache > HDRenderPipeline.k_MaxCacheSize) - { - int reserved = PowerOfTwoTextureAtlas.GetMaxCacheSizeForWeightInByte(HDRenderPipeline.k_MaxCacheSize, true, cookieFormat); - string message = string.Format(Styles.cacheErrorFormat, HDEditorUtils.HumanizeWeight(currentCache), reserved); - EditorGUILayout.HelpBox(message, MessageType.Error); - } - else - { - string message = string.Format(Styles.cacheInfoFormat, HDEditorUtils.HumanizeWeight(currentCache)); - EditorGUILayout.HelpBox(message, MessageType.Info); - } + string message = string.Format(Styles.cacheInfoFormat, HDEditorUtils.HumanizeWeight(currentCache)); + EditorGUILayout.HelpBox(message, MessageType.Info); } EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(serialized.renderPipelineSettings.lightLoopSettings.cookieAtlasLastValidMip, Styles.cookieAtlasLastValidMipContent); @@ -301,17 +292,8 @@ static void Drawer_SectionReflection(SerializedHDRenderPipelineAsset serialized, else { long currentCache = PlanarReflectionProbeCache.GetApproxCacheSizeInByte(1, serialized.renderPipelineSettings.lightLoopSettings.planarReflectionAtlasSize.intValue, GraphicsFormat.R16G16B16A16_UNorm); - if (currentCache > HDRenderPipeline.k_MaxCacheSize) - { - int reserved = PlanarReflectionProbeCache.GetMaxCacheSizeForWeightInByte(HDRenderPipeline.k_MaxCacheSize, GraphicsFormat.R16G16B16A16_UNorm); - string message = string.Format(Styles.cacheErrorFormat, HDEditorUtils.HumanizeWeight(currentCache), reserved); - EditorGUILayout.HelpBox(message, MessageType.Error); - } - else - { - string message = string.Format(Styles.cacheInfoFormat, HDEditorUtils.HumanizeWeight(currentCache)); - EditorGUILayout.HelpBox(message, MessageType.Info); - } + string message = string.Format(Styles.cacheInfoFormat, HDEditorUtils.HumanizeWeight(currentCache)); + EditorGUILayout.HelpBox(message, MessageType.Info); } EditorGUILayout.PropertyField(serialized.renderPipelineSettings.lightLoopSettings.maxPlanarReflectionOnScreen, Styles.maxPlanarReflectionOnScreen); diff --git a/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.compute b/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.compute index 2d0faa53454..b5d937b117d 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.compute +++ b/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.compute @@ -7,9 +7,6 @@ // Tile size of this compute #define DEBUG_LIGHT_VOLUME_TILE_SIZE 8 -// The pixel radius to switch on the edge color -#define RADIUS_PIXEL_BORDER 1 - // Input Runtime textures TEXTURE2D_X_FLOAT(_DebugLightCountBuffer); TEXTURE2D_X(_DebugColorAccumulationBuffer); @@ -17,6 +14,8 @@ TEXTURE2D_X(_DebugColorAccumulationBuffer); // Data used for the computation Texture2D _ColorGradientTexture; int _MaxDebugLightCount; +// The pixel radius to switch on the edge color +float _BorderRadius; // output texture RW_TEXTURE2D_X(float4, _DebugLightVolumesTexture); @@ -58,9 +57,9 @@ void LightVolumeColors(uint3 dispatchThreadId : SV_DispatchThreadID, uint2 group // Look around this pixel to check if this should be displayed as a border float maxLightCount = lightCount; bool isBorder = false; - for (int radiusX = -RADIUS_PIXEL_BORDER; radiusX <= RADIUS_PIXEL_BORDER; ++radiusX) + for (float radiusX = -_BorderRadius; radiusX <= _BorderRadius; ++radiusX) { - for (int radiusY = -RADIUS_PIXEL_BORDER; radiusY <= RADIUS_PIXEL_BORDER; ++radiusY) + for (float radiusY = -_BorderRadius; radiusY <= _BorderRadius; ++radiusY) { // Compute the target pixel int2 targetpixel = int2((uint)currentPixelCoordinate.x + radiusX, (uint)currentPixelCoordinate.y + radiusY); diff --git a/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.cs b/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.cs index 47495addf93..6f09825a3dc 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Debug/DebugLightVolumes.cs @@ -34,6 +34,7 @@ class DebugLightVolumes public static readonly int _DebugLightVolumesTextureShaderID = Shader.PropertyToID("_DebugLightVolumesTexture"); public static readonly int _ColorGradientTextureShaderID = Shader.PropertyToID("_ColorGradientTexture"); public static readonly int _MaxDebugLightCountShaderID = Shader.PropertyToID("_MaxDebugLightCount"); + public static readonly int _BorderRadiusShaderID = Shader.PropertyToID("_BorderRadius"); // Render target array for the prepass RenderTargetIdentifier[] m_RTIDs = new RenderTargetIdentifier[2]; @@ -83,20 +84,26 @@ public struct RenderLightVolumesParameters public ComputeShader debugLightVolumeCS; public int debugLightVolumeKernel; public int maxDebugLightCount; + public float borderRadius; public Texture2D colorGradientTexture; + public bool lightOverlapEnabled; } public RenderLightVolumesParameters PrepareLightVolumeParameters(HDCamera hdCamera, LightingDebugSettings lightDebugSettings, CullingResults cullResults) { var parameters = new RenderLightVolumesParameters(); + bool lightOverlapEnabled = CoreUtils.IsLightOverlapDebugEnabled(hdCamera.camera); + bool useColorAndEdge = lightDebugSettings.lightVolumeDebugByCategory == LightVolumeDebug.ColorAndEdge || lightOverlapEnabled; parameters.hdCamera = hdCamera; parameters.cullResults = cullResults; parameters.debugLightVolumeMaterial = m_DebugLightVolumeMaterial; parameters.debugLightVolumeCS = m_DebugLightVolumeCompute; - parameters.debugLightVolumeKernel = lightDebugSettings.lightVolumeDebugByCategory == LightVolumeDebug.ColorAndEdge ? m_DebugLightVolumeColorsKernel : m_DebugLightVolumeGradientKernel; + parameters.debugLightVolumeKernel = useColorAndEdge ? m_DebugLightVolumeColorsKernel : m_DebugLightVolumeGradientKernel; parameters.maxDebugLightCount = (int)lightDebugSettings.maxDebugLightCount; + parameters.borderRadius = lightOverlapEnabled ? 0.5f : 1f; parameters.colorGradientTexture = m_ColorGradientTexture; + parameters.lightOverlapEnabled = lightOverlapEnabled; return parameters; } @@ -111,104 +118,69 @@ public static void RenderLightVolumes(CommandBuffer cmd, RTHandle destination, MaterialPropertyBlock mpb) { - // Set the render target array - CoreUtils.SetRenderTarget(cmd, accumulationMRT, depthBuffer); - // First of all let's do the regions for the light sources (we only support Punctual and Area) - int numLights = parameters.cullResults.visibleLights.Length; - for (int lightIdx = 0; lightIdx < numLights; ++lightIdx) + if (parameters.lightOverlapEnabled) { - // Let's build the light's bounding sphere matrix - Light currentLegacyLight = parameters.cullResults.visibleLights[lightIdx].light; - if (currentLegacyLight == null) continue; - HDAdditionalLightData currentHDRLight = currentLegacyLight.GetComponent(); - if (currentHDRLight == null) continue; + // We only need the accumulation buffer, not the color (we only disply the outline of the light shape in this mode). + CoreUtils.SetRenderTarget(cmd, accumulationMRT[0], depthBuffer); - Matrix4x4 positionMat = Matrix4x4.Translate(currentLegacyLight.transform.position); - - switch(currentHDRLight.ComputeLightType(currentLegacyLight)) + // The cullresult doesn't contains overlapping lights so we use a custom list + foreach (var overlappingHDLight in HDAdditionalLightData.s_overlappingHDLights) { - case HDLightType.Point: - mpb.SetColor(_ColorShaderID, new Color(0.0f, 0.5f, 0.0f, 1.0f)); - mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); - mpb.SetVector(_RangeShaderID, new Vector3(currentLegacyLight.range, currentLegacyLight.range, currentLegacyLight.range)); - cmd.DrawMesh(DebugShapes.instance.RequestSphereMesh(), positionMat, parameters.debugLightVolumeMaterial, 0, 0, mpb); - break; - case HDLightType.Spot: - switch (currentHDRLight.spotLightShape) - { - case SpotLightShape.Cone: - float bottomRadius = Mathf.Tan(currentLegacyLight.spotAngle * Mathf.PI / 360.0f) * currentLegacyLight.range; - mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.5f, 0.0f, 1.0f)); - mpb.SetVector(_RangeShaderID, new Vector3(bottomRadius, bottomRadius, currentLegacyLight.range)); - mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); - cmd.DrawMesh(DebugShapes.instance.RequestConeMesh(), currentLegacyLight.gameObject.transform.localToWorldMatrix, parameters.debugLightVolumeMaterial, 0, 0, mpb); - break; - case SpotLightShape.Box: - mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.5f, 0.0f, 1.0f)); - mpb.SetVector(_RangeShaderID, new Vector3(currentHDRLight.shapeWidth, currentHDRLight.shapeHeight, currentLegacyLight.range)); - mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, currentLegacyLight.range / 2.0f)); - cmd.DrawMesh(DebugShapes.instance.RequestBoxMesh(), currentLegacyLight.gameObject.transform.localToWorldMatrix, parameters.debugLightVolumeMaterial, 0, 0, mpb); - break; - case SpotLightShape.Pyramid: - float bottomWidth = Mathf.Tan(currentLegacyLight.spotAngle * Mathf.PI / 360.0f) * currentLegacyLight.range; - mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.5f, 0.0f, 1.0f)); - mpb.SetVector(_RangeShaderID, new Vector3(currentHDRLight.aspectRatio * bottomWidth * 2, bottomWidth * 2, currentLegacyLight.range)); - mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); - cmd.DrawMesh(DebugShapes.instance.RequestPyramidMesh(), currentLegacyLight.gameObject.transform.localToWorldMatrix, parameters.debugLightVolumeMaterial, 0, 0, mpb); - break; - } - break; - case HDLightType.Area: - switch (currentHDRLight.areaLightShape) - { - case AreaLightShape.Rectangle: - mpb.SetColor(_ColorShaderID, new Color(0.0f, 1.0f, 1.0f, 1.0f)); - mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); - mpb.SetVector(_RangeShaderID, new Vector3(currentLegacyLight.range, currentLegacyLight.range, currentLegacyLight.range)); - cmd.DrawMesh(DebugShapes.instance.RequestSphereMesh(), positionMat, parameters.debugLightVolumeMaterial, 0, 0, mpb); - break; - case AreaLightShape.Tube: - mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.0f, 0.5f, 1.0f)); - mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); - mpb.SetVector(_RangeShaderID, new Vector3(currentLegacyLight.range, currentLegacyLight.range, currentLegacyLight.range)); - cmd.DrawMesh(DebugShapes.instance.RequestSphereMesh(), positionMat, parameters.debugLightVolumeMaterial, 0, 0, mpb); - break; - default: - break; - } - break; + RenderLightVolume(cmd, parameters, overlappingHDLight, overlappingHDLight.legacyLight, mpb); } } - - // Now let's do the same but for reflection probes - int numProbes = parameters.cullResults.visibleReflectionProbes.Length; - for (int probeIdx = 0; probeIdx < numProbes; ++probeIdx) + else { - // Let's build the light's bounding sphere matrix - ReflectionProbe currentLegacyProbe = parameters.cullResults.visibleReflectionProbes[probeIdx].reflectionProbe; - HDAdditionalReflectionData currentHDProbe = currentLegacyProbe.GetComponent(); + // Set the render target array + CoreUtils.SetRenderTarget(cmd, accumulationMRT, depthBuffer); - if (!currentHDProbe) - continue; - - MaterialPropertyBlock m_MaterialProperty = new MaterialPropertyBlock(); - Mesh targetMesh = null; - if (currentHDProbe.influenceVolume.shape == InfluenceShape.Sphere) + // First of all let's do the regions for the light sources (we only support Punctual and Area) + int numLights = parameters.cullResults.visibleLights.Length; + for (int lightIdx = 0; lightIdx < numLights; ++lightIdx) { - m_MaterialProperty.SetVector(_RangeShaderID, new Vector3(currentHDProbe.influenceVolume.sphereRadius, currentHDProbe.influenceVolume.sphereRadius, currentHDProbe.influenceVolume.sphereRadius)); - targetMesh = DebugShapes.instance.RequestSphereMesh(); + // Let's build the light's bounding sphere matrix + Light currentLegacyLight = parameters.cullResults.visibleLights[lightIdx].light; + if (currentLegacyLight == null) continue; + HDAdditionalLightData currentHDRLight = currentLegacyLight.GetComponent(); + if (currentHDRLight == null) continue; + + RenderLightVolume(cmd, parameters, currentHDRLight, currentLegacyLight, mpb); } - else + + // When we enable the light overlap mode we hide probes as they can't be baked in shadow masks + if (!parameters.lightOverlapEnabled) { - m_MaterialProperty.SetVector(_RangeShaderID, new Vector3(currentHDProbe.influenceVolume.boxSize.x, currentHDProbe.influenceVolume.boxSize.y, currentHDProbe.influenceVolume.boxSize.z)); - targetMesh = DebugShapes.instance.RequestBoxMesh(); - } + // Now let's do the same but for reflection probes + int numProbes = parameters.cullResults.visibleReflectionProbes.Length; + for (int probeIdx = 0; probeIdx < numProbes; ++probeIdx) + { + // Let's build the light's bounding sphere matrix + ReflectionProbe currentLegacyProbe = parameters.cullResults.visibleReflectionProbes[probeIdx].reflectionProbe; + HDAdditionalReflectionData currentHDProbe = currentLegacyProbe.GetComponent(); + + if (!currentHDProbe) + continue; + + MaterialPropertyBlock m_MaterialProperty = new MaterialPropertyBlock(); + Mesh targetMesh = null; + if (currentHDProbe.influenceVolume.shape == InfluenceShape.Sphere) + { + m_MaterialProperty.SetVector(_RangeShaderID, new Vector3(currentHDProbe.influenceVolume.sphereRadius, currentHDProbe.influenceVolume.sphereRadius, currentHDProbe.influenceVolume.sphereRadius)); + targetMesh = DebugShapes.instance.RequestSphereMesh(); + } + else + { + m_MaterialProperty.SetVector(_RangeShaderID, new Vector3(currentHDProbe.influenceVolume.boxSize.x, currentHDProbe.influenceVolume.boxSize.y, currentHDProbe.influenceVolume.boxSize.z)); + targetMesh = DebugShapes.instance.RequestBoxMesh(); + } - m_MaterialProperty.SetColor(_ColorShaderID, new Color(1.0f, 1.0f, 0.0f, 1.0f)); - m_MaterialProperty.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); - Matrix4x4 positionMat = Matrix4x4.Translate(currentLegacyProbe.transform.position); - cmd.DrawMesh(targetMesh, positionMat, parameters.debugLightVolumeMaterial, 0, 0, m_MaterialProperty); + m_MaterialProperty.SetColor(_ColorShaderID, new Color(1.0f, 1.0f, 0.0f, 1.0f)); + m_MaterialProperty.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); + Matrix4x4 positionMat = Matrix4x4.Translate(currentLegacyProbe.transform.position); + cmd.DrawMesh(targetMesh, positionMat, parameters.debugLightVolumeMaterial, 0, 0, m_MaterialProperty); + } + } } // Set the input params for the compute @@ -217,6 +189,7 @@ public static void RenderLightVolumes(CommandBuffer cmd, cmd.SetComputeTextureParam(parameters.debugLightVolumeCS, parameters.debugLightVolumeKernel, _DebugLightVolumesTextureShaderID, debugLightVolumesTexture); cmd.SetComputeTextureParam(parameters.debugLightVolumeCS, parameters.debugLightVolumeKernel, _ColorGradientTextureShaderID, parameters.colorGradientTexture); cmd.SetComputeIntParam(parameters.debugLightVolumeCS, _MaxDebugLightCountShaderID, parameters.maxDebugLightCount); + cmd.SetComputeFloatParam(parameters.debugLightVolumeCS, _BorderRadiusShaderID, parameters.borderRadius); // Texture dimensions int texWidth = parameters.hdCamera.actualWidth; // m_ColorAccumulationBuffer.rt.width; @@ -235,6 +208,70 @@ public static void RenderLightVolumes(CommandBuffer cmd, cmd.DrawProcedural(Matrix4x4.identity, parameters.debugLightVolumeMaterial, 1, MeshTopology.Triangles, 3, 1, mpb); } + static void RenderLightVolume( + CommandBuffer cmd, + in RenderLightVolumesParameters parameters, + HDAdditionalLightData currentHDRLight, + Light currentLegacyLight, + MaterialPropertyBlock mpb) + { + Matrix4x4 positionMat = Matrix4x4.Translate(currentLegacyLight.transform.position); + + switch(currentHDRLight.ComputeLightType(currentLegacyLight)) + { + case HDLightType.Point: + mpb.SetColor(_ColorShaderID, new Color(0.0f, 0.5f, 0.0f, 1.0f)); + mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); + mpb.SetVector(_RangeShaderID, new Vector3(currentLegacyLight.range, currentLegacyLight.range, currentLegacyLight.range)); + cmd.DrawMesh(DebugShapes.instance.RequestSphereMesh(), positionMat, parameters.debugLightVolumeMaterial, 0, 0, mpb); + break; + case HDLightType.Spot: + switch (currentHDRLight.spotLightShape) + { + case SpotLightShape.Cone: + float bottomRadius = Mathf.Tan(currentLegacyLight.spotAngle * Mathf.PI / 360.0f) * currentLegacyLight.range; + mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.5f, 0.0f, 1.0f)); + mpb.SetVector(_RangeShaderID, new Vector3(bottomRadius, bottomRadius, currentLegacyLight.range)); + mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); + cmd.DrawMesh(DebugShapes.instance.RequestConeMesh(), currentLegacyLight.gameObject.transform.localToWorldMatrix, parameters.debugLightVolumeMaterial, 0, 0, mpb); + break; + case SpotLightShape.Box: + mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.5f, 0.0f, 1.0f)); + mpb.SetVector(_RangeShaderID, new Vector3(currentHDRLight.shapeWidth, currentHDRLight.shapeHeight, currentLegacyLight.range)); + mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, currentLegacyLight.range / 2.0f)); + cmd.DrawMesh(DebugShapes.instance.RequestBoxMesh(), currentLegacyLight.gameObject.transform.localToWorldMatrix, parameters.debugLightVolumeMaterial, 0, 0, mpb); + break; + case SpotLightShape.Pyramid: + float bottomWidth = Mathf.Tan(currentLegacyLight.spotAngle * Mathf.PI / 360.0f) * currentLegacyLight.range; + mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.5f, 0.0f, 1.0f)); + mpb.SetVector(_RangeShaderID, new Vector3(currentHDRLight.aspectRatio * bottomWidth * 2, bottomWidth * 2, currentLegacyLight.range)); + mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); + cmd.DrawMesh(DebugShapes.instance.RequestPyramidMesh(), currentLegacyLight.gameObject.transform.localToWorldMatrix, parameters.debugLightVolumeMaterial, 0, 0, mpb); + break; + } + break; + case HDLightType.Area: + switch (currentHDRLight.areaLightShape) + { + case AreaLightShape.Rectangle: + mpb.SetColor(_ColorShaderID, new Color(0.0f, 1.0f, 1.0f, 1.0f)); + mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); + mpb.SetVector(_RangeShaderID, new Vector3(currentLegacyLight.range, currentLegacyLight.range, currentLegacyLight.range)); + cmd.DrawMesh(DebugShapes.instance.RequestSphereMesh(), positionMat, parameters.debugLightVolumeMaterial, 0, 0, mpb); + break; + case AreaLightShape.Tube: + mpb.SetColor(_ColorShaderID, new Color(1.0f, 0.0f, 0.5f, 1.0f)); + mpb.SetVector(_OffsetShaderID, new Vector3(0, 0, 0)); + mpb.SetVector(_RangeShaderID, new Vector3(currentLegacyLight.range, currentLegacyLight.range, currentLegacyLight.range)); + cmd.DrawMesh(DebugShapes.instance.RequestSphereMesh(), positionMat, parameters.debugLightVolumeMaterial, 0, 0, mpb); + break; + default: + break; + } + break; + } + } + public void RenderLightVolumes(CommandBuffer cmd, HDCamera hdCamera, CullingResults cullResults, LightingDebugSettings lightDebugSettings, RTHandle finalRT) { using (new ProfilingScope(cmd, ProfilingSampler.Get(HDProfileId.DisplayLightVolume))) diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Migration.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Migration.cs index 5901520b37c..af0f8ca6b1c 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Migration.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.Migration.cs @@ -23,6 +23,7 @@ enum Version AreaLightShapeTypeLogicIsolation, PCSSUIUpdate, MoveEmissionMesh, + EnableApplyRangeAttenuationOnBoxLight, } /// @@ -163,6 +164,19 @@ private static readonly MigrationDescription k_H data.m_AreaLightEmissiveMeshShadowCastingMode = oldShadowCastingMode; data.m_AreaLightEmissiveMeshMotionVectorGenerationMode = oldMotionVectorMode; } + }), + MigrationStep.New(Version.EnableApplyRangeAttenuationOnBoxLight, (HDAdditionalLightData data) => + { + // When enabling range attenuation for box light, the default value was "true" + // causing a migration issue. So when we migrate we setup applyRangeAttenuation to false + // if we are a box light to keep the previous behavior + if (data.type == HDLightType.Spot) + { + if (data.spotLightShape == SpotLightShape.Box) + { + data.applyRangeAttenuation = false; + } + } }) ); #pragma warning restore 0618, 0612 diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.cs index b9b8ffe8124..091c61be589 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Light/HDAdditionalLightData.cs @@ -113,6 +113,9 @@ public static BoolScalableSetting UseContactShadow(HDRenderPipelineAsset hdrp) = internal const float k_MinAreaLightShadowCone = 10.0f; internal const float k_MaxAreaLightShadowCone = 179.0f; + /// List of the lights that overlaps when the OverlapLight scene view mode is enabled + internal static HashSet s_overlappingHDLights = new HashSet(); + #region HDLight Properties API [SerializeField, FormerlySerializedAs("displayLightIntensity")] @@ -511,7 +514,7 @@ public bool applyRangeAttenuation /// /// If enabled, display an emissive mesh rect synchronized with the intensity and color of the light. /// - internal bool displayAreaLightEmissiveMesh + public bool displayAreaLightEmissiveMesh { get => m_DisplayAreaLightEmissiveMesh; set @@ -1465,9 +1468,53 @@ void CreateChildEmissiveMeshViewerIfNeeded() if (PrefabUtility.IsPartOfPrefabAsset(this)) return; #endif + bool here = m_ChildEmissiveMeshViewer != null && !m_ChildEmissiveMeshViewer.Equals(null); + +#if UNITY_EDITOR + //if not parented anymore, destroy it + if (here && m_ChildEmissiveMeshViewer.transform.parent != transform) + { + if (Application.isPlaying) + Destroy(m_ChildEmissiveMeshViewer); + else + DestroyImmediate(m_ChildEmissiveMeshViewer); + m_ChildEmissiveMeshViewer = null; + m_EmissiveMeshFilter = null; + here = false; + } +#endif + + //if not here, try to find it first + if (!here) + { + foreach (Transform child in transform) + { + var test = child.GetComponents(typeof(Component)); + if (child.name == k_EmissiveMeshViewerName + && child.hideFlags == (HideFlags.NotEditable | HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor) + && child.GetComponents(typeof(MeshFilter)).Length == 1 + && child.GetComponents(typeof(MeshRenderer)).Length == 1 + && child.GetComponents(typeof(Component)).Length == 3) // Transform + MeshFilter + MeshRenderer + { + m_ChildEmissiveMeshViewer = child.gameObject; + m_ChildEmissiveMeshViewer.transform.localPosition = Vector3.zero; + m_ChildEmissiveMeshViewer.transform.localRotation = Quaternion.identity; + m_ChildEmissiveMeshViewer.transform.localScale = Vector3.one; + m_ChildEmissiveMeshViewer.layer = areaLightEmissiveMeshLayer == -1 ? gameObject.layer : areaLightEmissiveMeshLayer; + + m_EmissiveMeshFilter = m_ChildEmissiveMeshViewer.GetComponent(); + emissiveMeshRenderer = m_ChildEmissiveMeshViewer.GetComponent(); + emissiveMeshRenderer.shadowCastingMode = m_AreaLightEmissiveMeshShadowCastingMode; + emissiveMeshRenderer.motionVectorGenerationMode = m_AreaLightEmissiveMeshMotionVectorGenerationMode; + + here = true; + break; + } + } + } - //if not here, create it - if (m_ChildEmissiveMeshViewer == null || m_ChildEmissiveMeshViewer.Equals(null)) + //if still not here, create it + if (!here) { m_ChildEmissiveMeshViewer = new GameObject(k_EmissiveMeshViewerName, typeof(MeshFilter), typeof(MeshRenderer)); m_ChildEmissiveMeshViewer.hideFlags = HideFlags.NotEditable | HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor; @@ -1475,6 +1522,7 @@ void CreateChildEmissiveMeshViewerIfNeeded() m_ChildEmissiveMeshViewer.transform.localPosition = Vector3.zero; m_ChildEmissiveMeshViewer.transform.localRotation = Quaternion.identity; m_ChildEmissiveMeshViewer.transform.localScale = Vector3.one; + m_ChildEmissiveMeshViewer.layer = areaLightEmissiveMeshLayer == -1 ? gameObject.layer : areaLightEmissiveMeshLayer; m_EmissiveMeshFilter = m_ChildEmissiveMeshViewer.GetComponent(); emissiveMeshRenderer = m_ChildEmissiveMeshViewer.GetComponent(); @@ -1498,6 +1546,8 @@ void DestroyChildEmissiveMeshViewer() ShadowCastingMode m_AreaLightEmissiveMeshShadowCastingMode = ShadowCastingMode.Off; [SerializeField] MotionVectorGenerationMode m_AreaLightEmissiveMeshMotionVectorGenerationMode; + [SerializeField] + int m_AreaLightEmissiveMeshLayer = -1; //Special value that means we need to grab the one in the Light for initialization (for migration purpose) /// Change the Shadow Casting Mode of the generated emissive mesh for Area Light public ShadowCastingMode areaLightEmissiveMeshShadowCastingMode @@ -1532,7 +1582,24 @@ public MotionVectorGenerationMode areaLightEmissiveMeshMotionVectorGenerationMod } } } - + + /// Change the Layer of the generated emissive mesh for Area Light + public int areaLightEmissiveMeshLayer + { + get => m_AreaLightEmissiveMeshLayer; + set + { + if (m_AreaLightEmissiveMeshLayer == value) + return; + + m_AreaLightEmissiveMeshLayer = value; + if (emissiveMeshRenderer != null && !emissiveMeshRenderer.Equals(null)) + { + emissiveMeshRenderer.gameObject.layer = m_AreaLightEmissiveMeshLayer; + } + } + } + private void DisableCachedShadowSlot() { if (WillRenderShadowMap() && !ShadowIsUpdatedEveryFrame()) @@ -1552,6 +1619,7 @@ void OnDisable() { DisableCachedShadowSlot(); SetEmissiveMeshRendererEnabled(false); + s_overlappingHDLights.Remove(this); } void SetEmissiveMeshRendererEnabled(bool enabled) @@ -2087,6 +2155,36 @@ void LateUpdate() return; #endif +#if UNITY_EDITOR + // Update the list of overlapping lights for the LightOverlap scene view mode + if (IsOverlapping()) + s_overlappingHDLights.Add(this); + else + s_overlappingHDLights.Remove(this); +#endif + +#if UNITY_EDITOR + //if not parented anymore, refresh it + if (m_ChildEmissiveMeshViewer != null && !m_ChildEmissiveMeshViewer.Equals(null)) + { + if (m_ChildEmissiveMeshViewer.transform.parent != transform) + { + CreateChildEmissiveMeshViewerIfNeeded(); + UpdateAreaLightEmissiveMesh(); + } + if (m_ChildEmissiveMeshViewer.gameObject.isStatic != gameObject.isStatic) + m_ChildEmissiveMeshViewer.gameObject.isStatic = gameObject.isStatic; + if (GameObjectUtility.GetStaticEditorFlags(m_ChildEmissiveMeshViewer.gameObject) != GameObjectUtility.GetStaticEditorFlags(gameObject)) + GameObjectUtility.SetStaticEditorFlags(m_ChildEmissiveMeshViewer.gameObject, GameObjectUtility.GetStaticEditorFlags(gameObject)); + } +#endif + + //auto change layer on emissive mesh + if (areaLightEmissiveMeshLayer == -1 + && m_ChildEmissiveMeshViewer != null && !m_ChildEmissiveMeshViewer.Equals(null) + && m_ChildEmissiveMeshViewer.gameObject.layer != gameObject.layer) + m_ChildEmissiveMeshViewer.gameObject.layer = gameObject.layer; + // Delayed cleanup when removing emissive mesh from timeline if (needRefreshEmissiveMeshesFromTimeLineUpdate) { @@ -2946,5 +3044,14 @@ void ISerializationCallbackReceiver.OnBeforeSerialize() void Reset() => UpdateBounds(); + + /// Tell if the light is overlapping for the light overlap debug mode + internal bool IsOverlapping() + { + var baking = GetComponent().bakingOutput; + bool isOcclusionSeparatelyBaked = baking.occlusionMaskChannel != -1; + bool isDirectUsingBakedOcclusion = baking.mixedLightingMode == MixedLightingMode.Shadowmask || baking.mixedLightingMode == MixedLightingMode.Subtractive; + return isDirectUsingBakedOcclusion && !isOcclusionSeparatelyBaked; + } } } diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightCookieManager.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightCookieManager.cs index 8de7e0f0406..d551020e17c 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightCookieManager.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightCookieManager.cs @@ -63,9 +63,6 @@ public LightCookieManager(HDRenderPipelineAsset hdAsset, int maxCacheSize) cookieFormat = (GraphicsFormat)gLightLoopSettings.cookieFormat; cookieAtlasLastValidMip = gLightLoopSettings.cookieAtlasLastValidMip; - if (PowerOfTwoTextureAtlas.GetApproxCacheSizeInByte(1, cookieAtlasSize, true, cookieFormat) > HDRenderPipeline.k_MaxCacheSize) - cookieAtlasSize = PowerOfTwoTextureAtlas.GetMaxCacheSizeForWeightInByte(HDRenderPipeline.k_MaxCacheSize, true, cookieFormat); - m_CookieAtlas = new PowerOfTwoTextureAtlas(cookieAtlasSize, gLightLoopSettings.cookieAtlasLastValidMip, cookieFormat, name: "Cookie Atlas (Punctual Lights)", useMipMap: true); m_CubeToPanoMaterial = CoreUtils.CreateEngineMaterial(hdResources.shaders.cubeToPanoPS); diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs index 1581bc42d14..1ca6843ed51 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs @@ -1163,7 +1163,7 @@ internal void GetDirectionalLightData(CommandBuffer cmd, HDCamera hdCamera, Visi var lightData = new DirectionalLightData(); - lightData.lightLayers = additionalLightData.GetLightLayers(); + lightData.lightLayers = hdCamera.frameSettings.IsEnabled(FrameSettingsField.LightLayers) ? additionalLightData.GetLightLayers() : uint.MaxValue; // Light direction for directional is opposite to the forward direction lightData.forward = light.GetForward(); @@ -1318,8 +1318,7 @@ internal void GetLightData(CommandBuffer cmd, HDCamera hdCamera, HDShadowSetting var lightData = new LightData(); var visibleLightAxisAndPosition = light.GetAxisAndPosition(); - - lightData.lightLayers = additionalLightData.GetLightLayers(); + lightData.lightLayers = hdCamera.frameSettings.IsEnabled(FrameSettingsField.LightLayers) ? additionalLightData.GetLightLayers() : uint.MaxValue; lightData.lightType = gpuLightType; @@ -1814,7 +1813,7 @@ internal bool GetEnvLightData(CommandBuffer cmd, HDCamera hdCamera, in Processed return false; InfluenceVolume influence = probe.influenceVolume; - envLightData.lightLayers = probe.lightLayersAsUInt; + envLightData.lightLayers = hdCamera.frameSettings.IsEnabled(FrameSettingsField.LightLayers) ? probe.lightLayersAsUInt : uint.MaxValue; envLightData.influenceShapeType = influence.envShape; envLightData.weight = processedProbe.weight; envLightData.multiplier = probe.multiplier * m_indirectLightingController.indirectSpecularIntensity.value; diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDAdditionalReflectionData.Legacy.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDAdditionalReflectionData.Legacy.cs index 1b979ba2b23..1f446401766 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDAdditionalReflectionData.Legacy.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDAdditionalReflectionData.Legacy.cs @@ -30,6 +30,16 @@ public override void PrepareCulling() var tr = transform; var position = tr.position; var cubeProbe = reflectionProbe; + + if (cubeProbe == null || cubeProbe.Equals(null)) + { + // case 1244047 + // This can happen when removing the component from the editor and then undo the remove. + // The order of call maybe incorrect and the code flows here before the reflection probe + // is restored. + return; + } + switch (influence.shape) { case InfluenceShape.Box: diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbeCullingResults.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbeCullingResults.cs index 6ca43e2b60f..4fa75f24e34 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbeCullingResults.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbeCullingResults.cs @@ -10,7 +10,6 @@ struct HDProbeCullingResults List m_VisibleProbes; public IReadOnlyList visibleProbes => m_VisibleProbes ?? s_EmptyList; - internal List writeableVisibleProbes => m_VisibleProbes; internal void Reset() { @@ -20,11 +19,11 @@ internal void Reset() m_VisibleProbes.Clear(); } - internal void Set(List visibleProbes) + internal void AddProbe(HDProbe visibleProbes) { Assert.IsNotNull(m_VisibleProbes); - m_VisibleProbes.AddRange(visibleProbes); + m_VisibleProbes.Add(visibleProbes); } } } diff --git a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbeSystem.cs b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbeSystem.cs index 5a2bcc6dac5..4f17ce5df33 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbeSystem.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/HDProbeSystem.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using Unity.Collections.LowLevel.Unsafe; using UnityEngine.Assertions; @@ -30,9 +31,10 @@ public static ReflectionSystemParameters Parameters set => s_Instance.Parameters = value; } - public static IList realtimeViewDependentProbes => s_Instance.realtimeViewDependentProbes; - public static IList realtimeViewIndependentProbes => s_Instance.realtimeViewIndependentProbes; - public static IList bakedProbes => s_Instance.bakedProbes; + public static IEnumerable realtimeViewDependentProbes => s_Instance.realtimeViewDependentProbes; + public static IEnumerable realtimeViewIndependentProbes => s_Instance.realtimeViewIndependentProbes; + public static IEnumerable bakedProbes => s_Instance.bakedProbes; + public static int bakedProbeCount => s_Instance.bakedProbeCount; public static void RegisterProbe(HDProbe probe) => s_Instance.RegisterProbe(probe); public static void UnregisterProbe(HDProbe probe) => s_Instance.UnregisterProbe(probe); @@ -143,21 +145,25 @@ static Texture CreateAndSetRenderTargetIfRequired(HDProbe probe, ProbeSettings.M class HDProbeSystemInternal : IDisposable { - List m_BakedProbes = new List(); - List m_RealtimeViewDependentProbes = new List(); - List m_RealtimeViewIndependentProbes = new List(); + HashSet m_BakedProbes = new HashSet(); + HashSet m_RealtimeViewDependentProbes = new HashSet(); + HashSet m_RealtimeViewIndependentProbes = new HashSet(); int m_PlanarProbeCount = 0; - PlanarReflectionProbe[] m_PlanarProbes = new PlanarReflectionProbe[32]; + bool m_RebuildPlanarProbeArray; + HashSet m_PlanarProbes = new HashSet(); + PlanarReflectionProbe[] m_PlanarProbesArray = new PlanarReflectionProbe[32]; BoundingSphere[] m_PlanarProbeBounds = new BoundingSphere[32]; CullingGroup m_PlanarProbeCullingGroup = new CullingGroup(); - public IList bakedProbes + public IEnumerable bakedProbes { get { RemoveDestroyedProbes(m_BakedProbes); return m_BakedProbes; } } - public IList realtimeViewDependentProbes + public IEnumerable realtimeViewDependentProbes { get { RemoveDestroyedProbes(m_RealtimeViewDependentProbes); return m_RealtimeViewDependentProbes; } } - public IList realtimeViewIndependentProbes + public IEnumerable realtimeViewIndependentProbes { get { RemoveDestroyedProbes(m_RealtimeViewIndependentProbes); return m_RealtimeViewIndependentProbes; } } + public int bakedProbeCount => m_BakedProbes.Count; + public ReflectionSystemParameters Parameters; public void Dispose() @@ -172,12 +178,7 @@ internal void RegisterProbe(HDProbe probe) switch (settings.mode) { case ProbeSettings.Mode.Baked: - // TODO: Remove the duplicate check - // In theory, register/unregister are called by pair, never twice register in a row - // So there should not any "duplicate" calls. still it happens and we must prevent - // duplicate entries. - if (!m_BakedProbes.Contains(probe)) - m_BakedProbes.Add(probe); + m_BakedProbes.Add(probe); break; case ProbeSettings.Mode.Realtime: switch (settings.type) @@ -198,22 +199,19 @@ internal void RegisterProbe(HDProbe probe) { case ProbeSettings.ProbeType.PlanarProbe: { - // TODO: Remove the duplicate check - // In theory, register/unregister are called by pair, never twice register in a row - // So there should not any "duplicate" calls. still it happens and we must prevent - // duplicate entries. - if (Array.IndexOf(m_PlanarProbes, (PlanarReflectionProbe) probe) != -1) - break; - - // Grow the arrays - if (m_PlanarProbeCount == m_PlanarProbes.Length) + if (m_PlanarProbes.Add((PlanarReflectionProbe)probe)) { - Array.Resize(ref m_PlanarProbes, m_PlanarProbes.Length * 2); - Array.Resize(ref m_PlanarProbeBounds, m_PlanarProbeBounds.Length * 2); + // Insert in the array + // Grow the arrays + if (m_PlanarProbeCount == m_PlanarProbesArray.Length) + { + Array.Resize(ref m_PlanarProbesArray, m_PlanarProbes.Count * 2); + Array.Resize(ref m_PlanarProbeBounds, m_PlanarProbeBounds.Length * 2); + } + m_PlanarProbesArray[m_PlanarProbeCount] = (PlanarReflectionProbe)probe; + m_PlanarProbeBounds[m_PlanarProbeCount] = ((PlanarReflectionProbe)probe).boundingSphere; + ++m_PlanarProbeCount; } - m_PlanarProbes[m_PlanarProbeCount] = (PlanarReflectionProbe)probe; - m_PlanarProbeBounds[m_PlanarProbeCount] = ((PlanarReflectionProbe)probe).boundingSphere; - ++m_PlanarProbeCount; break; } } @@ -226,16 +224,11 @@ internal void UnregisterProbe(HDProbe probe) m_RealtimeViewIndependentProbes.Remove(probe); // Remove swap back - var index = Array.IndexOf(m_PlanarProbes, probe); - if (index != -1) + if (m_PlanarProbes.Remove(probe)) { - if (index < m_PlanarProbeCount) - { - m_PlanarProbes[index] = m_PlanarProbes[m_PlanarProbeCount - 1]; - m_PlanarProbeBounds[index] = m_PlanarProbeBounds[m_PlanarProbeCount - 1]; - m_PlanarProbes[m_PlanarProbeCount - 1] = null; - } - --m_PlanarProbeCount; + // It is best to rebuild the full array when we need it instead of doing it at each unregister. + // So we mark it as dirty. + m_RebuildPlanarProbeArray = true; } } @@ -246,15 +239,34 @@ internal HDProbeCullState PrepareCull(Camera camera) if (m_PlanarProbeCullingGroup == null) return default; - UpdateBoundsAndRemoveDestroyedProbes(m_PlanarProbes, m_PlanarProbeBounds, ref m_PlanarProbeCount); + RebuildPlanarProbeArrayIfRequired(); + + UpdateBoundsAndRemoveDestroyedProbes(m_PlanarProbesArray, m_PlanarProbeBounds, ref m_PlanarProbeCount); m_PlanarProbeCullingGroup.targetCamera = camera; m_PlanarProbeCullingGroup.SetBoundingSpheres(m_PlanarProbeBounds); m_PlanarProbeCullingGroup.SetBoundingSphereCount(m_PlanarProbeCount); - var stateHash = ComputeStateHashDebug(m_PlanarProbeBounds, m_PlanarProbes, m_PlanarProbeCount); + var stateHash = ComputeStateHashDebug(m_PlanarProbeBounds, m_PlanarProbesArray, m_PlanarProbeCount); - return new HDProbeCullState(m_PlanarProbeCullingGroup, m_PlanarProbes, stateHash); + return new HDProbeCullState(m_PlanarProbeCullingGroup, m_PlanarProbesArray, stateHash); + } + + void RebuildPlanarProbeArrayIfRequired() + { + if (m_RebuildPlanarProbeArray) + { + RemoveDestroyedProbes(m_PlanarProbes); + + m_RebuildPlanarProbeArray = false; + var i = 0; + foreach (var probe in m_PlanarProbes) + { + m_PlanarProbesArray[i] = (PlanarReflectionProbe)probe; + ++i; + } + m_PlanarProbeCount = m_PlanarProbes.Count; + } } int[] m_QueryCullResults_Indices; @@ -262,29 +274,22 @@ internal void QueryCullResults(HDProbeCullState state, ref HDProbeCullingResults { Assert.IsNotNull(state.cullingGroup, "Culling was not prepared, please prepare cull before performing it."); Assert.IsNotNull(state.hdProbes, "Culling was not prepared, please prepare cull before performing it."); - var stateHash = ComputeStateHashDebug(m_PlanarProbeBounds, m_PlanarProbes, m_PlanarProbeCount); + var stateHash = ComputeStateHashDebug(m_PlanarProbeBounds, m_PlanarProbesArray, m_PlanarProbeCount); Assert.AreEqual(stateHash, state.stateHash, "HDProbes changes since culling was prepared, this will lead to incorrect results."); results.Reset(); - var probes = results.writeableVisibleProbes; Array.Resize( ref m_QueryCullResults_Indices, Parameters.maxActivePlanarReflectionProbe + Parameters.maxActiveReflectionProbe ); var indexCount = state.cullingGroup.QueryIndices(true, m_QueryCullResults_Indices, 0); - for (int i = 0; i < indexCount; ++i) - probes.Add(state.hdProbes[m_QueryCullResults_Indices[i]]); + for (var i = 0; i < indexCount; ++i) + results.AddProbe(state.hdProbes[m_QueryCullResults_Indices[i]]); } - static void RemoveDestroyedProbes(List probes) - { - for (int i = probes.Count - 1; i >= 0; --i) - { - if (probes[i] == null || probes[i].Equals(null)) - probes.RemoveAt(i); - } - } + static void RemoveDestroyedProbes(HashSet probes) + => probes.RemoveWhere(p => p == null || p.Equals(null)); static void UpdateBoundsAndRemoveDestroyedProbes(PlanarReflectionProbe[] probes, BoundingSphere[] bounds, ref int count) { diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxF.shader b/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxF.shader index c125cc62582..a52d3de21c7 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxF.shader +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxF.shader @@ -7,8 +7,21 @@ Shader "HDRP/AxF" ///////////////////////////////////////////////////////////////////////////// // General Parameters - _MaterialTilingU( "Material U Tiling", Float ) = 1 - _MaterialTilingV( "Material V Tiling", Float ) = 1 + + // Tilings and offsets + _Material_SO( "Main Material Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_DiffuseColorMap_SO( "_SVBRDF_DiffuseColorMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_SpecularColorMap_SO( "_SVBRDF_SpecularColorMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_NormalMap_SO( "_SVBRDF_NormalMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_SpecularLobeMap_SO( "_SVBRDF_SpecularLobeMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_AlphaMap_SO( "_SVBRDF_AlphaMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_FresnelMap_SO( "_SVBRDF_FresnelMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_AnisoRotationMap_SO( "_SVBRDF_AnisoRotationMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_HeightMap_SO( "_SVBRDF_HeightMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_ClearcoatColorMap_SO( "_SVBRDF_ClearcoatColorMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _ClearcoatNormalMap_SO( "_ClearcoatNormalMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _SVBRDF_ClearcoatIORMap_SO( "_SVBRDF_ClearcoatIORMap Tiling & Offset", Vector) = (1, 1, 0, 0) + _CarPaint2_BTFFlakeMap_SO( "_CarPaint2_BTFFlakeMap Tiling & Offset", Vector) = (1, 1, 0, 0) [Enum(SVBRDF, 0, CarPaint, 1, BTF, 2)] _AxF_BRDFType("_AxF_BRDFType", Float) = 0 @@ -48,7 +61,6 @@ Shader "HDRP/AxF" _CarPaint2_BRDFColorMapUVScale("_CarPaint2_BRDFColorMapUVScale", Vector) = (1,1,0,0) // To be used when we have the bit BRDFColorUseDiagonalClamp set in _Flags // Flakes - _CarPaint2_FlakeTiling("_CarPaint2_FlakeTiling", Float) = 1 _CarPaint2_BTFFlakeMapScale("_CarPaint2_BTFFlakeMapScale", Float) = 1 // Scale is useless if we're directly provided a RGBA16F format _CarPaint2_BTFFlakeMap("_CarPaint2_BTFFlakeMap", 2DArray) = "black" {} _CarPaint2_FlakeThetaFISliceLUTMap( "_CarPaint2_FlakeThetaFISliceLUTMap", 2D ) = "black" {} diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxFData.hlsl b/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxFData.hlsl index b40ae677c35..e1ee3e925bc 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxFData.hlsl +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxFData.hlsl @@ -5,6 +5,9 @@ #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/MaterialUtilities.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl" +// Note: the scaling _Material_SO.xy should already be in texuv, but NOT the bias. +#define AXF_TRANSFORM_TEXUV(texuv, name) ((texuv.xy) * name##_SO.xy + name##_SO.zw + _Material_SO.zw) + void ApplyDecalToSurfaceData(DecalSurfaceData decalSurfaceData, inout SurfaceData surfaceData) { #if defined(_AXF_BRDF_TYPE_SVBRDF) || defined(_AXF_BRDF_TYPE_CAR_PAINT) // Not implemented for BTF @@ -55,7 +58,7 @@ void GetSurfaceAndBuiltinData(FragInputs input, float3 V, inout PositionInputs p ApplyDoubleSidedFlipOrMirror(input, doubleSidedConstants); // Apply double sided flip on the vertex normal - float2 UV0 = input.texCoord0.xy * float2(_MaterialTilingU, _MaterialTilingV); + float2 UV0 = input.texCoord0.xy * _Material_SO.xy; //----------------------------------------------------------------------------- // _AXF_BRDF_TYPE_SVBRDF @@ -69,28 +72,44 @@ void GetSurfaceAndBuiltinData(FragInputs input, float3 V, inout PositionInputs p #ifdef _AXF_BRDF_TYPE_SVBRDF - surfaceData.diffuseColor = SAMPLE_TEXTURE2D(_SVBRDF_DiffuseColorMap, sampler_SVBRDF_DiffuseColorMap, UV0).xyz; - surfaceData.specularColor = SAMPLE_TEXTURE2D(_SVBRDF_SpecularColorMap, sampler_SVBRDF_SpecularColorMap, UV0).xyz; - surfaceData.specularLobe.xy = _SVBRDF_SpecularLobeMapScale * SAMPLE_TEXTURE2D(_SVBRDF_SpecularLobeMap, sampler_SVBRDF_SpecularLobeMap, UV0).xy; + surfaceData.diffuseColor = + SAMPLE_TEXTURE2D(_SVBRDF_DiffuseColorMap, sampler_SVBRDF_DiffuseColorMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_DiffuseColorMap)).xyz; + surfaceData.specularColor = + SAMPLE_TEXTURE2D(_SVBRDF_SpecularColorMap, sampler_SVBRDF_SpecularColorMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_SpecularColorMap)).xyz; + surfaceData.specularLobe.xy = + _SVBRDF_SpecularLobeMapScale * SAMPLE_TEXTURE2D(_SVBRDF_SpecularLobeMap, sampler_SVBRDF_SpecularLobeMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_SpecularLobeMap)).xy; // The AxF models include both a general coloring term that they call "specular color" while the f0 is actually another term, // seemingly always scalar: - surfaceData.fresnelF0 = SAMPLE_TEXTURE2D(_SVBRDF_FresnelMap, sampler_SVBRDF_FresnelMap, UV0).x; - surfaceData.height_mm = SAMPLE_TEXTURE2D(_SVBRDF_HeightMap, sampler_SVBRDF_HeightMap, UV0).x * _SVBRDF_HeightMapMaxMM; + surfaceData.fresnelF0 = SAMPLE_TEXTURE2D(_SVBRDF_FresnelMap, sampler_SVBRDF_FresnelMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_FresnelMap)).x; + surfaceData.height_mm = SAMPLE_TEXTURE2D(_SVBRDF_HeightMap, sampler_SVBRDF_HeightMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_HeightMap)).x * _SVBRDF_HeightMapMaxMM; // Our importer range remaps the [-HALF_PI, HALF_PI) range to [0,1). We map back here: - surfaceData.anisotropyAngle = HALF_PI * (2.0 * SAMPLE_TEXTURE2D(_SVBRDF_AnisoRotationMap, sampler_SVBRDF_AnisoRotationMap, UV0).x - 1.0); - surfaceData.clearcoatColor = SAMPLE_TEXTURE2D(_SVBRDF_ClearcoatColorMap, sampler_SVBRDF_ClearcoatColorMap, UV0).xyz; + surfaceData.anisotropyAngle = + HALF_PI * (2.0 * SAMPLE_TEXTURE2D(_SVBRDF_AnisoRotationMap, sampler_SVBRDF_AnisoRotationMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_AnisoRotationMap)).x - 1.0); + surfaceData.clearcoatColor = + SAMPLE_TEXTURE2D(_SVBRDF_ClearcoatColorMap, sampler_SVBRDF_ClearcoatColorMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_ClearcoatColorMap)).xyz; + // The importer transforms the IOR to an f0, we map it back here as an IOR clamped under at 1.0 // TODO: if we're reusing float textures anyway, we shouldn't need the normalization that transforming to an f0 provides. - float clearcoatF0 = SAMPLE_TEXTURE2D(_SVBRDF_ClearcoatIORMap, sampler_SVBRDF_ClearcoatIORMap, UV0).x; + float clearcoatF0 = SAMPLE_TEXTURE2D(_SVBRDF_ClearcoatIORMap, sampler_SVBRDF_ClearcoatIORMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_ClearcoatIORMap)).x; float sqrtF0 = sqrt(clearcoatF0); surfaceData.clearcoatIOR = max(1.0, (1.0 + sqrtF0) / (1.00001 - sqrtF0)); // We make sure it's working for F0=1 // TBN - GetNormalWS(input, 2.0 * SAMPLE_TEXTURE2D(_SVBRDF_NormalMap, sampler_SVBRDF_NormalMap, UV0).xyz - 1.0, surfaceData.normalWS, doubleSidedConstants); - GetNormalWS(input, 2.0 * SAMPLE_TEXTURE2D(_ClearcoatNormalMap, sampler_ClearcoatNormalMap, UV0).xyz - 1.0, surfaceData.clearcoatNormalWS, doubleSidedConstants); - - alpha = SAMPLE_TEXTURE2D(_SVBRDF_AlphaMap, sampler_SVBRDF_AlphaMap, UV0).x; + GetNormalWS( + input, + 2.0 * SAMPLE_TEXTURE2D(_SVBRDF_NormalMap, sampler_SVBRDF_NormalMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_NormalMap)).xyz - 1.0, + surfaceData.normalWS, + doubleSidedConstants + ); + GetNormalWS( + input, + 2.0 * SAMPLE_TEXTURE2D(_ClearcoatNormalMap, sampler_ClearcoatNormalMap, AXF_TRANSFORM_TEXUV(UV0, _ClearcoatNormalMap)).xyz - 1.0, + surfaceData.clearcoatNormalWS, + doubleSidedConstants + ); + + alpha = SAMPLE_TEXTURE2D(_SVBRDF_AlphaMap, sampler_SVBRDF_AlphaMap, AXF_TRANSFORM_TEXUV(UV0, _SVBRDF_AlphaMap)).x; // Useless for SVBRDF surfaceData.flakesUV = input.texCoord0.xy; @@ -108,13 +127,17 @@ void GetSurfaceAndBuiltinData(FragInputs input, float3 V, inout PositionInputs p surfaceData.specularLobe = _CarPaint2_CTSpreads.xyz; // We may want to modify these (eg for Specular AA) surfaceData.normalWS = input.tangentToWorld[2].xyz; - GetNormalWS(input, 2.0 * SAMPLE_TEXTURE2D(_ClearcoatNormalMap, sampler_ClearcoatNormalMap, UV0).xyz - 1.0, surfaceData.clearcoatNormalWS, doubleSidedConstants); - - // Create mirrored UVs to hide flakes tiling - surfaceData.flakesUV = _CarPaint2_FlakeTiling * UV0; - + GetNormalWS( + input, + 2.0 * SAMPLE_TEXTURE2D(_ClearcoatNormalMap, sampler_ClearcoatNormalMap, AXF_TRANSFORM_TEXUV(UV0, _ClearcoatNormalMap)).xyz - 1.0, + surfaceData.clearcoatNormalWS, + doubleSidedConstants + ); + + surfaceData.flakesUV = AXF_TRANSFORM_TEXUV(UV0, _CarPaint2_BTFFlakeMap); surfaceData.flakesMipLevel = CALCULATE_TEXTURE2D_LOD(_CarPaint2_BTFFlakeMap, sampler_CarPaint2_BTFFlakeMap, surfaceData.flakesUV); + // Create mirrored UVs to hide flakes tiling // TODO_FLAKES: this isn't really tiling if ((int(surfaceData.flakesUV.y) & 1) == 0) surfaceData.flakesUV.x += 0.5; diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxFProperties.hlsl b/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxFProperties.hlsl index 9c3383f73da..d19ba0e0cad 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxFProperties.hlsl +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/AxF/AxFProperties.hlsl @@ -51,8 +51,21 @@ SAMPLER(sampler_SVBRDF_ClearcoatIORMap); CBUFFER_START(UnityPerMaterial) - float _MaterialTilingU; // Size of the U range, in millimeters (currently used as UV scale factor) - float _MaterialTilingV; // Size of the V range, in millimeters (currently used as UV scale factor) + // Scale/Offsets: + float4 _Material_SO; // Main scale, TODO: scale - but not offset - could be moved to vertex shader and applied to uv0 + + float4 _SVBRDF_DiffuseColorMap_SO; + float4 _SVBRDF_SpecularColorMap_SO; + float4 _SVBRDF_NormalMap_SO; + float4 _SVBRDF_SpecularLobeMap_SO; + float4 _SVBRDF_AlphaMap_SO; + float4 _SVBRDF_FresnelMap_SO; + float4 _SVBRDF_AnisoRotationMap_SO; + float4 _SVBRDF_HeightMap_SO; + float4 _SVBRDF_ClearcoatColorMap_SO; + float4 _ClearcoatNormalMap_SO; + float4 _SVBRDF_ClearcoatIORMap_SO; + float4 _CarPaint2_BTFFlakeMap_SO; uint _Flags; // Bit 0 = Anisotropic. If true, specular lobe map contains 2 channels and the _AnisotropicRotationAngleMap needs to be read // Bit 1 = HasClearcoat. If true, the clearcoat must be applied. The _ClearcoatNormalMap must be valid and contain clearcoat normal data. @@ -94,7 +107,6 @@ CBUFFER_START(UnityPerMaterial) float4 _CarPaint2_CTSpreads; // Description of multi-lobes spread values // Flakes - float _CarPaint2_FlakeTiling; // Tiling factor for flakes uint _CarPaint2_FlakeMaxThetaI; // Maximum thetaI index uint _CarPaint2_FlakeNumThetaF; // Amount of thetaF entries (in litterature, that's called thetaH, the angle between the normal and the half vector) uint _CarPaint2_FlakeNumThetaI; // Amount of thetaI entries (in litterature, that's called thetaD, the angle between the light/view and the half vector) diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalProjector.cs b/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalProjector.cs index b27590314f4..3706ba9ff0e 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalProjector.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalProjector.cs @@ -212,7 +212,7 @@ internal DecalSystem.DecalHandle Handle } } - void OnEnable() + void InitMaterial() { if (m_Material == null) { @@ -223,6 +223,13 @@ void OnEnable() m_Material = null; #endif } + } + + void Reset() => InitMaterial(); + + void OnEnable() + { + InitMaterial(); if (m_Handle != null) { diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalSystem.cs b/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalSystem.cs index c19d3d507b3..edcdac53c7b 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalSystem.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalSystem.cs @@ -796,7 +796,14 @@ public int DrawOrder { get { - return this.m_Material.GetInt("_DrawOrder"); + if (m_IsHDRenderPipelineDecal) + { + return this.m_Material.GetInt("_DrawOrder"); + } + else + { + return 0; + } } } diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl b/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl index 821ee5814e8..1e00ee85b8b 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitData.hlsl @@ -658,7 +658,8 @@ void GetSurfaceAndBuiltinData(FragInputs input, float3 V, inout PositionInputs p input.texCoord1 = ((_UVMappingMask0.y + _UVMappingMask1.y + _UVMappingMask2.y + _UVMappingMask3.y + _UVDetailsMappingMask0.y + _UVDetailsMappingMask1.y + _UVDetailsMappingMask2.y + _UVDetailsMappingMask3.y) > 0) ? input.texCoord1 : 0; #endif -#ifndef SHADER_STAGE_RAY_TRACING +// Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) +#if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); #endif diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitDataDisplacement.hlsl b/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitDataDisplacement.hlsl index b408f25a983..2be0e26e622 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitDataDisplacement.hlsl +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/LayeredLit/LayeredLitDataDisplacement.hlsl @@ -307,6 +307,15 @@ float3 ComputePerVertexDisplacement(LayerTexCoord layerTexCoord, float4 vertexCo float height1 = (SAMPLE_UVMAPPING_TEXTURE2D_LOD(_HeightMap1, SAMPLER_HEIGHTMAP_IDX, layerTexCoord.base1, lod).r - _HeightCenter1) * _HeightAmplitude1; float height2 = (SAMPLE_UVMAPPING_TEXTURE2D_LOD(_HeightMap2, SAMPLER_HEIGHTMAP_IDX, layerTexCoord.base2, lod).r - _HeightCenter2) * _HeightAmplitude2; float height3 = (SAMPLE_UVMAPPING_TEXTURE2D_LOD(_HeightMap3, SAMPLER_HEIGHTMAP_IDX, layerTexCoord.base3, lod).r - _HeightCenter3) * _HeightAmplitude3; + + // Scale by lod factor to ensure tessellated displacement influence is fully removed by the time we transition LODs +#if defined(LOD_FADE_CROSSFADE) && defined(_TESSELLATION_DISPLACEMENT) + height0 *= unity_LODFade.x; + height1 *= unity_LODFade.x; + height2 *= unity_LODFade.x; + height3 *= unity_LODFade.x; +#endif + // Height is affected by tiling property and by object scale (depends on option). // Apply scaling from tiling properties (TexWorldScale and tiling from BaseColor) ApplyDisplacementTileScale(height0, height1, height2, height3); diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl b/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl index 1e856c8d89f..959efa32a01 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl @@ -195,11 +195,8 @@ float GetAmbientOcclusionForMicroShadowing(BSDFData bsdfData) { float sourceAO; #if (SHADERPASS == SHADERPASS_DEFERRED_LIGHTING) - // Note: In deferred pass we don't have space in GBuffer to store ambientOcclusion unless LIGHT_LAYERS is enabled - // so we use specularOcclusion instead - // The define LIGHT_LAYERS only exist for the GBuffer and the Forward pass. To avoid to add another - // variant to deferred.compute, we use dynamic branching instead with _EnableLightLayers. - sourceAO = _EnableLightLayers ? bsdfData.ambientOcclusion : bsdfData.specularOcclusion; + // Note: In deferred pass we don't have space in GBuffer to store ambientOcclusion so we use specularOcclusion instead + sourceAO = bsdfData.specularOcclusion; #else sourceAO = bsdfData.ambientOcclusion; #endif diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitData.hlsl b/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitData.hlsl index c7ea5698d82..4c5d0df93c7 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitData.hlsl +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitData.hlsl @@ -186,7 +186,8 @@ void GetSurfaceAndBuiltinData(FragInputs input, float3 V, inout PositionInputs p input.texCoord1 = (_UVMappingMask.y + _UVDetailsMappingMask.y) > 0 ? input.texCoord1 : 0; #endif -#if !defined(SHADER_STAGE_RAY_TRACING) +// Don't dither if displaced tessellation (we're fading out the displacement instead to match the next LOD) +#if !defined(SHADER_STAGE_RAY_TRACING) && !defined(_TESSELLATION_DISPLACEMENT) #ifdef LOD_FADE_CROSSFADE // enable dithering LOD transition if user select CrossFade transition in LOD group LODDitheringTransition(ComputeFadeMaskSeed(V, posInput.positionSS), unity_LODFade.x); #endif diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataDisplacement.hlsl b/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataDisplacement.hlsl index d5203b67196..b2ccd968abf 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataDisplacement.hlsl +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataDisplacement.hlsl @@ -202,6 +202,12 @@ float3 ComputePerVertexDisplacement(LayerTexCoord layerTexCoord, float4 vertexCo { #ifdef _HEIGHTMAP float height = (SAMPLE_UVMAPPING_TEXTURE2D_LOD(_HeightMap, sampler_HeightMap, layerTexCoord.base, lod).r - _HeightCenter) * _HeightAmplitude; + + // Scale by lod factor to ensure tessellated displacement influence is fully removed by the time we transition LODs +#if defined(LOD_FADE_CROSSFADE) && defined(_TESSELLATION_DISPLACEMENT) + height *= unity_LODFade.x; +#endif + #else float height = 0.0; #endif diff --git a/com.unity.render-pipelines.high-definition/Runtime/Material/SharedRTManager.cs b/com.unity.render-pipelines.high-definition/Runtime/Material/SharedRTManager.cs index 4c261ced47d..32b3011883a 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Material/SharedRTManager.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Material/SharedRTManager.cs @@ -29,6 +29,7 @@ class SharedRTManager // MSAA resolve materials Material m_DepthResolveMaterial = null; Material m_ColorResolveMaterial = null; + Material m_MotionVectorResolve = null; // Flags that defines if we are using a local texture or external bool m_ReuseGBufferMemory = false; @@ -94,6 +95,7 @@ public void InitSharedBuffers(GBufferManager gbufferManager, RenderPipelineSetti // Create the required resolve materials m_DepthResolveMaterial = CoreUtils.CreateEngineMaterial(resources.shaders.depthValuesPS); m_ColorResolveMaterial = CoreUtils.CreateEngineMaterial(resources.shaders.colorResolvePS); + m_MotionVectorResolve = CoreUtils.CreateEngineMaterial(resources.shaders.resolveMotionVecPS); CoreUtils.SetKeyword(m_DepthResolveMaterial, "_HAS_MOTION_VECTORS", m_MotionVectorsSupport); } @@ -310,6 +312,7 @@ public void Cleanup() // Do not forget to release the materials CoreUtils.Destroy(m_DepthResolveMaterial); CoreUtils.Destroy(m_ColorResolveMaterial); + CoreUtils.Destroy(m_MotionVectorResolve); } } @@ -372,6 +375,20 @@ public void ResolveSharedRT(CommandBuffer cmd, HDCamera hdCamera) } } } + + public void ResolveMotionVectorTexture(CommandBuffer cmd, HDCamera hdCamera) + { + if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.MSAA) && m_MotionVectorsSupport) + { + using (new ProfilingScope(cmd, ProfilingSampler.Get(HDProfileId.ResolveMSAAMotionVector))) + { + CoreUtils.SetRenderTarget(cmd, m_MotionVectorsRT); + Shader.SetGlobalTexture(HDShaderIDs._MotionVectorTextureMS, m_MotionVectorsMSAART); + cmd.DrawProcedural(Matrix4x4.identity, m_MotionVectorResolve, SampleCountToPassIndex(m_MSAASamples), MeshTopology.Triangles, 3, 1); + } + } + } + public void ResolveMSAAColor(CommandBuffer cmd, HDCamera hdCamera, RTHandle msaaTarget, RTHandle simpleTarget) { if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.MSAA)) diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldGather.compute b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldGather.compute index 131772320c7..3a4f9e030fc 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldGather.compute +++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldGather.compute @@ -1,6 +1,6 @@ #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" -#include "DepthOfFieldCommon.hlsl" +#include "Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCommon.hlsl" #pragma only_renderers d3d11 playstation xboxone vulkan metal switch diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldTileMax.compute b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldTileMax.compute index 2b0e724fbfd..108af07061b 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldTileMax.compute +++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldTileMax.compute @@ -1,6 +1,6 @@ #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" -#include "DepthOfFieldCommon.hlsl" +#include "Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCommon.hlsl" #pragma only_renderers d3d11 playstation xboxone vulkan metal switch diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/UberPost.compute b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/UberPost.compute index 714861745ea..0a2165ec060 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/UberPost.compute +++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/UberPost.compute @@ -231,7 +231,8 @@ void MAIN(uint3 dispatchThreadId : SV_DispatchThreadID) // Alpha mask #ifdef ENABLE_ALPHA // Post processing is not applied on pixels with zero alpha - color.xyz = lerp(inputColor.xyz, color.xyz, inputColor.a); + // Saturate is necessary to avoid issues when additive blending pushes the alpha over 1. + color.xyz = lerp(inputColor.xyz, color.xyz, saturate(inputColor.a)); #endif // Done diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDProfileId.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDProfileId.cs index 71b595144f0..8959bcbc944 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDProfileId.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDProfileId.cs @@ -75,6 +75,7 @@ internal enum HDProfileId RenderWireFrame, PushToColorPicker, ResolveMSAAColor, + ResolveMSAAMotionVector, ResolveMSAADepth, ConvolveReflectionProbe, ConvolvePlanarReflectionProbe, diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs index b7678a90b1b..e0b5fe2d06b 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs @@ -315,6 +315,7 @@ internal bool showCascade // MSAA resolve materials Material m_ColorResolveMaterial = null; + Material m_MotionVectorResolve = null; // Flag that defines if ray tracing is supported by the current asset and platform bool m_RayTracingSupported = false; @@ -504,6 +505,7 @@ public HDRenderPipeline(HDRenderPipelineAsset asset, HDRenderPipelineAsset defau InitializePrepass(m_Asset); m_ColorResolveMaterial = CoreUtils.CreateEngineMaterial(asset.renderPipelineResources.shaders.colorResolvePS); + m_MotionVectorResolve = CoreUtils.CreateEngineMaterial(asset.renderPipelineResources.shaders.resolveMotionVecPS); } #if UNITY_EDITOR @@ -942,6 +944,7 @@ protected override void Dispose(bool disposing) m_RenderGraph.UnRegisterDebug(); CleanupPrepass(); CoreUtils.Destroy(m_ColorResolveMaterial); + CoreUtils.Destroy(m_MotionVectorResolve); #if UNITY_EDITOR @@ -1884,9 +1887,8 @@ ref _cullingResults // Render XR mirror view once all render requests have been completed if (i == 0 && renderRequest.hdCamera.camera.cameraType == CameraType.Game && renderRequest.hdCamera.camera.targetTexture == null) - { - HDAdditionalCameraData acd; - if (renderRequest.hdCamera.camera.TryGetComponent(out acd) && acd.xrRendering) + { + if (HDUtils.TryGetAdditionalCameraDataOrDefault(renderRequest.hdCamera.camera).xrRendering) { m_XRSystem.RenderMirrorView(cmd); } @@ -2392,6 +2394,12 @@ void Callback(CommandBuffer c, HDCamera cam) // Render all type of transparent forward (unlit, lit, complex (hair...)) to keep the sorting between transparent objects. RenderForwardTransparent(cullingResults, hdCamera, false, renderContext, cmd); + if (hdCamera.frameSettings.IsEnabled(FrameSettingsField.TransparentsWriteMotionVector)) + { + m_SharedRTManager.ResolveMotionVectorTexture(cmd, hdCamera); + cmd.SetGlobalTexture(HDShaderIDs._CameraMotionVectorsTexture, m_SharedRTManager.GetMotionVectorsBuffer()); + } + // We push the motion vector debug texture here as transparent object can overwrite the motion vector texture content. if(m_Asset.currentPlatformRenderPipelineSettings.supportMotionVectors) PushFullScreenDebugTexture(hdCamera, cmd, m_SharedRTManager.GetMotionVectorsBuffer(), FullScreenDebugMode.MotionVectors); @@ -4330,7 +4338,8 @@ void RenderDebug(HDCamera hdCamera, CommandBuffer cmd, CullingResults cullResult // Light volumes var lightingDebug = debugParams.debugDisplaySettings.data.lightingDebugSettings; - if (lightingDebug.displayLightVolumes) + bool isLightOverlapDebugEnabled = CoreUtils.IsLightOverlapDebugEnabled(hdCamera.camera); + if (lightingDebug.displayLightVolumes || isLightOverlapDebugEnabled) { s_lightVolumes.RenderLightVolumes(cmd, hdCamera, cullResults, lightingDebug, m_IntermediateAfterPostProcessBuffer); } diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequestData.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequestData.cs index c2e29e0ba08..93fdbe10c13 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequestData.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/AOV/AOVRequestData.cs @@ -70,7 +70,8 @@ FramePassCallback callback } /// Allocate texture if required. - /// A buffer of texture ready to use. + /// A buffer of textures ready to use. + /// A buffer of textures ready to use for custom pass AOVs. public void AllocateTargetTexturesIfRequired(ref List textures) { if (!isValid || textures == null) @@ -154,6 +155,7 @@ List targets /// Execute the frame pass callback. It assumes that the textures are properly initialized and filled. /// The command buffer to use. /// The textures to use. + /// The custom pass AOV textures to use. /// The properties computed for this frame. public void Execute(CommandBuffer cmd, List framePassTextures, RenderOutputProperties outputProperties) { diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MSAA/MotionVecResolve.shader b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MSAA/MotionVecResolve.shader new file mode 100644 index 00000000000..09246ce23c3 --- /dev/null +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MSAA/MotionVecResolve.shader @@ -0,0 +1,143 @@ +Shader "Hidden/HDRP/MotionVecResolve" +{ + HLSLINCLUDE + #pragma target 4.5 + #pragma only_renderers d3d11 playstation xboxone vulkan metal switch + + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" + #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" + // #pragma enable_d3d11_debug_symbols + + // Target multisampling textures + TEXTURE2D_X_MSAA(float2, _MotionVectorTextureMS); + + struct Attributes + { + uint vertexID : SV_VertexID; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + float2 texcoord : TEXCOORD0; + UNITY_VERTEX_OUTPUT_STEREO + }; + + struct FragOut + { + float2 motionVectors : SV_Target0; + }; + + Varyings Vert(Attributes input) + { + Varyings output; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + output.positionCS = GetFullScreenTriangleVertexPosition(input.vertexID); + output.texcoord = GetFullScreenTriangleTexCoord(input.vertexID) * _ScreenSize.xy; + return output; + } + + FragOut Frag1X(Varyings input) + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + FragOut fragO; + int2 pixelCoords = int2(input.texcoord); + fragO.motionVectors = LOAD_TEXTURE2D_X_MSAA(_MotionVectorTextureMS, pixelCoords, 0); + return fragO; + } + + FragOut Frag2X(Varyings input) + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + FragOut fragO; + int2 pixelCoords = int2(input.texcoord); + float2 outMotionVec = 0; + for(int sampleIdx = 0; sampleIdx < 2; ++sampleIdx) + { + outMotionVec += LOAD_TEXTURE2D_X_MSAA(_MotionVectorTextureMS, pixelCoords, sampleIdx); + } + fragO.motionVectors = outMotionVec * 0.5f; + return fragO; + } + + FragOut Frag4X(Varyings input) + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + FragOut fragO; + int2 pixelCoords = int2(input.texcoord); + float2 outMotionVec = 0; + for(int sampleIdx = 0; sampleIdx < 4; ++sampleIdx) + { + outMotionVec += LOAD_TEXTURE2D_X_MSAA(_MotionVectorTextureMS, pixelCoords, sampleIdx); + } + fragO.motionVectors = outMotionVec * 0.25f; + + return fragO; + } + + FragOut Frag8X(Varyings input) + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + FragOut fragO; + int2 pixelCoords = int2(input.texcoord); + float2 outMotionVec = 0; + for(int sampleIdx = 0; sampleIdx < 8; ++sampleIdx) + { + outMotionVec += LOAD_TEXTURE2D_X_MSAA(_MotionVectorTextureMS, pixelCoords, sampleIdx); + } + fragO.motionVectors = outMotionVec * 0.125f; + return fragO; + } + ENDHLSL + SubShader + { + Tags{ "RenderPipeline" = "HDRenderPipeline" } + + // 0: MSAA 1x + Pass + { + ZWrite On ZTest Always Blend Off Cull Off + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment Frag1X + ENDHLSL + } + + // 1: MSAA 2x + Pass + { + ZWrite On ZTest Always Blend Off Cull Off + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment Frag2X + ENDHLSL + } + + // 2: MSAA 4X + Pass + { + ZWrite On ZTest Always Blend Off Cull Off + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment Frag4X + ENDHLSL + } + + // 3: MSAA 8X + Pass + { + ZWrite On ZTest Always Blend Off Cull Off + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment Frag8X + ENDHLSL + } + } + Fallback Off +} diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MSAA/MotionVecResolve.shader.meta b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MSAA/MotionVecResolve.shader.meta new file mode 100644 index 00000000000..b65eb06c832 --- /dev/null +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/MSAA/MotionVecResolve.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ea18ca9826385e943979c46cf98968cc +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPipelineResources.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPipelineResources.cs index 0f410a2d5df..60fd31b8e5a 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPipelineResources.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPipelineResources.cs @@ -188,6 +188,8 @@ public sealed class ShaderResources public Shader depthValuesPS; [Reload("Runtime/RenderPipeline/RenderPass/MSAA/ColorResolve.shader")] public Shader colorResolvePS; + [Reload("Runtime/RenderPipeline/RenderPass/MSAA/MotionVecResolve.shader")] + public Shader resolveMotionVecPS; // Post-processing [Reload("Runtime/PostProcessing/Shaders/AlphaCopy.compute")] diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs index b0757bcbf66..3c1d84f7ea6 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Settings/FrameSettings.cs @@ -395,6 +395,7 @@ partial struct FrameSettings (uint)FrameSettingsField.SkyReflection, (uint)FrameSettingsField.DirectSpecularLighting, (uint)FrameSettingsField.RayTracing, + (uint)FrameSettingsField.MSAA }), lodBias = 1, }; diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/Texture2DAtlas.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/Texture2DAtlas.cs index cca6204af96..32567a11dc3 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/Texture2DAtlas.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Utility/Texture2DAtlas.cs @@ -141,6 +141,7 @@ class Texture2DAtlas private AtlasAllocator m_AtlasAllocator = null; private Dictionary m_AllocationCache = new Dictionary(); private Dictionary m_IsGPUTextureUpToDate = new Dictionary(); + private Dictionary m_TextureHashes = new Dictionary(); static readonly Vector4 fullScaleOffset = new Vector4(1, 1, 0, 0); @@ -278,6 +279,7 @@ public virtual bool AllocateTextureWithoutBlit(int instanceId, int width, int he scaleOffset.Scale(new Vector4(1.0f / m_Width, 1.0f / m_Height, 1.0f / m_Width, 1.0f / m_Height)); m_AllocationCache.Add(instanceId, scaleOffset); MarkGPUTextureInvalid(instanceId); // the texture data haven't been uploaded + m_TextureHashes[instanceId] = -1; return true; } else @@ -289,10 +291,29 @@ public virtual bool AllocateTextureWithoutBlit(int instanceId, int width, int he public bool IsCached(out Vector4 scaleOffset, Texture texture) => m_AllocationCache.TryGetValue(texture.GetInstanceID(), out scaleOffset); + protected int GetTextureHash(Texture texture) + { + int hash = texture.GetHashCode(); + + unchecked + { + hash = hash * 23 + texture.graphicsFormat.GetHashCode(); + hash = hash * 23 + texture.wrapMode.GetHashCode(); + hash = hash * 23 + texture.width.GetHashCode(); + hash = hash * 23 + texture.height.GetHashCode(); + hash = hash * 23 + texture.filterMode.GetHashCode(); + hash = hash * 23 + texture.anisoLevel.GetHashCode(); + hash = hash * 23 + texture.mipmapCount.GetHashCode(); + } + + return hash; + } + public virtual bool NeedsUpdate(Texture texture, bool needMips = false) { RenderTexture rt = texture as RenderTexture; int key = texture.GetInstanceID(); + int textureHash = GetTextureHash(texture); // Update the render texture if needed if (rt != null) @@ -309,6 +330,12 @@ public virtual bool NeedsUpdate(Texture texture, bool needMips = false) m_IsGPUTextureUpToDate[key] = rt.updateCount; } } + // In case the texture settings/import settings have changed, we need to update it + else if (m_TextureHashes.TryGetValue(key, out int hash) && hash != textureHash) + { + m_TextureHashes[key] = textureHash; + return true; + } // For regular textures, values == 0 means that their GPU data needs to be updated (either because // the atlas have been re-layouted or the texture have never been uploaded. We also check if the mips // are valid for the texture if we need them diff --git a/com.unity.render-pipelines.high-definition/Runtime/Sky/VisualEnvironment.cs b/com.unity.render-pipelines.high-definition/Runtime/Sky/VisualEnvironment.cs index 94618852e64..531e03b333f 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Sky/VisualEnvironment.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Sky/VisualEnvironment.cs @@ -11,7 +11,7 @@ namespace UnityEngine.Rendering.HighDefinition public sealed class VisualEnvironment : VolumeComponent { /// Type of sky that should be used for rendering. - public NoInterpIntParameter skyType = new NoInterpIntParameter(0); + public IntParameter skyType = new IntParameter(0); /// Defines the way the ambient probe should be computed. public SkyAmbientModeParameter skyAmbientMode = new SkyAmbientModeParameter(SkyAmbientMode.Static); diff --git a/com.unity.render-pipelines.high-definition/Runtime/Utilities/HDAdditionalSceneViewSettings.cs b/com.unity.render-pipelines.high-definition/Runtime/Utilities/HDAdditionalSceneViewSettings.cs index f70ffb78d71..6f629822036 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/Utilities/HDAdditionalSceneViewSettings.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/Utilities/HDAdditionalSceneViewSettings.cs @@ -11,23 +11,95 @@ static class Styles { public static readonly GUIContent AAMode = EditorGUIUtility.TrTextContent("Camera Anti-aliasing", "The anti-alising mode that will be used in the scene view camera."); public static readonly GUIContent StopNaNs = EditorGUIUtility.TrTextContent("Camera Stop NaNs", "When enabled, any NaNs in the color buffer of the scene view camera will be suppressed."); +#if UNITY_2020_2_OR_NEWER + public static readonly string HelpBox = "Temporal Anti - aliasing in the Scene View is only supported when Always Refresh is enabled."; +#else public static readonly string HelpBox = "Temporal Anti - aliasing in the Scene View is only supported when Animated Materials are enabled."; +#endif + } + + // Helper class to manage editor preferences with local caching. + // Only supports bools, floats and ints/enums, so we keep it local for now. + class CachedEditorPref + { + T m_Storage; + string m_Key; + + public T value + { + // We update the Editor prefs only when writing. Reading goes through the cached local var to ensure that reads have no overhead. + get => m_Storage; + set + { + m_Storage = value; + SetPref(value); + } + } + + // Creates a cached editor preference using the specified key and default value + public CachedEditorPref(string key, T dafaultValue) + { + m_Key = key; + m_Storage = GetOrCreatePref(dafaultValue); + } + + T GetOrCreatePref(T defaultValue) + { + if (EditorPrefs.HasKey(m_Key)) + { + if (typeof(T) == typeof(bool)) + { + return (T)(object)EditorPrefs.GetBool(m_Key); + } + else if (typeof(T) == typeof(float)) + { + return (T)(object)EditorPrefs.GetFloat(m_Key); + } + return (T)(object)EditorPrefs.GetInt(m_Key); + } + else + { + if (typeof(T) == typeof(bool)) + { + EditorPrefs.SetBool(m_Key, (bool)(object)defaultValue); + } + else if (typeof(T) == typeof(float)) + { + EditorPrefs.SetFloat(m_Key, (float)(object)defaultValue); + } + else + { + EditorPrefs.SetInt(m_Key, (int)(object)defaultValue); + } + return defaultValue; + } + } + + void SetPref(T value) + { + if (typeof(T) == typeof(bool)) + EditorPrefs.SetBool(m_Key, (bool)(object)value); + else if (typeof(T) == typeof(float)) + EditorPrefs.SetFloat(m_Key, (float)(object)value); + else + EditorPrefs.SetInt(m_Key, (int)(object)value); + } } - static AntialiasingMode s_SceneViewAntialiasing = AntialiasingMode.None; + static CachedEditorPref s_SceneViewAntialiasing = new CachedEditorPref("HDRP:SceneViewCamera:Antialiasing", AntialiasingMode.None); public static AntialiasingMode sceneViewAntialiasing { - get => s_SceneViewAntialiasing; - set => s_SceneViewAntialiasing = value; + get => s_SceneViewAntialiasing.value; + set => s_SceneViewAntialiasing.value = value; } - static bool s_SceneViewStopNaNs = false; + static CachedEditorPref s_SceneViewStopNaNs = new CachedEditorPref("HDRP:SceneViewCamera:StopNaNs", false); public static bool sceneViewStopNaNs { - get => s_SceneViewStopNaNs; - set => s_SceneViewStopNaNs = value; + get => s_SceneViewStopNaNs.value; + set => s_SceneViewStopNaNs.value = value; } static HDAdditionalSceneViewSettings() @@ -40,11 +112,11 @@ static void DoAdditionalSettings(SceneView sceneView) EditorGUILayout.Space(); EditorGUILayout.LabelField("HD Render Pipeline", EditorStyles.boldLabel); - s_SceneViewAntialiasing = (AntialiasingMode)EditorGUILayout.EnumPopup(Styles.AAMode, s_SceneViewAntialiasing); - if (s_SceneViewAntialiasing == AntialiasingMode.TemporalAntialiasing) + sceneViewAntialiasing = (AntialiasingMode)EditorGUILayout.EnumPopup(Styles.AAMode, sceneViewAntialiasing); + if (sceneViewAntialiasing == AntialiasingMode.TemporalAntialiasing) EditorGUILayout.HelpBox(Styles.HelpBox, MessageType.Info); - s_SceneViewStopNaNs = EditorGUILayout.Toggle(Styles.StopNaNs, s_SceneViewStopNaNs); + sceneViewStopNaNs = EditorGUILayout.Toggle(Styles.StopNaNs, sceneViewStopNaNs); } } #endif diff --git a/com.unity.template-hd/Assets/Settings/HDRenderPipelineAsset.asset b/com.unity.template-hd/Assets/Settings/HDRenderPipelineAsset.asset index c69fe0f3ba7..d317e4963cc 100644 --- a/com.unity.template-hd/Assets/Settings/HDRenderPipelineAsset.asset +++ b/com.unity.template-hd/Assets/Settings/HDRenderPipelineAsset.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} m_Name: HDRenderPipelineAsset m_EditorClassIdentifier: - m_Version: 11 + m_Version: 15 m_ObsoleteFrameSettings: overrides: 0 enableShadow: 0 @@ -153,21 +153,25 @@ MonoBehaviour: m_RenderPipelineRayTracingResources: {fileID: 0} m_DefaultVolumeProfile: {fileID: 11400000, guid: 582adbd84082fdb4faf7cd4beb1ccd14, type: 2} - m_DefaultLookDevProfile: {fileID: 0} + m_DefaultLookDevProfile: {fileID: 11400000, guid: 254c4fe87beb7be4fa72e1681edbed02, + type: 2} m_RenderingPathDefaultCameraFrameSettings: bitDatas: - data1: 70297877217117 - data2: 4539628424926265344 + data1: 140668768878429 + data2: 4539628425463136256 lodBias: 1 lodBiasMode: 0 lodBiasQualityLevel: 0 maximumLODLevel: 0 maximumLODLevelMode: 0 maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 materialQuality: 0 m_RenderingPathDefaultBakedOrCustomReflectionFrameSettings: bitDatas: - data1: 69373911135005 + data1: 139742655312669 data2: 4539628424389459968 lodBias: 1 lodBiasMode: 0 @@ -175,10 +179,13 @@ MonoBehaviour: maximumLODLevel: 0 maximumLODLevelMode: 0 maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 materialQuality: 0 m_RenderingPathDefaultRealtimeReflectionFrameSettings: bitDatas: - data1: 69622750778125 + data1: 139991494955789 data2: 4539628424389459968 lodBias: 1 lodBiasMode: 0 @@ -186,15 +193,21 @@ MonoBehaviour: maximumLODLevel: 0 maximumLODLevelMode: 0 maximumLODLevelQualityLevel: 0 + sssQualityMode: 0 + sssQualityLevel: 0 + sssCustomSampleBudget: 20 materialQuality: 0 m_RenderPipelineSettings: supportShadowMask: 1 supportSSR: 0 + supportSSRTransparent: 0 supportSSAO: 1 supportSubsurfaceScattering: 1 - increaseSssSampleCount: 0 + sssSampleBudget: + m_Values: 140000002800000050000000 + m_SchemaId: + m_Id: With3Levels supportVolumetrics: 1 - increaseResolutionOfVolumetrics: 0 supportLightLayers: 0 lightLayerName0: Light Layer default lightLayerName1: Light Layer 1 @@ -218,15 +231,23 @@ MonoBehaviour: supportRuntimeDebugDisplay: 1 supportDitheringCrossFade: 1 supportTerrainHole: 0 + supportProbeVolume: 0 supportRayTracing: 0 - supportedRaytracingTier: 2 + supportedRayTracingMode: 3 + probeVolumeSettings: + atlasWidth: 128 + atlasHeight: 128 + atlasDepth: 512 + atlasOctahedralDepthWidth: 2048 + atlasOctahedralDepthHeight: 2048 lightLoopSettings: - cookieSize: 128 - cookieTexArraySize: 16 + cookieAtlasSize: 512 + cookieFormat: 74 pointCookieSize: 128 cubeCookieTexArraySize: 16 - planarReflectionProbeCacheSize: 2 - planarReflectionTextureSize: 1024 + cookieAtlasLastValidMip: 0 + cookieTexArraySize: 16 + planarReflectionAtlasSize: 4096 reflectionProbeCacheSize: 64 reflectionCubemapSize: 256 reflectionCacheCompressed: 0 @@ -241,6 +262,7 @@ MonoBehaviour: maxAreaLightsOnScreen: 64 maxEnvLightsOnScreen: 64 maxDecalsOnScreen: 512 + maxPlanarReflectionOnScreen: 16 hdShadowInitParams: maxShadowRequests: 128 directionalShadowsDepthBits: 16 @@ -269,7 +291,8 @@ MonoBehaviour: maxPunctualShadowMapResolution: 2048 maxAreaShadowMapResolution: 2048 supportScreenSpaceShadows: 0 - maxScreenSpaceShadows: 2 + maxScreenSpaceShadowSlots: 4 + screenSpaceShadowBufferFormat: 48 decalSettings: drawDistance: 1000 atlasWidth: 4096 @@ -278,6 +301,7 @@ MonoBehaviour: postProcessSettings: m_LutSize: 32 lutFormat: 48 + bufferFormat: 74 dynamicResolutionSettings: enabled: 0 maxPercentage: 100 @@ -293,6 +317,7 @@ MonoBehaviour: xrSettings: singlePass: 1 occlusionMesh: 1 + cameraJitter: 0 postProcessQualitySettings: NearBlurSampleCount: 030000000500000008000000 NearBlurMaxRadius: