浏览代码

Merge master

/main
Frédéric Vauchelles 7 年前
当前提交
8676f2e5
共有 186 个文件被更改,包括 2006 次插入568 次删除
  1. 8
      .gitmodules
  2. 2
      CHANGELOG.md.meta
  3. 5
      ImageTemplates/FailStamp.png.meta
  4. 5
      ImageTemplates/LightweightPipeline/Scenes/001_SimpleCube.unity.png.meta
  5. 5
      ImageTemplates/LightweightPipeline/Scenes/002_Camera_Clip.unity.png.meta
  6. 5
      ImageTemplates/LightweightPipeline/Scenes/003_Camera_Ortho.unity.png.meta
  7. 5
      ImageTemplates/LightweightPipeline/Scenes/004_Camera_TargetTexture.unity.png.meta
  8. 5
      ImageTemplates/LightweightPipeline/Scenes/005_LitBakedEmission.unity.png.meta
  9. 5
      ImageTemplates/LightweightPipeline/Scenes/006_LitShaderLightProbes.unity.png.meta
  10. 5
      ImageTemplates/LightweightPipeline/Scenes/007_LitShaderMaps.unity.png.meta
  11. 5
      ImageTemplates/LightweightPipeline/Scenes/008_LitShaderReflection.unity.png.meta
  12. 5
      ImageTemplates/LightweightPipeline/Scenes/009_LightweightShading.unity.png.meta
  13. 5
      ImageTemplates/LightweightPipeline/Scenes/010_MultiplePointLights.unity.png.meta
  14. 5
      ImageTemplates/LightweightPipeline/Scenes/011_UnlitSprites.unity.png.meta
  15. 5
      ImageTemplates/LightweightPipeline/Scenes/012_PBS_EnvironmentBRDF_Spheres.unity.png.meta
  16. 5
      ImageTemplates/LightweightPipeline/Scenes/016_Lighting_Scene_Directional.unity.png.meta
  17. 5
      ImageTemplates/LightweightPipeline/Scenes/017_Lighting_Scene_DirectionalBaked.unity.png.meta
  18. 5
      ImageTemplates/LightweightPipeline/Scenes/018_Lighting_Scene_DirectionalBakedIndirect.unity.png.meta
  19. 5
      ImageTemplates/LightweightPipeline/Scenes/019_Lighting_Scene_PointLights.unity.png.meta
  20. 5
      ImageTemplates/LightweightPipeline/Scenes/020_Lighting_BasicDirectional.unity.png.meta
  21. 5
      ImageTemplates/LightweightPipeline/Scenes/021_Lighting_BasicPoint.unity.png.meta
  22. 5
      ImageTemplates/LightweightPipeline/Scenes/022_Lighting_BasicSpot.unity.png.meta
  23. 5
      ImageTemplates/LightweightPipeline/Scenes/023_Lighting_Mixed.unity.png.meta
  24. 5
      ImageTemplates/LightweightPipeline/Scenes/024_Shader_PBRvalidation_Specular.unity.png.meta
  25. 5
      ImageTemplates/LightweightPipeline/Scenes/025_Shader_PBRvalidation_Metallic.unity.png.meta
  26. 5
      ImageTemplates/LightweightPipeline/Scenes/026_Shader_PBRscene.unity.png.meta
  27. 5
      ImageTemplates/LightweightPipeline/Scenes/027_PostProcessing.unity.png.meta
  28. 5
      ImageTemplates/LightweightPipeline/Scenes/028_PostProcessing_Custom.unity.png.meta
  29. 5
      ImageTemplates/LightweightPipeline/Scenes/029_Particles.unity.png.meta
  30. 5
      ImageTemplates/LightweightPipeline/Scenes/031_Shader_GlossyEnvironmentSky.unity.png.meta
  31. 5
      ImageTemplates/LightweightPipeline/Scenes/032_Shader_GlossyEnvironmentColor.unity.png.meta
  32. 5
      ImageTemplates/LightweightPipeline/Scenes/033_Shader_HighlightsEnvironmentGradientSH.unity.png.meta
  33. 5
      ImageTemplates/LightweightPipeline/Scenes/034_Shader_HighlightsEnvironmentGradientBaked.unity.png.meta
  34. 5
      ImageTemplates/LightweightPipeline/Scenes/035_Shader_TerrainShaders.unity.png.meta
  35. 5
      ImageTemplates/LightweightPipeline/Scenes/036_Lighting_Scene_DirectionalBakedDirectional.unity.png.meta
  36. 5
      ImageTemplates/LightweightPipeline/Scenes/037_Particles.unity.png.meta
  37. 5
      ImageTemplates/LightweightPipeline/Scenes/038_Lighting_DirectionalCookie.unity.png.meta
  38. 5
      ImageTemplates/LightweightPipeline/Scenes/039_Lighting_SpotCookie.unity.png.meta
  39. 5
      ImageTemplates/LightweightPipeline/Scenes/040_UpgradeScene.unity.png.meta
  40. 5
      ImageTemplates/LightweightPipeline/Scenes/041_Lighting_BasicArea.unity.png.meta
  41. 5
      ImageTemplates/LightweightPipeline/Scenes/042_Lighting_Scene_VertexLighting.unity.png.meta
  42. 5
      ImageTemplates/LightweightPipeline/Scenes/043_Lighting_Mixed_ShadowMask.unity.png.meta
  43. 5
      ImageTemplates/LightweightPipeline/Scenes/044_ReflectionProbe.unity.png.meta
  44. 8
      ScriptableRenderPipeline/Core/CoreRP/ShaderLibrary/Common.hlsl
  45. 83
      ScriptableRenderPipeline/Core/CoreRP/Textures/BufferedRTHandleSystem.cs
  46. 2
      ScriptableRenderPipeline/Core/CoreRP/Textures/TextureCache.cs
  47. 73
      ScriptableRenderPipeline/HDRenderPipeline/CHANGELOG.md
  48. 6
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugDisplay.cs
  49. 8
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/HDAssetFactory.cs
  50. 31
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/HDLightEditor.cs
  51. 429
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Material/StackLit/StackLitUI.cs
  52. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/HDRenderPipelineUI.cs
  53. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/SerializedHDRenderPipelineAsset.cs
  54. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipeline.cs
  55. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipelineAsset.cs
  56. 48
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Light/HDAdditionalLightData.cs
  57. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/GlobalLightLoopSettings.cs
  58. 66
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/LightLoop.cs
  59. 16
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightUtils.cs
  60. 3
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Volumetrics/VolumetricLighting.compute
  61. 30
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Volumetrics/VolumetricLighting.cs
  62. 11
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/PreIntegratedFGD/PreIntegratedFGD.cs
  63. 28
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/StackLit/StackLit.shader
  64. 18
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/StackLit/StackLitData.hlsl
  65. 32
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/StackLit/StackLitProperties.hlsl
  66. 1
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/RenderPipelineResources/HDRenderPipelineResources.asset
  67. 4
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/RenderPipelineResources/RenderPipelineResources.cs
  68. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderConfig.cs
  69. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderConfig.cs.hlsl
  70. 2
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Sky/AtmosphericScattering/VolumetricFog.cs
  71. 2
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets.meta
  72. 2
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials.meta
  73. 2
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials/PreRefractionPassTester.mat
  74. 6
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials/PreRefractionPassTester.mat.meta
  75. 4
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/SkySettings.meta
  76. 4
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/SkySettings/HDRP_Default_Sky.asset.meta
  77. 6
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/PreIntegratedFGD/PreIntegratedFGD.shader
  78. 147
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/HDRPVariantStripper.cs
  79. 11
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/HDRPVariantStripper.cs.meta
  80. 443
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Material/StackLit/BaseMaterialUI.cs
  81. 11
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Material/StackLit/BaseMaterialUI.cs.meta
  82. 8
      Tests/UTF_Core.meta
  83. 8
      Tests/UTF_Suites_HDRP.meta
  84. 8
      Tests/UTF_Suites_HDRP/Resources.meta
  85. 22
      Tests/UTF_Suites_HDRP/Resources/HDRP_Build_Config.asset
  86. 8
      Tests/UTF_Suites_HDRP/Resources/HDRP_Build_Config.asset.meta
  87. 47
      Tests/UTF_Suites_HDRP/Resources/HDRP_Test_Settings.asset
  88. 8
      Tests/UTF_Suites_HDRP/Resources/HDRP_Test_Settings.asset.meta
  89. 324
      Tests/UTF_Suites_HDRP/Resources/HDRP_Deferred.asset
  90. 8
      Tests/UTF_Suites_HDRP/Resources/HDRP_Deferred.asset.meta
  91. 320
      Tests/UTF_Suites_HDRP/Resources/HDRP_Forward.asset
  92. 8
      Tests/UTF_Suites_HDRP/Resources/HDRP_Forward.asset.meta
  93. 10
      ImageTemplates/HDRenderPipeline.meta
  94. 8
      ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/PreIntegratedFGD/Resources.meta
  95. 10
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials/Smoothness Variation.meta
  96. 10
      Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials/Unlit_Black.mat.meta

8
.gitmodules


[submodule "ShaderGraph"]
path = ShaderGraph
url = https://github.com/Unity-Technologies/ShaderGraph
[submodule "Tests/UTF_Core"]
path = Tests/UTF_Core
url=https://github.com/Unity-Technologies/UTF_Core.git
[submodule "Tests/UTF_Tests_HDRP"]
path = Tests/UTF_Tests_HDRP
url=https://github.com/Unity-Technologies/UTF_Tests_HDRP.git

2
CHANGELOG.md.meta


fileFormatVersion: 2
guid: d29df6d4fc5e8db47acccb638ce31e60
guid: ce3703c6cb43f154bac29c5ad0a09ba6
TextScriptImporter:
externalObjects: {}
userData:

5
ImageTemplates/FailStamp.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/001_SimpleCube.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/002_Camera_Clip.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/003_Camera_Ortho.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/004_Camera_TargetTexture.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/005_LitBakedEmission.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/006_LitShaderLightProbes.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/007_LitShaderMaps.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/008_LitShaderReflection.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/009_LightweightShading.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/010_MultiplePointLights.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/011_UnlitSprites.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/012_PBS_EnvironmentBRDF_Spheres.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/016_Lighting_Scene_Directional.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/017_Lighting_Scene_DirectionalBaked.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/018_Lighting_Scene_DirectionalBakedIndirect.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/019_Lighting_Scene_PointLights.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/020_Lighting_BasicDirectional.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/021_Lighting_BasicPoint.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/022_Lighting_BasicSpot.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/023_Lighting_Mixed.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/024_Shader_PBRvalidation_Specular.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/025_Shader_PBRvalidation_Metallic.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/026_Shader_PBRscene.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/027_PostProcessing.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/028_PostProcessing_Custom.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/029_Particles.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/031_Shader_GlossyEnvironmentSky.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/032_Shader_GlossyEnvironmentColor.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/033_Shader_HighlightsEnvironmentGradientSH.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/034_Shader_HighlightsEnvironmentGradientBaked.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/035_Shader_TerrainShaders.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/036_Lighting_Scene_DirectionalBakedDirectional.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/037_Particles.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/038_Lighting_DirectionalCookie.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/039_Lighting_SpotCookie.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/040_UpgradeScene.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/041_Lighting_BasicArea.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/042_Lighting_Scene_VertexLighting.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/043_Lighting_Mixed_ShadowMask.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

5
ImageTemplates/LightweightPipeline/Scenes/044_ReflectionProbe.unity.png.meta


serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1

spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 100
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1

8
ScriptableRenderPipeline/Core/CoreRP/ShaderLibrary/Common.hlsl


// Metal doesn't support high enough OpenGL version
#if defined(MIP_COUNT_SUPPORTED)
uint width, height, depth, mipCount;
width = height = depth = mipCount = 0;
tex.GetDimensions(width, height, depth, mipCount);
return mipCount;
uint mipLevel, width, height, mipCount;
mipLevel = width = height = mipCount = 0;
tex.GetDimensions(mipLevel, width, height, mipCount);
return mipCount;
#else
return 0;
#endif

83
ScriptableRenderPipeline/Core/CoreRP/Textures/BufferedRTHandleSystem.cs


namespace UnityEngine.Experimental.Rendering
{
/// <summary>
/// Implement a multiple buffering for RenderTextures.
/// </summary>
/// <exemple>
/// <code>
/// enum BufferType
/// {
/// Color,
/// Depth
/// }
///
/// void Render()
/// {
/// var camera = GetCamera();
/// var buffers = GetFrameHistoryBuffersFor(camera);
///
/// // Set reference size in case the rendering size changed this frame
/// buffers.SetReferenceSize(
/// GetCameraWidth(camera), GetCameraHeight(camera),
/// GetCameraUseMSAA(camera), GetCameraMSAASamples(camera)
/// );
/// buffers.Swap();
///
/// var currentColor = buffer.GetFrameRT((int)BufferType.Color, 0);
/// if (currentColor == null) // Buffer was not allocated
/// {
/// buffer.AllocBuffer(
/// (int)BufferType.Color, // Color buffer id
/// ColorBufferAllocator, // Custom functor to implement allocation
/// 2 // Use 2 RT for this buffer for double buffering
/// );
/// currentColor = buffer.GetFrameRT((int)BufferType.Color, 0);
/// }
///
/// var previousColor = buffers.GetFrameRT((int)BufferType.Color, 1);
///
/// // Use previousColor and write into currentColor
/// }
/// </code>
/// </exemple>
public class BufferedRTHandleSystem : IDisposable
{
Dictionary<int, RTHandleSystem.RTHandle[]> m_RTHandles = new Dictionary<int, RTHandleSystem.RTHandle[]>();

public RTHandleSystem.RTHandle GetFrameRT(int id, int index)
/// <summary>
/// Return the frame RT or null.
/// </summary>
/// <param name="bufferId">Defines the buffer to use.</param>
/// <param name="frameIndex"></param>
/// <returns>The frame RT or null when the <paramref name="bufferId"/> was not previously allocated (<see cref="BufferedRTHandleSystem.AllocBuffer(int, Func{RTHandleSystem, int, RTHandleSystem.RTHandle}, int)" />).</returns>
public RTHandleSystem.RTHandle GetFrameRT(int bufferId, int frameIndex)
if (!m_RTHandles.ContainsKey(id))
if (!m_RTHandles.ContainsKey(bufferId))
Assert.IsTrue(index >= 0 && index < m_RTHandles[id].Length);
Assert.IsTrue(frameIndex >= 0 && frameIndex < m_RTHandles[bufferId].Length);
return m_RTHandles[id][index];
return m_RTHandles[bufferId][frameIndex];
/// <summary>
/// Allocate RT handles for a buffer.
/// </summary>
/// <param name="bufferId">The buffer to allocate.</param>
/// <param name="allocator">The functor to use for allocation.</param>
/// <param name="bufferCount">The number of RT handles for this buffer.</param>
int id,
int bufferId,
int bufferSize
int bufferCount
var buffer = new RTHandleSystem.RTHandle[bufferSize];
m_RTHandles.Add(id, buffer);
var buffer = new RTHandleSystem.RTHandle[bufferCount];
m_RTHandles.Add(bufferId, buffer);
// First is autoresized
buffer[0] = allocator(m_RTHandleSystem, 0);

}
}
/// <summary>
/// Set the reference size for this RT Handle System (<see cref="RTHandleSystem.SetReferenceSize(int, int, bool, MSAASamples)"/>)
/// </summary>
/// <param name="width">The width of the RTs of this buffer.</param>
/// <param name="height">The height of the RTs of this buffer.</param>
/// <param name="msaa">Whether this buffer use MSAA.</param>
/// <param name="msaaSamples">Number of MSAA samples for this buffer.</param>
/// <summary>
/// Swap the buffers.
///
/// Take care that if the new current frame needs resizing, it will occurs during the this call.
/// </summary>
public void Swap()
{
foreach (var item in m_RTHandles)

Dispose(true);
}
/// <summary>
/// Deallocate and clear all buffers.
/// </summary>
public void ReleaseAll()
{
foreach (var item in m_RTHandles)

2
ScriptableRenderPipeline/Core/CoreRP/Textures/TextureCache.cs


{
case BuildTarget.iOS:
case BuildTarget.Android:
#if !UNITY_2018_2_OR_NEWER
#endif
case BuildTarget.WSAPlayer:
// Note: We return true on purpose even if Windows Store Apps are running on Desktop.
return true;

73
ScriptableRenderPipeline/HDRenderPipeline/CHANGELOG.md


All notable changes to this package will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
## [2018.2 undecided]
## [Unreleased]
### Added
### Improvements
- Add stripper of shader variant when building a player. Save shader compile time.
- Disable per-object culling that was executed in C++ in HD whereas it was not used (Optimization)
- Enable texture streaming debugging (was not working before 2018.2)
- Added Screen Space Reflection with Proxy Projection Model
## [2018.1 undecided]
### Changed
### Improvements
- Configure the volumetric lighting code path to be on by default
### Changed, Removals and deprecations
- Remove Resource folder of PreIntegratedFGD and add the resource to RenderPipeline Asset
- Default number of planar reflection change from 4 to 2
## [0.1.6] - 2018-xx-yy
### Bug fixes
- Fix ConvertPhysicalLightIntensityToLightIntensity() function used when creating light from script to match HDLightEditor behavior
- Fix numerical issues with the default value of mean free path of volumetric fog
- Fix the bug preventing decals from coexisting with density volumes
### New features and functionality
- Added Screen Space Reflection with Proxy Projection Model
## [2018.1.0f2]
### Bug fixes
- Fix fog flags in scene view is now taken into account
- Fix sky in preview windows that were disappearing after a load of a new level
- Fix numerical issues in IntersectRayAABB().
- Fix alpha blending of volumetric lighting with transparent objects.
- Fix the near plane of the V-Buffer causing out-of-bounds look-ups in the clustered data structure.
- Depth and color pyramid are properly computed and sampled when the camera renders inside a viewport of a RTHandle.
### Improvements
- Screen Space Refraction projection model (Proxy raycasting, HiZ raymarching)
- Screen Space Refraction settings as volume component
- Added buffered frame history per camera
- Port Global Density Volumes to the Interpolation Volume System.
- Optimize ImportanceSampleLambert() to not require the tangent frame.
- Generalize SampleVBuffer() to handle different sampling and reconstruction methods.
- Improve the quality of volumetric lighting reprojection.
- Optimize Morton Order code in the Subsurface Scattering pass.
- Planar Reflection Probe support roughness (gaussian convolution of captured probe)
- Use an atlas instead of a texture array for cluster transparent decals
- Add a debug view to visualize the decal atlas
- Only store decal textures to atlas if decal is visible, debounce out of memory decal atlas warning.
- Add manipulator gizmo on decal to improve authoring workflow
- Add a minimal StackLit material (work in progress, this version can be used as template to add new material)
### Changed, Removals and deprecations
- EnableShadowMask in FrameSettings (But shadowMaskSupport still disable by default)

- Moved RTHandle static methods to RTHandles
- Renamed RTHandle to RTHandleSystem.RTHandle
- Move code for PreIntegratedFDG (Lit.shader) into its dedicated folder to be share with other material
- Move code for LTCArea (Lit.shader) into its dedicated folder to be share with other material
### Improvements
- Port Global Density Volumes to the Interpolation Volume System.
- Optimize ImportanceSampleLambert() to not require the tangent frame.
- Generalize SampleVBuffer() to handle different sampling and reconstruction methods.
- Improve the quality of volumetric lighting reprojection.
- Optimize Morton Order code in the Subsurface Scattering pass.
- Planar Reflection Probe support roughness (gaussian convolution of captured probe)
- Only store decal textures to atlas if decal is visible, debounce out of memory decal atlas warning.
### Bug fixes
- Fix fog flags in scene view is now taken into account
- Fix sky in preview windows that were disappearing after a load of a new level
- Fix numerical issues in IntersectRayAABB().
- Fix alpha blending of volumetric lighting with transparent objects.
- Fix the near plane of the V-Buffer causing out-of-bounds look-ups in the clustered data structure.
- Depth and color pyramid are properly computed and sampled when the camera renders inside a viewport of a RTHandle.
### Features
- Screen Space Refraction projection model (Proxy raycasting, HiZ raymarching)
- Screen Space Refraction settings as volume component
- Added buffered frame history per camera
## [2018.1.0b13]
...

6
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Debug/DebugDisplay.cs


public void UpdateMaterials()
{
//if (mipMapDebugSettings.debugMipMapMode != 0)
// Texture.SetStreamingTextureMaterialDebugProperties();
#if UNITY_2018_2_OR_NEWER
if (mipMapDebugSettings.debugMipMapMode != 0)
Texture.SetStreamingTextureMaterialDebugProperties();
#endif
}
public bool DebugNeedsExposure()

8
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/HDAssetFactory.cs


newAsset.opaqueAtmosphericScattering = Load<Shader>(HDRenderPipelinePath + "Sky/OpaqueAtmosphericScattering.shader");
newAsset.hdriSky = Load<Shader>(HDRenderPipelinePath + "Sky/HDRISky/HDRISky.shader");
newAsset.proceduralSky = Load<Shader>(HDRenderPipelinePath + "Sky/ProceduralSky/ProceduralSky.shader");
// Skybox/Cubemap is a builtin shader, must use Sahder.Find to access it. It is fine because we are in the editor
newAsset.skyboxCubemap = Shader.Find("Skybox/Cubemap");
// Material
newAsset.preIntegratedFGD = Load<Shader>(HDRenderPipelinePath + "Material/PreIntegratedFGD.shader");
// Skybox/Cubemap is a builtin shader, must use Sahder.Find to access it. It is fine because we are in the editor
newAsset.skyboxCubemap = Shader.Find("Skybox/Cubemap");
// Shadow
newAsset.shadowClearShader = Load<Shader>(CorePath + "Shadow/ShadowClear.shader");

31
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Lighting/HDLightEditor.cs


public SerializedProperty directionalIntensity;
public SerializedProperty punctualIntensity;
public SerializedProperty areaIntensity;
public SerializedProperty enableSpotReflector;
public SerializedProperty spotInnerPercent;
public SerializedProperty lightDimmer;
public SerializedProperty fadeDistance;

public SerializedProperty spotLightShape;
public SerializedProperty enableSpotReflector;
public SerializedProperty shapeWidth;
public SerializedProperty shapeHeight;
public SerializedProperty aspectRatio;

directionalIntensity = o.Find(x => x.directionalIntensity),
punctualIntensity = o.Find(x => x.punctualIntensity),
areaIntensity = o.Find(x => x.areaIntensity),
enableSpotReflector = o.Find(x => x.enableSpotReflector),
spotInnerPercent = o.Find(x => x.m_InnerSpotPercent),
lightDimmer = o.Find(x => x.lightDimmer),
fadeDistance = o.Find(x => x.fadeDistance),

spotLightShape = o.Find(x => x.spotLightShape),
enableSpotReflector = o.Find(x => x.enableSpotReflector),
spotLightShape = o.Find(x => x.spotLightShape),
shapeWidth = o.Find(x => x.shapeWidth),
shapeHeight = o.Find(x => x.shapeHeight),
aspectRatio = o.Find(x => x.aspectRatio),

if (spotLightShape == SpotLightShape.Cone)
{
settings.DrawSpotAngle();
EditorGUILayout.PropertyField(m_AdditionalLightData.enableSpotReflector, s_Styles.enableSpotReflector);
EditorGUILayout.Slider(m_AdditionalLightData.spotInnerPercent, 0f, 100f, s_Styles.spotInnerPercent);
}
// TODO : replace with angle and ratio

EditorGUILayout.PropertyField(m_AdditionalLightData.enableSpotReflector, s_Styles.enableSpotReflector);
EditorGUILayout.Slider(m_AdditionalLightData.aspectRatio, 0.05f, 20.0f, s_Styles.aspectRatioPyramid);
}
else if (spotLightShape == SpotLightShape.Box)

}
else if (spotLightShape == SpotLightShape.Pyramid)
{
var aspectRatio = m_AdditionalLightData.aspectRatio.floatValue;
// Since the smallest angles is = to the fov, and we don't care of the angle order, simply make sure the aspect ratio is > 1
if ( aspectRatio < 1f ) aspectRatio = 1f/aspectRatio;
var angleA = settings.spotAngle.floatValue * Mathf.Deg2Rad;
var halfAngle = angleA * 0.5f; // half of the smallest angle
var length = Mathf.Tan(halfAngle); // half length of the smallest side of the rectangle
length *= aspectRatio; // half length of the bigest side of the rectangle
halfAngle = Mathf.Atan(length); // half of the bigest angle
var angleB = halfAngle * 2f;
float angleA, angleB;
LightUtils.CalculateAnglesForPyramid( m_AdditionalLightData.aspectRatio.floatValue, settings.spotAngle.floatValue,
out angleA, out angleB);
settings.intensity.floatValue = LightUtils.ConvertFrustrumLightIntensity(m_AdditionalLightData.punctualIntensity.floatValue, angleA, angleB );
}

case LightShape.Point:
case LightShape.Spot:
EditorGUILayout.PropertyField(m_AdditionalLightData.punctualIntensity, s_Styles.punctualIntensity);
// Only display reflector option if it make sense
if (m_LightShape == LightShape.Spot)
{
var spotLightShape = (SpotLightShape)m_AdditionalLightData.spotLightShape.enumValueIndex;
if (spotLightShape == SpotLightShape.Cone || spotLightShape == SpotLightShape.Pyramid)
EditorGUILayout.PropertyField(m_AdditionalLightData.enableSpotReflector, s_Styles.enableSpotReflector);
}
break;
case LightShape.Rectangle:

429
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Material/StackLit/StackLitUI.cs


using System;
class StackLitGUI : BaseUnlitGUI
class StackLitGUI : BaseMaterialGUI
protected static class Styles
{
public static string InputsText = "Inputs";
public static GUIContent doubleSidedNormalModeText = new GUIContent("Normal mode", "This will modify the normal base on the selected mode. Mirror: Mirror the normal with vertex normal plane, Flip: Flip the normal");
#region Strings
public static GUIContent baseColorText = new GUIContent("Base Color + Opacity", "Albedo (RGB) and Opacity (A)");
protected const string k_DoubleSidedNormalMode = "_DoubleSidedNormalMode";
protected const string k_UVBase = "_UVBase";
// Scalar scale factors for: metallic and the two lobe perceptual smoothness.
public static GUIContent metallicText = new GUIContent("Metallic", "Metallic scale factor");
public static GUIContent smoothnessAText = new GUIContent("Primary Lobe Smoothness", "Primary lobe smoothness scale factor");
public static GUIContent smoothnessBText = new GUIContent("Secondary Lobe Smoothness", "Secondary lobe smoothness scale factor");
public static GUIContent lobeMixText = new GUIContent("Lobe Mixing", "Lobe mixing factor");
// Base
protected const string k_BaseColor = "_BaseColor";
protected const string k_BaseColorMap = "_BaseColorMap";
public static GUIContent smoothnessARemappingText = new GUIContent("Primary Lobe Smoothness Remapping", "Primary lobe smoothness remapping");
public static GUIContent smoothnessBRemappingText = new GUIContent("Secondary Lobe Smoothness Remapping", "Secondary lobe smoothness remapping");
public static GUIContent maskMapASText = new GUIContent("Primary mask map - M(R), AO(G), D(B), S1(A)", "Primary mask map");
public static GUIContent maskMapBSText = new GUIContent("Secondary mask Map - (R), (G), (B), S2(A)", "Secondary mask map");
protected const string k_Metallic = "_Metallic";
protected const string k_MetallicMap = "_MetallicMap";
protected const string k_MetallicRemapMin = "_MetallicRemap";
public static GUIContent normalMapText = new GUIContent("Normal Map", "Normal Map (BC7/BC5/DXT5(nm))");
protected const string k_Smoothness1 = "_SmoothnessA";
protected const string k_Smoothness1Map = "_SmoothnessAMap";
protected const string k_Smoothness1RemapMin = "_SmoothnessARemap";
public static GUIContent UVBaseMappingText = new GUIContent("UV mapping usage", "");
protected const string k_NormalMap = "_NormalMap";
protected const string k_NormalScale = "_NormalScale";
// Emissive
protected const string k_EmissiveColor = "_EmissiveColor";
protected const string k_EmissiveColorMap = "_EmissiveColorMap";
protected const string k_EmissiveIntensity = "_EmissiveIntensity";
protected const string k_AlbedoAffectEmissive = "_AlbedoAffectEmissive";
// Emissive
public static string emissiveLabelText = "Emissive Inputs";
public static GUIContent emissiveText = new GUIContent("Emissive Color", "Emissive");
public static GUIContent emissiveIntensityText = new GUIContent("Emissive Intensity", "Emissive");
public static GUIContent albedoAffectEmissiveText = new GUIContent("Albedo Affect Emissive", "Specifies whether or not the emissive color is multiplied by the albedo.");
// SSS
protected const string k_DiffusionProfileName = "_DiffusionProfile";
protected const string k_SubsurfaceMaskName = "_SubsurfaceMask";
protected const string k_SubsurfaceMaskMap = "_SubsurfaceMaskMap";
}
protected const string k_ThicknessName = "_Thickness";
protected const string k_ThicknessMapName = "_ThicknessMap";
protected const string k_ThicknessRemapName = "_ThicknessRemap";
public enum DoubleSidedNormalMode
{
Flip,
Mirror,
None
}
// Second Lobe.
protected const string k_Smoothness2 = "_SmoothnessB";
protected const string k_Smoothness2Map = "_SmoothnessBMap";
protected const string k_SmoothnessRemap2Min = "_SmoothnessBRemap";
public enum UVBaseMapping
protected const string k_LobeMix = "_LobeMix";
//// transparency params
//protected MaterialProperty transmissionEnable = null;
//protected const string kTransmissionEnable = "_TransmissionEnable";
//protected MaterialProperty ior = null;
//protected const string kIor = "_Ior";
//protected MaterialProperty transmittanceColor = null;
//protected const string kTransmittanceColor = "_TransmittanceColor";
//protected MaterialProperty transmittanceColorMap = null;
//protected const string kTransmittanceColorMap = "_TransmittanceColorMap";
//protected MaterialProperty atDistance = null;
//protected const string kATDistance = "_ATDistance";
//protected MaterialProperty thicknessMultiplier = null;
//protected const string kThicknessMultiplier = "_ThicknessMultiplier";
//protected MaterialProperty refractionModel = null;
//protected const string kRefractionModel = "_RefractionModel";
//protected MaterialProperty refractionSSRayModel = null;
//protected const string kRefractionSSRayModel = "_RefractionSSRayModel";
#endregion
// Add the properties into an array.
private readonly GroupProperty _baseMaterialProperties = null;
private readonly GroupProperty _materialProperties = null;
public StackLitGUI()
UV0,
UV1,
UV2,
UV3,
Planar,
Triplanar
}
_baseMaterialProperties = new GroupProperty(this, new BaseProperty[]
{
// JFFTODO: Find the proper condition, and proper way to display this.
new Property(this, k_DoubleSidedNormalMode, "Normal mode", "This will modify the normal base on the selected mode. Mirror: Mirror the normal with vertex normal plane, Flip: Flip the normal.", false),
});
protected MaterialProperty doubleSidedNormalMode = null;
protected const string kDoubleSidedNormalMode = "_DoubleSidedNormalMode";
_materialProperties = new GroupProperty(this, new BaseProperty[]
{
new GroupProperty(this, "Standard", new BaseProperty[]
{
new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Base Color + Opacity", "Albedo (RGB) and Opacity (A)", false),
new TextureProperty(this, k_MetallicMap, k_Metallic, "Metallic", "Metallic", false),
new TextureProperty(this, k_Smoothness1Map, k_Smoothness1, "Smoothness", "Smoothness", false),
// TODO: Special case for normal maps.
new TextureProperty(this, k_NormalMap, k_NormalScale, "Normal TODO", "Normal Map", false, true),
// Example UV mapping mask, TODO: could have for multiple maps, and channel mask for scalars
protected MaterialProperty UVBase = null;
protected const string kUVBase = "_UVBase";
protected MaterialProperty UVMappingMask = null;
protected const string kUVMappingMask = "_UVMappingMask"; // hidden, see enum material property drawer in .shader
//new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Dielectric IoR", "Index of Refraction for Dielectric", false),
}),
new GroupProperty(this, "Emissive", new BaseProperty[]
{
new TextureProperty(this, k_EmissiveColorMap, k_EmissiveColor, "Emissive Color", "Emissive", false),
new Property(this, k_EmissiveIntensity, "Emissive Intensity", "Emissive", false),
new Property(this, k_AlbedoAffectEmissive, "Albedo Affect Emissive", "Specifies whether or not the emissive color is multiplied by the albedo.", false),
}),
protected MaterialProperty baseColor = null;
protected const string kBaseColor = "_BaseColor";
protected MaterialProperty baseColorMap = null;
protected const string kBaseColorMap = "_BaseColorMap";
//new GroupProperty(this, "Coat", new BaseProperty[]
//{
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "SmoothnessCoat", "smoothnessCoat", false),
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Index Of Refraction", "iorCoat", false),
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Normal", "normal Coat", false),
//}),
protected const string kMetallic = "_Metallic";
protected MaterialProperty metallic = null;
new GroupProperty(this, "Sub-Surface Scattering", new BaseProperty[]
{
new DiffusionProfileProperty(this, k_DiffusionProfileName, "Diffusion Profile", "A profile determines the shape of the SSS/transmission filter.", false),
new TextureProperty(this, k_SubsurfaceMaskName, "Subsurface mask map (R)", "Determines the strength of the subsurface scattering effect.", false),
}/*, _ => _materialId == MaterialId.SubSurfaceScattering*/),
// Primary lobe smoothness
protected MaterialProperty smoothnessA = null;
protected const string kSmoothnessA = "_SmoothnessA";
protected MaterialProperty smoothnessARemapMin = null;
protected const string kSmoothnessARemapMin = "_SmoothnessARemapMin";
protected MaterialProperty smoothnessARemapMax = null;
protected const string kSmoothnessARemapMax = "_SmoothnessARemapMax";
protected const string klobeMix = "_LobeMix";
protected MaterialProperty lobeMix = null;
new GroupProperty(this, "Second Specular Lobe", new BaseProperty[]
{
new TextureProperty(this, k_Smoothness2Map, k_Smoothness2, "Smoothness2", "Smoothness2", false),
new Property(this, k_LobeMix, "Lobe Mix", "Lobe Mix", false),
}),
// Secondary lobe smoothness
protected MaterialProperty smoothnessB = null;
protected const string kSmoothnessB = "_SmoothnessB";
protected MaterialProperty smoothnessBRemapMin = null;
protected const string kSmoothnessBRemapMin = "_SmoothnessBRemapMin";
protected MaterialProperty smoothnessBRemapMax = null;
protected const string kSmoothnessBRemapMax = "_SmoothnessBRemapMax";
//new GroupProperty(this, "Anisotropy", new BaseProperty[]
//{
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Anisotropy Strength", "anisotropy strength", false),
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Rotation", "rotation", false),
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Tangent", "tangent", false),
//}),
new GroupProperty(this, "Transmission", new BaseProperty[]
{
new DiffusionProfileProperty(this, k_DiffusionProfileName, "Diffusion Profile", "A profile determines the shape of the SSS/transmission filter.", false),
new TextureProperty(this, k_ThicknessName, "Thickness", "If subsurface scattering is enabled, low values allow some light to be transmitted through the object.", false),
}),
// Two mask maps for the two smoothnesses
protected MaterialProperty maskMapA = null;
protected const string kMaskMapA = "_MaskMapA";
protected MaterialProperty maskMapB = null;
protected const string kMaskMapB = "_MaskMapB";
//new GroupProperty(this, "Iridescence", new BaseProperty[]
//{
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Index of Refraction", "Index of Refraction for Iridescence", false),
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Thickness", "Thickness", false),
//}),
protected MaterialProperty normalScale = null;
protected const string kNormalScale = "_NormalScale";
protected MaterialProperty normalMap = null;
protected const string kNormalMap = "_NormalMap";
//new GroupProperty(this, "Glint", new BaseProperty[]
//{
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Density", "Density:", false),
// new TextureProperty(this, k_BaseColorMap, k_BaseColor, "Tint", "Tint", false),
//}),
});
}
protected MaterialProperty emissiveColor = null;
protected const string kEmissiveColor = "_EmissiveColor";
protected MaterialProperty emissiveColorMap = null;
protected const string kEmissiveColorMap = "_EmissiveColorMap";
protected MaterialProperty emissiveIntensity = null;
protected const string kEmissiveIntensity = "_EmissiveIntensity";
protected MaterialProperty albedoAffectEmissive = null;
protected const string kAlbedoAffectEmissive = "_AlbedoAffectEmissive";
protected override bool ShouldEmissionBeEnabled(Material material)
{
return material.GetFloat(k_EmissiveIntensity) > 0.0f;
}
doubleSidedNormalMode = FindProperty(kDoubleSidedNormalMode, props);
_baseMaterialProperties.OnFindProperty(props);
override protected void FindMaterialProperties(MaterialProperty[] props)
protected override void FindMaterialProperties(MaterialProperty[] props)
UVBase = FindProperty(kUVBase, props);
UVMappingMask = FindProperty(kUVMappingMask, props);
baseColor = FindProperty(kBaseColor, props);
baseColorMap = FindProperty(kBaseColorMap, props);
metallic = FindProperty(kMetallic, props);
smoothnessA = FindProperty(kSmoothnessA, props);
smoothnessARemapMin = FindProperty(kSmoothnessARemapMin, props);
smoothnessARemapMax = FindProperty(kSmoothnessARemapMax, props);
smoothnessB = FindProperty(kSmoothnessB, props);
smoothnessBRemapMin = FindProperty(kSmoothnessBRemapMin, props);
smoothnessBRemapMax = FindProperty(kSmoothnessBRemapMax, props);
lobeMix = FindProperty(klobeMix, props);
maskMapA = FindProperty(kMaskMapA, props);
maskMapB = FindProperty(kMaskMapB, props);
normalMap = FindProperty(kNormalMap, props);
normalScale = FindProperty(kNormalScale, props);
emissiveColor = FindProperty(kEmissiveColor, props);
emissiveColorMap = FindProperty(kEmissiveColorMap, props);
emissiveIntensity = FindProperty(kEmissiveIntensity, props);
albedoAffectEmissive = FindProperty(kAlbedoAffectEmissive, props);
}
//base.FindMaterialProperties(props);
_materialProperties.OnFindProperty(props);
}
EditorGUI.indentLevel++;
// This follow double sided option, see BaseUnlitUI.BaseMaterialPropertiesGUI()
// Don't put anything between base.BaseMaterialPropertiesGUI(); above and this:
if (doubleSidedEnable.floatValue > 0.0f)
{
EditorGUI.indentLevel++;
m_MaterialEditor.ShaderProperty(doubleSidedNormalMode, Styles.doubleSidedNormalModeText);
EditorGUI.indentLevel--;
}
//TODO: m_MaterialEditor.ShaderProperty(enableMotionVectorForVertexAnimation, StylesBaseUnlit.enableMotionVectorForVertexAnimationText);
//refs to this ?
EditorGUI.indentLevel--;
_baseMaterialProperties.OnGUI();
EditorGUILayout.LabelField(Styles.InputsText, EditorStyles.boldLabel);
EditorGUI.indentLevel++;
m_MaterialEditor.TexturePropertySingleLine(Styles.baseColorText, baseColorMap, baseColor);
m_MaterialEditor.ShaderProperty(metallic, Styles.metallicText);
// maskMaps and smoothness rescaling controls:
if(maskMapA.textureValue == null)
{
m_MaterialEditor.ShaderProperty(smoothnessA, Styles.smoothnessAText);
}
else
{
float remapMin = smoothnessARemapMin.floatValue;
float remapMax = smoothnessARemapMax.floatValue;
EditorGUI.BeginChangeCheck();
EditorGUILayout.MinMaxSlider(Styles.smoothnessARemappingText, ref remapMin, ref remapMax, 0.0f, 1.0f);
if (EditorGUI.EndChangeCheck())
{
smoothnessARemapMin.floatValue = remapMin;
smoothnessARemapMax.floatValue = remapMax;
}
}
if(maskMapB.textureValue == null)
{
m_MaterialEditor.ShaderProperty(smoothnessB, Styles.smoothnessBText);
}
else
{
float remapMin = smoothnessBRemapMin.floatValue;
float remapMax = smoothnessBRemapMax.floatValue;
EditorGUI.BeginChangeCheck();
EditorGUILayout.MinMaxSlider(Styles.smoothnessBRemappingText, ref remapMin, ref remapMax, 0.0f, 1.0f);
if (EditorGUI.EndChangeCheck())
{
smoothnessBRemapMin.floatValue = remapMin;
smoothnessBRemapMax.floatValue = remapMax;
}
}
m_MaterialEditor.ShaderProperty(lobeMix, Styles.lobeMixText);
m_MaterialEditor.TexturePropertySingleLine(Styles.maskMapASText, maskMapA);
m_MaterialEditor.TexturePropertySingleLine(Styles.maskMapBSText, maskMapB);
// Normal map:
m_MaterialEditor.TexturePropertySingleLine(Styles.normalMapText, normalMap, normalScale);
// UV Mapping:
EditorGUILayout.Space();
EditorGUI.BeginChangeCheck(); // UV mapping selection
m_MaterialEditor.ShaderProperty(UVBase, Styles.UVBaseMappingText);
UVBaseMapping uvBaseMapping = (UVBaseMapping)UVBase.floatValue;
float X, Y, Z, W;
X = (uvBaseMapping == UVBaseMapping.UV0) ? 1.0f : 0.0f;
Y = (uvBaseMapping == UVBaseMapping.UV1) ? 1.0f : 0.0f;
Z = (uvBaseMapping == UVBaseMapping.UV2) ? 1.0f : 0.0f;
W = (uvBaseMapping == UVBaseMapping.UV3) ? 1.0f : 0.0f;
UVMappingMask.colorValue = new Color(X, Y, Z, W);
//TODO:
//if ((uvBaseMapping == UVBaseMapping.Planar) || (uvBaseMapping == UVBaseMapping.Triplanar))
//{
// m_MaterialEditor.ShaderProperty(TexWorldScale, Styles.texWorldScaleText);
//}
m_MaterialEditor.TextureScaleOffsetProperty(baseColorMap);
if (EditorGUI.EndChangeCheck()) // ...UV mapping selection
{
}
EditorGUI.indentLevel--; // inputs
EditorGUILayout.Space();
// Surface type:
var surfaceTypeValue = (SurfaceType)surfaceType.floatValue;
if (surfaceTypeValue == SurfaceType.Transparent)
{
EditorGUILayout.Space();
EditorGUILayout.LabelField(StylesBaseUnlit.TransparencyInputsText, EditorStyles.boldLabel);
++EditorGUI.indentLevel;
DoDistortionInputsGUI();
--EditorGUI.indentLevel;
}
// TODO: see DoEmissiveGUI( ) in LitUI.cs: custom uvmapping for emissive
EditorGUILayout.Space();
EditorGUILayout.LabelField(Styles.emissiveLabelText, EditorStyles.boldLabel);
EditorGUI.indentLevel++;
m_MaterialEditor.TexturePropertySingleLine(Styles.emissiveText, emissiveColorMap, emissiveColor);
m_MaterialEditor.ShaderProperty(emissiveIntensity, Styles.emissiveIntensityText);
m_MaterialEditor.ShaderProperty(albedoAffectEmissive, Styles.albedoAffectEmissiveText);
EditorGUI.indentLevel--;
_materialProperties.OnGUI();
}
protected override void MaterialPropertiesAdvanceGUI(Material material)

protected override void VertexAnimationPropertiesGUI()
{
}
protected override bool ShouldEmissionBeEnabled(Material mat)
{
return mat.GetFloat(kEmissiveIntensity) > 0.0f;
}
protected override void SetupMaterialKeywordsAndPassInternal(Material material)

if (doubleSidedEnable)
{
DoubleSidedNormalMode doubleSidedNormalMode = (DoubleSidedNormalMode)material.GetFloat(kDoubleSidedNormalMode);
BaseLitGUI.DoubleSidedNormalMode doubleSidedNormalMode = (BaseLitGUI.DoubleSidedNormalMode)material.GetFloat(k_DoubleSidedNormalMode);
case DoubleSidedNormalMode.Mirror: // Mirror mode (in tangent space)
case BaseLitGUI.DoubleSidedNormalMode.Mirror: // Mirror mode (in tangent space)
case DoubleSidedNormalMode.Flip: // Flip mode (in tangent space)
case BaseLitGUI.DoubleSidedNormalMode.Flip: // Flip mode (in tangent space)
case DoubleSidedNormalMode.None: // None mode (in tangent space)
case BaseLitGUI.DoubleSidedNormalMode.None: // None mode (in tangent space)
material.SetVector("_DoubleSidedConstants", new Vector4(1.0f, 1.0f, 1.0f, 0.0f));
break;
}

// so no stencil tagging there, but velocity? To check...
//TODO: stencil state, displacement, wind, depthoffset, tesselation
//TODO: stencil state, displacement, wind, depthoffset, tessellation
CoreUtils.SetKeyword(material, "_NORMALMAP", material.GetTexture(kNormalMap));
CoreUtils.SetKeyword(material, "_MASKMAPA", material.GetTexture(kMaskMapA));
CoreUtils.SetKeyword(material, "_MASKMAPB", material.GetTexture(kMaskMapB));
CoreUtils.SetKeyword(material, "_NORMALMAP", material.GetTexture(k_NormalMap));
CoreUtils.SetKeyword(material, "_SMOOTHNESSMASKMAPA", material.GetTexture(k_Smoothness1Map));
CoreUtils.SetKeyword(material, "_SMOOTHNESSMASKMAPB", material.GetTexture(k_Smoothness2Map));
CoreUtils.SetKeyword(material, "_METALLICMAP", material.GetTexture(k_MetallicMap));
CoreUtils.SetKeyword(material, "_EMISSIVE_COLOR_MAP", material.GetTexture(k_EmissiveColorMap));
bool needUV2 = (UVBaseMapping)material.GetFloat(kUVBase) == UVBaseMapping.UV2;
bool needUV3 = (UVBaseMapping)material.GetFloat(kUVBase) == UVBaseMapping.UV3;
//bool needUV2 = (LitGUI.UVBaseMapping)material.GetFloat(k_UVBase) == LitGUI.UVBaseMapping.UV2;
//bool needUV3 = (LitGUI.UVBaseMapping)material.GetFloat(k_UVBase) == LitGUI.UVBaseMapping.UV3;
if (needUV3)
{
material.DisableKeyword("_REQUIRE_UV2");
material.EnableKeyword("_REQUIRE_UV3");
}
else if (needUV2)
{
material.EnableKeyword("_REQUIRE_UV2");
material.DisableKeyword("_REQUIRE_UV3");
}
else
{
material.DisableKeyword("_REQUIRE_UV2");
material.DisableKeyword("_REQUIRE_UV3");
}
//if (needUV3)
//{
// material.DisableKeyword("_REQUIRE_UV2");
// material.EnableKeyword("_REQUIRE_UV3");
//}
//else if (needUV2)
//{
// material.EnableKeyword("_REQUIRE_UV2");
// material.DisableKeyword("_REQUIRE_UV3");
//}
//else
//{
// material.DisableKeyword("_REQUIRE_UV2");
// material.DisableKeyword("_REQUIRE_UV3");
//}
CoreUtils.SetKeyword(material, "_EMISSIVE_COLOR_MAP", material.GetTexture(kEmissiveColorMap));
CoreUtils.SetKeyword(material, "_EMISSIVE_COLOR_MAP", material.GetTexture(k_EmissiveColorMap));
}
}
} // namespace UnityEditor

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/HDRenderPipelineUI.cs


{
EditorGUILayout.PropertyField(d.renderPipelineResources, _.GetContent("Render Pipeline Resources|Set of resources that need to be loaded when creating stand alone"));
EditorGUILayout.PropertyField(d.diffusionProfileSettings, _.GetContent("Diffusion Profile Settings"));
EditorGUILayout.PropertyField(d.allowShaderVariantStripping, _.GetContent("Enable Shader Variant Stripping (experimental)"));
}
}
}

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/RenderLoopSettings/SerializedHDRenderPipelineAsset.cs


public SerializedProperty renderPipelineResources;
public SerializedProperty diffusionProfileSettings;
public SerializedProperty allowShaderVariantStripping;
public SerializedRenderPipelineSettings renderPipelineSettings;
public SerializedFrameSettings defaultFrameSettings;

renderPipelineResources = serializedObject.FindProperty("m_RenderPipelineResources");
diffusionProfileSettings = serializedObject.Find((HDRenderPipelineAsset s) => s.diffusionProfileSettings);
allowShaderVariantStripping = serializedObject.Find((HDRenderPipelineAsset s) => s.allowShaderVariantStripping);
renderPipelineSettings = new SerializedRenderPipelineSettings(serializedObject.Find((HDRenderPipelineAsset a) => a.renderPipelineSettings));
defaultFrameSettings = new SerializedFrameSettings(serializedObject.FindProperty("m_FrameSettings"));

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipeline.cs


};
readonly HDRenderPipelineAsset m_Asset;
public HDRenderPipelineAsset asset { get { return m_Asset; } }
DiffusionProfileSettings m_InternalSSSAsset;
public DiffusionProfileSettings diffusionProfileSettings

m_SkyManager.RenderSky(hdCamera, m_LightLoop.GetCurrentSunLight(), m_CameraColorBuffer, m_CameraDepthStencilBuffer, m_CurrentDebugDisplaySettings, cmd);
if (visualEnv.fogType != FogType.None || m_VolumetricLightingSystem.preset != VolumetricLightingSystem.VolumetricLightingPreset.Off)
if (visualEnv.fogType != FogType.None)
m_SkyManager.RenderOpaqueAtmosphericScattering(cmd);
}

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/HDRenderPipelineAsset.cs


return renderPipelineSettings;
}
public bool allowShaderVariantStripping = true;
[SerializeField]
public DiffusionProfileSettings diffusionProfileSettings;

48
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Light/HDAdditionalLightData.cs


public float punctualIntensity = 600.0f; // Light default to 600 lumen, i.e ~48 candela
public float areaIntensity = 200.0f; // Light default to 200 lumen to better match point light
// Only for Spotlight, should be hide for other light
public bool enableSpotReflector = false;
[Range(0.0f, 100.0f)]
public float m_InnerSpotPercent = 0.0f; // To display this field in the UI this need to be public

// Only for Spotlight, should be hide for other light
public SpotLightShape spotLightShape = SpotLightShape.Cone;
// Only for Spotlight, should be hide for other light
public bool enableSpotReflector = false;
// Only for Rectangle/Line/box projector lights
public float shapeWidth = 0.5f;

switch (light.type)
{
case LightType.Directional:
light.intensity = directionalIntensity;
light.intensity = Mathf.Max(0, directionalIntensity);
light.intensity = LightUtils.ConvertPointLightIntensity(punctualIntensity);
light.intensity = LightUtils.ConvertPointLightIntensity(Mathf.Max(0, punctualIntensity));
// Spot should used conversion which take into account the angle, and thus the intensity vary with angle.
// This is not easy to manipulate for lighter, so we simply consider any spot light as just occluded point light. So reuse the same code.
light.intensity = LightUtils.ConvertPointLightIntensity(punctualIntensity);
// TODO: What to do with box shape ?
// var spotLightShape = (SpotLightShape)m_AdditionalspotLightShape.enumValueIndex;
if (enableSpotReflector)
{
if (spotLightShape == SpotLightShape.Cone)
{
light.intensity = LightUtils.ConvertSpotLightIntensity(Mathf.Max(0, punctualIntensity), light.spotAngle * Mathf.Deg2Rad, true);
}
else if (spotLightShape == SpotLightShape.Pyramid)
{
float angleA, angleB;
LightUtils.CalculateAnglesForPyramid(aspectRatio, light.spotAngle,
out angleA, out angleB);
light.intensity = LightUtils.ConvertFrustrumLightIntensity(Mathf.Max(0, punctualIntensity), angleA, angleB);
}
else // Box shape, fallback to punctual light.
{
light.intensity = LightUtils.ConvertPointLightIntensity(Mathf.Max(0, punctualIntensity));
}
}
else
{
// Spot should used conversion which take into account the angle, and thus the intensity vary with angle.
// This is not easy to manipulate for lighter, so we simply consider any spot light as just occluded point light. So reuse the same code.
light.intensity = LightUtils.ConvertPointLightIntensity(Mathf.Max(0, punctualIntensity));
// TODO: What to do with box shape ?
// var spotLightShape = (SpotLightShape)m_AdditionalspotLightShape.enumValueIndex;
}
break;
}

light.intensity = LightUtils.ConvertRectLightIntensity(areaIntensity, shapeWidth, shapeHeight);
light.intensity = LightUtils.ConvertRectLightIntensity(Mathf.Max(0, areaIntensity), shapeWidth, shapeHeight);
light.intensity = LightUtils.CalculateLineLightIntensity(areaIntensity, shapeWidth);
light.intensity = LightUtils.CalculateLineLightIntensity(Mathf.Max(0, areaIntensity), shapeWidth);
}
}

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/GlobalLightLoopSettings.cs


public int pointCookieSize = 128;
public int cubeCookieTexArraySize = 16;
public int reflectionProbeCacheSize = 4;
public int reflectionProbeCacheSize = 2;
public int planarReflectionProbeCacheSize = 1024;
public int reflectionCubemapSize = 128;
public int planarReflectionTextureSize = 128;

66
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightLoop/LightLoop.cs


public void UpdateCullingParameters(ref ScriptableCullingParameters cullingParams)
{
m_ShadowMgr.UpdateCullingParameters( ref cullingParams );
// In HDRP we don't need per object light/probe info so we disable the native code that handles it.
#if UNITY_2018_2_OR_NEWER
cullingParams.cullingFlags |= CullFlag.DisablePerObjectCulling;
#endif
}
public bool IsBakedShadowMaskLight(Light light)

m_CurrentSunLightShadowIndex = -1;
var stereoEnabled = m_FrameSettings.enableStereo;
Vector3 camPosWS = camera.transform.position;
var worldToView = WorldToCamera(camera);
var rightEyeWorldToView = Matrix4x4.identity;
if (stereoEnabled)
{
worldToView = WorldToViewStereo(camera, Camera.StereoscopicEye.Left);
rightEyeWorldToView = WorldToViewStereo(camera, Camera.StereoscopicEye.Right);
}
// Note: Light with null intensity/Color are culled by the C++, no need to test it here
if (cullResults.visibleLights.Count != 0 || cullResults.visibleReflectionProbes.Count != 0)

// 2. Go through all lights, convert them to GPU format.
// Simultaneously create data for culling (LightVolumeData and SFiniteLightBound)
Vector3 camPosWS = camera.transform.position;
var worldToView = WorldToCamera(camera);
var rightEyeWorldToView = Matrix4x4.identity;
if (stereoEnabled)
{
worldToView = WorldToViewStereo(camera, Camera.StereoscopicEye.Left);
rightEyeWorldToView = WorldToViewStereo(camera, Camera.StereoscopicEye.Right);
}
for (int sortIndex = 0; sortIndex < sortCount; ++sortIndex)
{

}
}
// Inject density volumes into the clustered data structure for efficient look up.
m_densityVolumeCount = densityVolumes.bounds != null ? densityVolumes.bounds.Count : 0;
Matrix4x4 worldToViewCR = worldToView;
if (ShaderConfig.s_CameraRelativeRendering != 0)
{
// The OBBs are camera-relative, the matrix is not. Fix it.
worldToViewCR.SetColumn(3, new Vector4(0, 0, 0, 1));
}
for (int i = 0, n = m_densityVolumeCount; i < n; i++)
{
// Density volumes are not lights and therefore should not affect light classification.
LightFeatureFlags featureFlags = 0;
AddBoxVolumeDataAndBound(densityVolumes.bounds[i], LightCategory.DensityVolume, featureFlags, worldToViewCR);
}
m_lightCount = m_lightList.lights.Count + m_lightList.envLights.Count + m_densityVolumeCount;
Debug.Assert(m_lightCount == m_lightList.bounds.Count);
Debug.Assert(m_lightCount == m_lightList.lightVolumes.Count);
int decalDatasCount = Math.Min(DecalSystem.m_DecalDatasCount, k_MaxDecalsOnScreen);
if (decalDatasCount > 0)
{

}
m_lightCount += decalDatasCount;
}
// Inject density volumes into the clustered data structure for efficient look up.
m_densityVolumeCount = densityVolumes.bounds != null ? densityVolumes.bounds.Count : 0;
Matrix4x4 worldToViewCR = worldToView;
if (ShaderConfig.s_CameraRelativeRendering != 0)
{
// The OBBs are camera-relative, the matrix is not. Fix it.
worldToViewCR.SetColumn(3, new Vector4(0, 0, 0, 1));
}
for (int i = 0, n = m_densityVolumeCount; i < n; i++)
{
// Density volumes are not lights and therefore should not affect light classification.
LightFeatureFlags featureFlags = 0;
AddBoxVolumeDataAndBound(densityVolumes.bounds[i], LightCategory.DensityVolume, featureFlags, worldToViewCR);
}
m_lightCount = m_lightList.lights.Count + m_lightList.envLights.Count + m_densityVolumeCount + decalDatasCount;
Debug.Assert(m_lightCount == m_lightList.bounds.Count);
Debug.Assert(m_lightCount == m_lightList.lightVolumes.Count);
if (stereoEnabled)
{

16
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/LightUtils.cs


//radiance = power / (length * (4 * Pi)).
return intensity / (4.0f * Mathf.PI * lineWidth);
}
public static void CalculateAnglesForPyramid(float aspectRatio, float spotAngle, out float angleA, out float angleB)
{
// Since the smallest angles is = to the fov, and we don't care of the angle order, simply make sure the aspect ratio is > 1
if (aspectRatio < 1.0f)
aspectRatio = 1.0f / aspectRatio;
angleA = spotAngle * Mathf.Deg2Rad;
var halfAngle = angleA * 0.5f; // half of the smallest angle
var length = Mathf.Tan(halfAngle); // half length of the smallest side of the rectangle
length *= aspectRatio; // half length of the bigest side of the rectangle
halfAngle = Mathf.Atan(length); // half of the bigest angle
angleB = halfAngle * 2.0f;
}
}
}

3
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Volumetrics/VolumetricLighting.compute


// Store the feedback for the voxel.
// TODO: dynamic lights (which update their position, rotation, cookie or shadow at runtime)
// do not support reprojection and should neither read nor write to the history buffer.
// to the history buffer. This will cause them to alias, but it is the only way
// to prevent ghosting.
// This will cause them to alias, but it is the only way to prevent ghosting.
_VBufferLightingFeedback[voxelCoord] = float4(blendedRadiance, centerTransmInt);

30
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Lighting/Volumetrics/VolumetricLighting.cs


public void ResizeVBuffer(HDCamera camera, int screenWidth, int screenHeight)
{
if (preset == VolumetricLightingPreset.Off) return;
var visualEnvironment = VolumeManager.instance.stack.GetComponent<VisualEnvironment>();
if (visualEnvironment == null || visualEnvironment.fogType != FogType.Volumetric) return;
long viewID = camera.GetViewID();

public void PushGlobalParams(HDCamera camera, CommandBuffer cmd)
{
if (preset == VolumetricLightingPreset.Off) return;
var visualEnvironment = VolumeManager.instance.stack.GetComponent<VisualEnvironment>();
if (visualEnvironment == null || visualEnvironment.fogType != FogType.Volumetric) return;
// Modify the near plane.
// Warning: it can screw up the reprojection. However, we have to do it in order for clustered lighting to work correctly.

DensityVolumeList densityVolumes = new DensityVolumeList();
if (preset == VolumetricLightingPreset.Off) return densityVolumes;
if (visualEnvironment.fogType != FogType.Volumetric) return densityVolumes;
if (visualEnvironment == null || visualEnvironment.fogType != FogType.Volumetric) return densityVolumes;
using (new ProfilingSample(cmd, "Prepare Visible Density Volume List"))
{

public void VolumeVoxelizationPass(DensityVolumeList densityVolumes, HDCamera camera, CommandBuffer cmd, FrameSettings settings)
{
if (preset == VolumetricLightingPreset.Off) return;
var visualEnvironment = VolumeManager.instance.stack.GetComponent<VisualEnvironment>();
if (visualEnvironment == null || visualEnvironment.fogType != FogType.Volumetric) return;
using (new ProfilingSample(cmd, "Volume Voxelization"))
{

{
// Clear the render target instead of running the shader.
// Note: the clear must take the global fog into account!
// Use the workaround by running the full shader with 0 density.
// Use the workaround by running the full shader with 0 density
}
VBuffer vBuffer = FindVBuffer(camera.GetViewID());

public void VolumetricLightingPass(HDCamera camera, CommandBuffer cmd, FrameSettings settings)
{
if (preset == VolumetricLightingPreset.Off) return;
var visualEnvironment = VolumeManager.instance.stack.GetComponent<VisualEnvironment>();
if (visualEnvironment == null || visualEnvironment.fogType != FogType.Volumetric) return;
var visualEnvironment = VolumeManager.instance.stack.GetComponent<VisualEnvironment>();
if (visualEnvironment.fogType != FogType.Volumetric)
{
// Clear the render target instead of running the shader.
// CoreUtils.SetRenderTarget(cmd, vBuffer.GetDensityBuffer(), ClearFlag.Color, CoreUtils.clearColorAllBlack);
// return;
// Clearing 3D textures does not seem to work!
// Use the workaround by running the full shader with 0 density.
}
VBuffer vBuffer = FindVBuffer(camera.GetViewID());
Debug.Assert(vBuffer != null);

int rfc = Time.renderedFrameCount;
int sampleIndex = rfc % 7;
// TODO: should we somehow reorder offsets in Z based on the offset in XY? S.t. the samples more evenly cover the domain.
// Currently, we assume that they are completely uncorrelated, but maybe we should correlate them somehow.
Vector4 offset = new Vector4(xySeq[sampleIndex].x, xySeq[sampleIndex].y, zSeq[sampleIndex], rfc);
// Get the interpolated asymmetry value.

11
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/PreIntegratedFGD/PreIntegratedFGD.cs


int m_refCounting;
// For image based lighting
Material m_InitPreFGD;
Material m_PreIntegratedFGDMaterial;
RenderTexture m_PreIntegratedFGD;
PreIntegratedFGD()

if (m_refCounting == 0)
{
m_InitPreFGD = CoreUtils.CreateEngineMaterial("Hidden/HDRenderPipeline/PreIntegratedFGD");
var hdrp = GraphicsSettings.renderPipelineAsset as HDRenderPipelineAsset;
m_PreIntegratedFGDMaterial = CoreUtils.CreateEngineMaterial(hdrp.renderPipelineResources.preIntegratedFGD);
m_PreIntegratedFGD = new RenderTexture(128, 128, 0, RenderTextureFormat.ARGB2101010, RenderTextureReadWrite.Linear);
m_PreIntegratedFGD.hideFlags = HideFlags.HideAndDontSave;

if (m_isInit)
return;
using (new ProfilingSample(cmd, "Init PreFGD"))
using (new ProfilingSample(cmd, "PreIntegratedFGD Material Generation"))
CoreUtils.DrawFullScreen(cmd, m_InitPreFGD, new RenderTargetIdentifier(m_PreIntegratedFGD));
CoreUtils.DrawFullScreen(cmd, m_PreIntegratedFGDMaterial, new RenderTargetIdentifier(m_PreIntegratedFGD));
}
m_isInit = true;

if (m_refCounting == 0)
{
CoreUtils.Destroy(m_InitPreFGD);
CoreUtils.Destroy(m_PreIntegratedFGDMaterial);
CoreUtils.Destroy(m_PreIntegratedFGD);
m_isInit = false;

28
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/StackLit/StackLit.shader


// Be careful, do not change the name here to _Color. It will conflict with the "fake" parameters (see end of properties) required for GI.
_BaseColor("BaseColor", Color) = (1,1,1,1)
_BaseColorMap("BaseColorMap", 2D) = "white" {}
_BaseColorMapUV("BaseColorMapUV", Float) = 0.0
_MetallicMap("MetallicMap", 2D) = "black" {}
_MetallicMapUV("MetallicMapUV", Float) = 0.0
_MetallicMapChannel("MetallicMapChannel", Vector) = (1, 0, 0, 0)
_MetallicRemap("Metallic Remap", Vector) = (0, 1, 0, 0)
[ToggleUI] _MetallicRemapInverted("Invert Metallic Remap", Float) = 0.0
_SmoothnessARemapMin("SmoothnessARemapMin", Float) = 0.0
_SmoothnessARemapMax("SmoothnessARemapMax", Float) = 1.0
_SmoothnessAMap("BaseColorMap", 2D) = "white" {}
_SmoothnessAMapUV("SmoothnessAMapUV", Float) = 0.0
_SmoothnessAMapChannel("SmoothnessA Map Channel", Vector) = (1, 0, 0, 0)
_SmoothnessARemap("SmoothnessA Remap", Vector) = (0, 1, 0, 0)
[ToggleUI] _SmoothnessARemapInverted("Invert SmoothnessA Remap", Float) = 0.0
_SmoothnessBRemapMin("SmoothnessBRemapMin", Float) = 0.0
_SmoothnessBRemapMax("SmoothnessBRemapMax", Float) = 1.0
_LobeMix("lobeMix", Range(0.0, 1.0)) = 0
_MaskMapA("MaskMapA", 2D) = "white" {}
_MaskMapB("MaskMapB", 2D) = "white" {}
_SmoothnessBMap("SmoothnessBMap", 2D) = "white" {}
_SmoothnessBMapUV("SmoothnessBMapUV", Float) = 0.0
_SmoothnessBMapChannel("SmoothnessB Map Channel", Vector) = (1, 0, 0, 0)
_SmoothnessBRemap("SmoothnessB Remap", Vector) = (0, 1, 0, 0)
[ToggleUI] _SmoothnessBRemapInverted("Invert SmoothnessB Remap", Float) = 0.0
_LobeMix("Lobe Mix", Range(0.0, 1.0)) = 0
_NormalMapUV("NormalMapUV", Float) = 0.0
_EmissiveColorMapUV("EmissiveColorMap", Range(0.0, 1.0)) = 0
_EmissiveIntensity("EmissiveIntensity", Float) = 0
[ToggleUI] _AlbedoAffectEmissive("Albedo Affect Emissive", Float) = 0.0

18
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/StackLit/StackLitData.hlsl


normalTS = GetNormalTS(input, layerTexCoord, detailNormalTS, detailMask);
//TODO: bentNormalTS
#if defined(_MASKMAPA)
surfaceData.perceptualSmoothnessA = SAMPLE_UVMAPPING_TEXTURE2D(_MaskMapA, sampler_MaskMapA, layerTexCoord.base).a;
surfaceData.perceptualSmoothnessA = lerp(_SmoothnessARemapMin, _SmoothnessARemapMax, surfaceData.perceptualSmoothnessA);
#if defined(_SMOOTHNESSMASKMAPA)
surfaceData.perceptualSmoothnessA = dot(SAMPLE_UVMAPPING_TEXTURE2D(_SmoothnessAMap, sampler_SmoothnessAMap, layerTexCoord.base), _MetallicMapChannel, _SmoothnessAMapChannel);
surfaceData.perceptualSmoothnessA = lerp(_SmoothnessARemap.x, _SmoothnessARemap.y, surfaceData.perceptualSmoothnessA);
#if defined(_MASKMAPB)
surfaceData.perceptualSmoothnessB = SAMPLE_UVMAPPING_TEXTURE2D(_MaskMapB, sampler_MaskMapB, layerTexCoord.base).a;
surfaceData.perceptualSmoothnessB = lerp(_SmoothnessBRemapMin, _SmoothnessBRemapMax, surfaceData.perceptualSmoothnessB);
#if defined(_SMOOTHNESSMASKMAPB)
surfaceData.perceptualSmoothnessB = dot(SAMPLE_UVMAPPING_TEXTURE2D(_SmoothnessAMaB, sampler_SmoothnessBMap, layerTexCoord.base), _SmoothnessBMapChannel);
surfaceData.perceptualSmoothnessB = lerp(_SmoothnessBRemap.x, _SmoothnessBRemap.y, surfaceData.perceptualSmoothnessB);
// MaskMapA is RGBA: Metallic, Ambient Occlusion (Optional), detail Mask (Optional), Smoothness
#ifdef _MASKMAPA
surfaceData.metallic = SAMPLE_UVMAPPING_TEXTURE2D(_MaskMapA, sampler_MaskMapA, layerTexCoord.base).r;
#ifdef _METALLICMAP
surfaceData.metallic = dot(SAMPLE_UVMAPPING_TEXTURE2D(_MetallicMap, sampler_MetallicMap, layerTexCoord.base), _MetallicMapChannel);
#else
surfaceData.metallic = 1.0;
#endif

32
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/StackLit/StackLitProperties.hlsl


TEXTURE2D(_DistortionVectorMap);
SAMPLER(sampler_DistortionVectorMap);
TEXTURE2D(_EmissiveColorMap);
SAMPLER(sampler_EmissiveColorMap);
TEXTURE2D(_MaskMapA);
SAMPLER(sampler_MaskMapA);
TEXTURE2D(_MetallicMap);
SAMPLER(sampler_MetallicMap);
TEXTURE2D(_MaskMapB);
SAMPLER(sampler_MaskMapB);
TEXTURE2D(_SmoothnessAMap);
SAMPLER(sampler_SmoothnessAMap);
TEXTURE2D(_SmoothnessBMap);
SAMPLER(sampler_SmoothnessBMap);
TEXTURE2D(_EmissiveColorMap);
SAMPLER(sampler_EmissiveColorMap);
TEXTURE2D(_NormalMap);
SAMPLER(sampler_NormalMap);

float4 _BaseColorMap_ST;
float4 _BaseColorMap_TexelSize;
float4 _BaseColorMap_MipInfo;
float _BaseColorMapUV;
float _MetallicMapUV;
float4 _MetallicMapChannel;
float _SmoothnessARemapMin;
float _SmoothnessARemapMax;
float _SmoothnessAMapUV;
float4 _SmoothnessAMapChannel;
float4 _SmoothnessARemap;
float _SmoothnessBRemapMin;
float _SmoothnessBRemapMax;
float _SmoothnessBUV;
float4 _SmoothnessBMapChannel;
float4 _SmoothnessBRemap;
float _NormalMapUV;
float4 _UVMappingMask;

1
ScriptableRenderPipeline/HDRenderPipeline/HDRP/RenderPipelineResources/HDRenderPipelineResources.asset


hdriSky: {fileID: 4800000, guid: 9bd32a6ece529fd4f9408b8d7e00c10d, type: 3}
proceduralSky: {fileID: 4800000, guid: ec63f47fd265df243a7b1d40f9ef7fe7, type: 3}
skyboxCubemap: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
preIntegratedFGD: {fileID: 4800000, guid: 123f13d52852ef547b2962de4bd9eaad, type: 3}
encodeBC6HCS: {fileID: 7200000, guid: aa922d239de60304f964e24488559eeb, type: 3}
cubeToPanoShader: {fileID: 4800000, guid: 595434cc3b6405246b6cd3086d0b6f7d, type: 3}
blitCubeTextureFace: {fileID: 4800000, guid: d850d0a2481878d4bbf17e5126b04163, type: 3}

4
ScriptableRenderPipeline/HDRenderPipeline/HDRP/RenderPipelineResources/RenderPipelineResources.cs


public Shader opaqueAtmosphericScattering;
public Shader hdriSky;
public Shader proceduralSky;
// Material
public Shader preIntegratedFGD;
// Utilities / Core
public ComputeShader encodeBC6HCS;

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderConfig.cs


{
CameraRelativeRendering = 1, // Rendering sets the origin of the world to the position of the primary (scene view) camera
UseDisneySSS = 1, // Allow to chose between Burley Normalized Diffusion (Multi + Fix direction single scattering) or Jimenez diffusion approximation (Multiscattering only - More blurry) for Subsurface scattering
VolumetricLightingPreset = 0 // 0 = disabled, 1 = normal, 2 = ultra
VolumetricLightingPreset = 1 // 0 = disabled, 1 = normal, 2 = ultra
};
// Note: #define can't be use in include file in C# so we chose this way to configure both C# and hlsl

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/ShaderConfig.cs.hlsl


//
#define SHADEROPTIONS_CAMERA_RELATIVE_RENDERING (1)
#define SHADEROPTIONS_USE_DISNEY_SSS (1)
#define SHADEROPTIONS_VOLUMETRIC_LIGHTING_PRESET (0)
#define SHADEROPTIONS_VOLUMETRIC_LIGHTING_PRESET (1)
#endif

2
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Sky/AtmosphericScattering/VolumetricFog.cs


public class VolumetricFog : AtmosphericScattering
{
public ColorParameter albedo = new ColorParameter(new Color(0.5f, 0.5f, 0.5f));
public MinFloatParameter meanFreePath = new MinFloatParameter(float.MaxValue, 1.0f);
public MinFloatParameter meanFreePath = new MinFloatParameter(1000000.0f, 1.0f);
public ClampedFloatParameter asymmetry = new ClampedFloatParameter(0.0f, -1.0f, 1.0f);
// Override the volume blending function.

2
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets.meta


fileFormatVersion: 2
guid: 2871da9607c8801419f9a3e693ebf232
guid: c2b2878683653fa40b1ef522c21fea10
folderAsset: yes
DefaultImporter:
externalObjects: {}

2
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials.meta


fileFormatVersion: 2
guid: 7f883b4efaccb494ab60a6109790aa70
guid: 1caa70efc32061a48b085f15db6a3c3e
folderAsset: yes
DefaultImporter:
externalObjects: {}

2
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials/PreRefractionPassTester.mat


Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: PreRefractionPassTester
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}

6
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials/PreRefractionPassTester.mat.meta


fileFormatVersion: 2
guid: eeafcacbee7af5c4d9f75570a6dfdcc8
timeCreated: 1508769737
licenseType: Pro
guid: 2a4a476cc7012ae459b28a56ec715a91
mainObjectFileID: 2100000
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

4
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/SkySettings.meta


fileFormatVersion: 2
guid: 739ecd0d74338534b977fda312a35417
guid: 563b2283890c8a34cb08cd1cbee43552
timeCreated: 1508427753
licenseType: Pro
DefaultImporter:
externalObjects: {}
userData:

4
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/SkySettings/HDRP_Default_Sky.asset.meta


fileFormatVersion: 2
guid: c7a81274c3034d44c9e50cd708233345
guid: dbf17a3bd97b1a947bf247bcc800f999
mainObjectFileID: 11400000
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

6
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/PreIntegratedFGD/PreIntegratedFGD.shader


Shader "Hidden/HDRenderPipeline/PreIntegratedFGD"
{
SubShader
SubShader
Pass
Pass
{
ZTest Always Cull Off ZWrite Off

#include "CoreRP/ShaderLibrary/Common.hlsl"
#include "CoreRP/ShaderLibrary/ImageBasedLighting.hlsl"
#include "../../../ShaderVariables.hlsl"
#include "../../ShaderVariables.hlsl"
struct Attributes
{

147
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/HDRPVariantStripper.cs


using System.Collections;
using System.Collections.Generic;
using UnityEditor.Build;
using UnityEditor.Rendering;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.Rendering.HDPipeline;
namespace UnityEditor.Experimental.Rendering.HDPipeline
{
#if UNITY_2018_2_OR_NEWER
class HDRPVariantStripper : IPreprocessShaders
{
// returns true if the variant should be stripped.
delegate bool VariantStrippingFunc(Shader shader, ShaderSnippetData snippet, ShaderCompilerData inputData);
Dictionary<string, VariantStrippingFunc> m_StripperFuncs;
HDRenderPipelineAsset m_CurrentHDRPAsset;
ShaderKeyword m_ShadowMask;
ShaderKeyword m_Transparent;
ShaderKeyword m_DebugDisplay;
ShaderKeyword m_TileLighting;
ShaderKeyword m_ClusterLighting;
ShaderKeyword m_FeatureSSS;
public HDRPVariantStripper()
{
// TODO: Grab correct configuration/quality asset.
HDRenderPipeline hdPipeline = RenderPipelineManager.currentPipeline as HDRenderPipeline;
if (hdPipeline != null)
m_CurrentHDRPAsset = hdPipeline.asset;
m_StripperFuncs = new Dictionary<string, VariantStrippingFunc>();
m_StripperFuncs.Add("HDRenderPipeline/Lit", LitShaderStripper);
m_StripperFuncs.Add("HDRenderPipeline/LitTessellation", LitShaderStripper);
m_StripperFuncs.Add("HDRenderPipeline/LayeredLit", LitShaderStripper);
m_StripperFuncs.Add("HDRenderPipeline/LayeredLitTessellation", LitShaderStripper);
m_Transparent = new ShaderKeyword("_SURFACE_TYPE_TRANSPARENT");
m_DebugDisplay = new ShaderKeyword("DEBUG_DISPLAY");
m_TileLighting = new ShaderKeyword("USE_FPTL_LIGHTLIST");
m_ClusterLighting = new ShaderKeyword("USE_CLUSTERED_LIGHTLIST");
m_FeatureSSS = new ShaderKeyword("_MATERIAL_FEATURE_SUBSURFACE_SCATTERING");
}
bool LitShaderStripper(Shader shader, ShaderSnippetData snippet, ShaderCompilerData inputData)
{
bool isGBufferPass = snippet.passName == "GBuffer";
bool isForwardPass = snippet.passName == "Forward";
bool isTransparentForwardPass = snippet.passName == "TransparentDepthPostpass" || snippet.passName == "TransparentBackface" || snippet.passName == "TransparentDepthPrepass";
bool isMotionPass = snippet.passName == "Motion Vectors";
// NOTE: All these keyword should be automatically stripped so there's no need to handle them ourselves.
// LIGHTMAP_ON, DIRLIGHTMAP_COMBINED, DYNAMICLIGHTMAP_ON, LIGHTMAP_SHADOW_MIXING, SHADOWS_SHADOWMASK
// FOG_LINEAR, FOG_EXP, FOG_EXP2
// STEREO_INSTANCING_ON, STEREO_MULTIVIEW_ON, STEREO_CUBEMAP_RENDER_ON, UNITY_SINGLE_PASS_STEREO
// INSTANCING_ON
if (!m_CurrentHDRPAsset.renderPipelineSettings.supportMotionVectors && isMotionPass)
return true;
// When using forward only, we never need GBuffer pass (only Forward)
if (m_CurrentHDRPAsset.renderPipelineSettings.supportForwardOnly && isGBufferPass)
return true;
if (inputData.shaderKeywordSet.IsEnabled(m_Transparent))
{
// If transparent, we never need GBuffer pass.
if (isGBufferPass)
return true;
// We will also use cluster instead of tile
if (inputData.shaderKeywordSet.IsEnabled(m_TileLighting))
return true;
}
else // Opaque
{
// If opaque, we never need transparent specific passes (even in forward only mode)
if (isTransparentForwardPass)
return true;
if (!m_CurrentHDRPAsset.renderPipelineSettings.supportForwardOnly && inputData.shaderKeywordSet.IsEnabled(m_ClusterLighting))
return true;
if (!m_CurrentHDRPAsset.renderPipelineSettings.supportForwardOnly)
{
// If opaque and not forward only, then we only need the forward debug pass.
if (isForwardPass && !inputData.shaderKeywordSet.IsEnabled(m_DebugDisplay))
return true;
}
}
// TODO: Expose development build flag.
//if (developmentBuild && inputData.shaderKeywordSet.IsEnabled(m_DebugDisplay))
// return true;
// TODO: Tests for later
// We need to find a way to strip useless shader features for passes/shader stages that don't need them (example, vertex shaders won't ever need SSS Feature flag)
// This causes several problems:
// - Runtime code that "finds" shader variants based on feature flags might not find them anymore... thus fall backing to the "let's give a score to variant" code path that may find the wrong variant.
// - Another issue is that if a feature is declared without a "_" fall-back, if we strip the other variants, none may be left to use! This needs to be changed on our side.
//if (snippet.shaderType == ShaderType.Vertex && inputData.shaderKeywordSet.IsEnabled(m_FeatureSSS))
// return true;
return false;
}
public int callbackOrder { get { return 0; } }
public void OnProcessShader(Shader shader, ShaderSnippetData snippet, IList<ShaderCompilerData> inputData)
{
if (m_CurrentHDRPAsset == null || !m_CurrentHDRPAsset.allowShaderVariantStripping)
return;
// Do we have a shader variant stripper function for this shader?
VariantStrippingFunc stripperFunc = null;
m_StripperFuncs.TryGetValue(shader.name, out stripperFunc);
if (stripperFunc == null)
return;
int inputShaderVariantCount = inputData.Count;
ShaderCompilerData workaround = inputData[0];
for (int i = 0; i < inputData.Count; ++i)
{
ShaderCompilerData input = inputData[i];
if (stripperFunc(shader, snippet, input))
{
inputData.RemoveAt(i);
i--;
}
}
// Currently if a certain snippet is completely stripped (for example if you remove a whole pass) other passes might get broken
// To work around that, we make sure that we always have at least one variant.
if (inputData.Count == 0)
inputData.Add(workaround);
}
}
#endif
}

11
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/HDRPVariantStripper.cs.meta


fileFormatVersion: 2
guid: 168f8e50628e857489eb62f41d9c911f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

443
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Material/StackLit/BaseMaterialUI.cs


using System;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.Rendering.HDPipeline;
namespace UnityEditor.Experimental.Rendering.HDPipeline
{
public abstract class BaseMaterialGUI : BaseUnlitGUI
{
#region GUI Property Classes
public abstract class BaseProperty
{
public BaseMaterialGUI Parent = null;
protected Func<object, bool> IsVisible;
protected BaseProperty(BaseMaterialGUI parent, Func<object, bool> isVisible = null)
{
Parent = parent;
IsVisible = isVisible;
}
public abstract void OnFindProperty(MaterialProperty[] props);
public abstract void OnGUI();
}
public class GroupProperty : BaseProperty
{
public string m_Title = string.Empty;
private readonly BaseProperty[] m_ChildProperties;
public bool Foldout = false;
public GroupProperty(BaseMaterialGUI parent, BaseProperty[] childProperties, Func<object, bool> isVisible = null)
: this(parent, string.Empty, childProperties, isVisible)
{
}
public GroupProperty(BaseMaterialGUI parent, string groupTitle, BaseProperty[] childProperties, Func<object, bool> isVisible = null)
: base(parent, isVisible)
{
m_Title = groupTitle;
m_ChildProperties = childProperties;
}
public override void OnFindProperty(MaterialProperty[] props)
{
foreach (var c in m_ChildProperties)
{
c.OnFindProperty(props);
}
}
public override void OnGUI()
{
if (IsVisible == null || IsVisible(this))
{
if (!string.IsNullOrEmpty(m_Title))
{
Foldout = EditorGUILayout.Foldout(Foldout, m_Title);
}
else
{
Foldout = true;
}
if (Foldout)
{
EditorGUI.indentLevel++;
foreach (var c in m_ChildProperties)
{
c.OnGUI();
}
EditorGUI.indentLevel--;
}
}
}
}
public class Property : BaseProperty
{
public string PropertyName;
public string PropertyText;
protected MaterialProperty m_MaterialProperty = null;
protected readonly GUIContent m_GuiContent = null;
public bool IsMandatory = false;
public bool IsValid
{
get { return m_MaterialProperty != null; }
}
public float FloatValue
{
get { return m_MaterialProperty.floatValue; }
set { m_MaterialProperty.floatValue = value; }
}
public bool BoolValue
{
get { return Math.Abs(m_MaterialProperty.floatValue) > 0.0f; }
set { m_MaterialProperty.floatValue = value ? 1.0f : 0.0f; }
}
public Texture TextureValue
{
get { return m_MaterialProperty != null ? m_MaterialProperty.textureValue : null; }
set { if (m_MaterialProperty != null) { m_MaterialProperty.textureValue = value; } }
}
public Vector4 VectorValue
{
get { return m_MaterialProperty.vectorValue; }
set { m_MaterialProperty.vectorValue = value; }
}
public Property(BaseMaterialGUI parent, string propertyName, string guiText, bool isMandatory = true)
: this(parent, propertyName, guiText, string.Empty, isMandatory)
{
}
public Property(BaseMaterialGUI parent, string propertyName, string guiText, string toolTip, bool isMandatory = true)
: base(parent)
{
m_GuiContent = new GUIContent(guiText, toolTip);
PropertyName = propertyName;
PropertyText = guiText;
IsMandatory = isMandatory;
}
public override void OnFindProperty(MaterialProperty[] props)
{
m_MaterialProperty = ShaderGUI.FindProperty(PropertyName, props, IsMandatory);
}
public override void OnGUI()
{
if (IsValid
&& (IsVisible == null || IsVisible(this)))
{
Parent.m_MaterialEditor.ShaderProperty(m_MaterialProperty, m_GuiContent);
}
}
}
public class ComboProperty : Property
{
private readonly string[] m_Options;
private readonly int[] m_Values = null;
public ComboProperty(BaseMaterialGUI parent, string propertyName, string guiText, string[] options, bool isMandatory = true)
: base(parent, propertyName, guiText, isMandatory)
{
m_Options = options;
}
public ComboProperty(BaseMaterialGUI parent, string propertyName, string guiText, string toolTip, string[] options, bool isMandatory = true)
: base(parent, propertyName, guiText, toolTip, isMandatory)
{
m_Options = options;
}
public ComboProperty(BaseMaterialGUI parent, string propertyName, string guiText, string[] options, int[] values, bool isMandatory = true)
: base(parent, propertyName, guiText, isMandatory)
{
m_Options = options;
m_Values = values;
}
public ComboProperty(BaseMaterialGUI parent, string propertyName, string guiText, string toolTip, string[] options, int[] values, bool isMandatory = true)
: base(parent, propertyName, guiText, toolTip, isMandatory)
{
m_Options = options;
m_Values = values;
}
public override void OnGUI()
{
if (IsValid
&& (IsVisible == null || IsVisible(this)))
{
EditorGUI.showMixedValue = m_MaterialProperty.hasMixedValue;
float floatValue = m_MaterialProperty.floatValue;
EditorGUI.BeginChangeCheck();
if (m_Values == null)
{
floatValue = EditorGUILayout.Popup(m_GuiContent, (int)floatValue, m_Options);
}
else
{
floatValue = EditorGUILayout.IntPopup(m_GuiContent.text, (int)floatValue, m_Options, m_Values);
}
if (EditorGUI.EndChangeCheck())
{
Parent.m_MaterialEditor.RegisterPropertyChangeUndo(PropertyName);
m_MaterialProperty.floatValue = (float)floatValue;
}
EditorGUI.showMixedValue = false;
}
}
}
public class DiffusionProfileProperty : Property
{
public DiffusionProfileProperty(BaseMaterialGUI parent, string propertyName, string guiText, string toolTip, bool isMandatory = true)
: base(parent, propertyName, guiText, toolTip, isMandatory)
{
}
public override void OnGUI()
{
if (IsValid
&& (IsVisible == null || IsVisible(this)))
{
var hdPipeline = RenderPipelineManager.currentPipeline as HDRenderPipeline;
if (hdPipeline == null)
{
return;
}
var diffusionProfileSettings = hdPipeline.diffusionProfileSettings;
if (hdPipeline.IsInternalDiffusionProfile(diffusionProfileSettings))
{
EditorGUILayout.HelpBox(
"No diffusion profile Settings have been assigned to the render pipeline asset.",
MessageType.Warning);
return;
}
// TODO: Optimize me
var profiles = diffusionProfileSettings.profiles;
var names = new GUIContent[profiles.Length + 1];
names[0] = new GUIContent("None");
var values = new int[names.Length];
values[0] = DiffusionProfileConstants.DIFFUSION_PROFILE_NEUTRAL_ID;
for (int i = 0; i < profiles.Length; i++)
{
names[i + 1] = new GUIContent(profiles[i].name);
values[i + 1] = i + 1;
}
using (var scope = new EditorGUI.ChangeCheckScope())
{
int profileID = (int) FloatValue;
using (new EditorGUILayout.HorizontalScope())
{
EditorGUILayout.PrefixLabel(m_GuiContent.text);
using (new EditorGUILayout.HorizontalScope())
{
profileID = EditorGUILayout.IntPopup(profileID, names, values);
if (GUILayout.Button("Goto", EditorStyles.miniButton, GUILayout.Width(50f)))
{
Selection.activeObject = diffusionProfileSettings;
}
}
}
if (scope.changed)
{
FloatValue = profileID;
}
}
}
}
}
public class TextureOneLineProperty : Property
{
public string ExtraPropertyName;
private MaterialProperty m_ExtraProperty;
public TextureOneLineProperty(BaseMaterialGUI parent, string propertyName, string guiText, bool isMandatory = true)
: base(parent, propertyName, guiText, isMandatory)
{
}
public TextureOneLineProperty(BaseMaterialGUI parent, string propertyName, string guiText, string toolTip, bool isMandatory = true)
: base(parent, propertyName, guiText, toolTip, isMandatory)
{
}
public TextureOneLineProperty(BaseMaterialGUI parent, string propertyName, string extraPropertyName, string guiText, string toolTip, bool isMandatory = true)
: base(parent, propertyName, guiText, toolTip, isMandatory)
{
ExtraPropertyName = extraPropertyName;
}
public override void OnFindProperty(MaterialProperty[] props)
{
base.OnFindProperty(props);
if (!string.IsNullOrEmpty(ExtraPropertyName))
{
m_ExtraProperty = ShaderGUI.FindProperty(ExtraPropertyName, props, IsMandatory);
}
}
public override void OnGUI()
{
if (IsValid && (IsVisible == null || IsVisible(this)))
{
Parent.m_MaterialEditor.TexturePropertySingleLine(m_GuiContent, m_MaterialProperty, m_ExtraProperty);
}
}
}
public class TextureProperty : Property
{
public enum Tiling
{
Wrap,
Clamp,
}
public enum Channel
{
R,
G,
B,
A,
}
public enum UVMapping
{
UV0,
UV1,
UV2,
UV3,
PlanarXY,
PlanarYZ,
PlanarZX,
Triplanar,
}
public TextureOneLineProperty m_TextureProperty;
public ComboProperty m_UvSetProperty;
public Property m_LocalOrWorldProperty;
public ComboProperty m_TilingProperty;
public Property m_ChannelProperty;
public Property m_RemapProperty;
public Property m_InvertRemapProperty;
public bool Foldout = false;
public TextureProperty(BaseMaterialGUI parent, string propertyName, string constantPropertyName, string guiText, bool isMandatory = true, bool isNormalMap = false)
: this(parent, propertyName, constantPropertyName, guiText, string.Empty, isMandatory, isNormalMap)
{
}
public TextureProperty(BaseMaterialGUI parent, string propertyName, string constantPropertyName, string guiText, string toolTip, bool isMandatory = true, bool isNormalMap = false)
: base(parent, propertyName, guiText, toolTip, isMandatory)
{
m_TextureProperty = new TextureOneLineProperty(parent, propertyName, constantPropertyName, guiText, toolTip, isMandatory);
m_UvSetProperty = new ComboProperty(parent, propertyName + "UV", "UV Mapping", Enum.GetNames(typeof(UVMapping)), false);
m_LocalOrWorldProperty = new Property(parent, propertyName + "LocalOrWorld", "Local Space", "Whether Planar or Triplanar is using Local or World space.", false);
m_TilingProperty = new ComboProperty(parent, propertyName + "Tiling", "Tiling", Enum.GetNames(typeof(Tiling)), false);
m_ChannelProperty = new Property(parent, propertyName + "Channel", "Channel", false);
m_RemapProperty = new Property(parent, constantPropertyName + "Remap", "Remapping", "Defines the range to remap/scale the values in texture", false);
m_InvertRemapProperty = new Property(parent, constantPropertyName + "RemapInverted", "Invert Remapping", "Whether the mapping values are inverted.", false);
}
public override void OnFindProperty(MaterialProperty[] props)
{
base.OnFindProperty(props);
m_TextureProperty.OnFindProperty(props);
m_UvSetProperty.OnFindProperty(props);
m_LocalOrWorldProperty.OnFindProperty(props);
m_TilingProperty.OnFindProperty(props);
m_ChannelProperty.OnFindProperty(props);
m_RemapProperty.OnFindProperty(props);
m_InvertRemapProperty.OnFindProperty(props);
}
public override void OnGUI()
{
if (m_TextureProperty.IsValid
&& (IsVisible == null || IsVisible(this)))
{
Foldout = EditorGUILayout.Foldout(Foldout, PropertyText);
if (Foldout)
{
EditorGUI.indentLevel++;
m_TextureProperty.OnGUI();
if (m_TextureProperty.TextureValue != null)
{
m_UvSetProperty.OnGUI();
m_LocalOrWorldProperty.OnGUI();
m_TilingProperty.OnGUI();
m_ChannelProperty.OnGUI();
m_LocalOrWorldProperty.OnGUI();
if (m_RemapProperty.IsValid)
{
// Display the remap of texture values.
Vector2 remap = m_RemapProperty.VectorValue;
EditorGUI.BeginChangeCheck();
EditorGUILayout.MinMaxSlider(m_RemapProperty.PropertyText, ref remap.x, ref remap.y,
0.0f, 1.0f);
if (EditorGUI.EndChangeCheck())
{
m_RemapProperty.VectorValue = remap;
}
m_InvertRemapProperty.OnGUI();
}
}
EditorGUI.indentLevel--;
}
}
}
}
#endregion
}
}

11
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Editor/Material/StackLit/BaseMaterialUI.cs.meta


fileFormatVersion: 2
guid: 2a11a2741c48d9848aa375c84fbcab39
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

8
Tests/UTF_Core.meta


fileFormatVersion: 2
guid: b453f6a18bedf6f4da636bfee9a127c1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Tests/UTF_Suites_HDRP.meta


fileFormatVersion: 2
guid: 24ab35501ddd7644f8b34bc1cdd1d66a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Tests/UTF_Suites_HDRP/Resources.meta


fileFormatVersion: 2
guid: 79ceb5df81633174b83d79327403069e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

22
Tests/UTF_Suites_HDRP/Resources/HDRP_Build_Config.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: af86c82ed6c380b4ba6846797b102e25, type: 3}
m_Name: HDRP_Build_Config
m_EditorClassIdentifier:
nameOverride:
pathOverride:
enableScriptLogging: 0
buildOption: 1
buildTargets:
- nameOverride:
pathOverride:
platform: 5
graphicsApi: 2

8
Tests/UTF_Suites_HDRP/Resources/HDRP_Build_Config.asset.meta


fileFormatVersion: 2
guid: b17e86b59f0af9646a221986ba4614a3
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

47
Tests/UTF_Suites_HDRP/Resources/HDRP_Test_Settings.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 175be2e184a4936459215890cb4b9d93, type: 3}
m_Name: HDRP_Test_Settings
m_EditorClassIdentifier:
antiAliasingNames:
- Disabled
- 2x Multi Sampling
- 4x Multi Sampling
- 8x Multi Sampling
shadowCascadeNames:
- None
- Two Cascades
- Four Cascades
vSyncCountNames:
- Dont Sync
- Every V Blank
- Every Second V Sync
pixelLightCount: 4
anisotropicFiltering: 2
antiAliasing: 0
softParticles: 1
realtimeReflectionProbes: 1
billboardsFacingCameraPosition: 1
shadows: 2
shadowResolution: 2
shadowProjection: 1
shadowDistance: 150
shadowNearPlaneOffset: 3
shadowCascades: 2
shadowCascade2Split: 0.33
shadowCascade4Split: {x: 0.067, y: 0.2, z: 0.467}
blendWeights: 4
vSyncCount: 0
lodBias: 2
maximumLodLevel: 0
particleRaycastBudget: 4096
asyncUploadTimeSlice: 2
asyncUploadBufferSize: 4

8
Tests/UTF_Suites_HDRP/Resources/HDRP_Test_Settings.asset.meta


fileFormatVersion: 2
guid: 3364bf19a7d803045b80462f9399baad
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

324
Tests/UTF_Suites_HDRP/Resources/HDRP_Deferred.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 95285c6cacdfe25449799296c7d847ae, type: 3}
m_Name: HDRP_Deferred
m_EditorClassIdentifier:
suiteName: HDRPDeferred
isDebugSuite: 0
defaultTestSettings: {fileID: 0}
defaultRenderPipeline: {fileID: 11400000, guid: d7fe5f39d2c099a4ea1f1f610af309d7,
type: 2}
alternateSettings:
- renderPipeline: {fileID: 11400000, guid: e0b837a0b8013cb4380a2f1286170857, type: 2}
testSettings: {fileID: 0}
- renderPipeline: {fileID: 11400000, guid: ae88914339ad0504eaca3f858706b8ad, type: 2}
testSettings: {fileID: 0}
groups:
- groupName: 1xMaterials
renderPipelineOverride: {fileID: 0}
tests:
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1101_Unlit.unity
scene: {fileID: 102900000, guid: 7fe3f9e94b4355641ba1534c54d5c356, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1101_Unlit.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1102_Unlit_Distortion.unity
scene: {fileID: 102900000, guid: a6e4a81e1988f24459f57a881905a465, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1102_Unlit_Distortion.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1103_Unlit_Distortion_DepthTest.unity
scene: {fileID: 102900000, guid: 27d04b0368c7fef4eb423d76cc0e48dc, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1103_Unlit_Distortion_DepthTest.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1201_Lit_Features.unity
scene: {fileID: 102900000, guid: 51392325eef9416439dc126a37256e6f, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1201_Lit_Features.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1202_Lit_DoubleSideNormalMode.unity
scene: {fileID: 102900000, guid: 653861b0fa3627049a20abf379b1258f, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1202_Lit_DoubleSideNormalMode.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1203_Lit_Transparent.unity
scene: {fileID: 102900000, guid: e86a25d7e98b1c74199eaa8dbcc2cd01, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1203_Lit_Transparent.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1204_Lit_Transparent_Fog.unity
scene: {fileID: 102900000, guid: bc3f6030b835ecd4c800561f9ff1af15, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1204_Lit_Transparent_Fog.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1205_Lit_Transparent_Refraction.unity
scene: {fileID: 102900000, guid: 530aef5d08a1569479cc65b219b8f9fb, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1205_Lit_Transparent_Refraction.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1206_Lit_Transparent_Distortion.unity
scene: {fileID: 102900000, guid: fc3cc4c68d873e64ca12fcfc828d7ee4, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1206_Lit_Transparent_Distortion.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1207_Lit_Displacement.unity
scene: {fileID: 102900000, guid: ac4701d765fa26b4f83d2fb9ed6b3c08, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1207_Lit_Displacement.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1208_Lit_Displacement_POM.unity
scene: {fileID: 102900000, guid: 40bca98d8a50ec14182c423a91470550, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1208_Lit_Displacement_POM.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1209_Lit_Displacement_Vertex.unity
scene: {fileID: 102900000, guid: 54145926a6315654b9e70a75a4b050ef, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1209_Lit_Displacement_Vertex.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1210_Lit_BentNormal.unity
scene: {fileID: 102900000, guid: 5f5bca2466b2a1d48ae818180ef308fb, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1210_Lit_BentNormal.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1211_Lit_Details.unity
scene: {fileID: 102900000, guid: 722bdd4c5dac1f145acd795543fae598, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1211_Lit_Details.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1212_Lit_Emission.unity
scene: {fileID: 102900000, guid: f465136a9ac4cb1429a4a1761d07c3c3, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1212_Lit_Emission.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1301_SubSurfaceScattering.unity
scene: {fileID: 102900000, guid: 201c29a239df4c74ea9e1ab47082abea, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1301_SubSurfaceScattering.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1302_SSS_MaxRadius.unity
scene: {fileID: 102900000, guid: 0277520b19264c24eac3041bd22ae564, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1302_SSS_MaxRadius.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1303_SSS_Pre-Post.unity
scene: {fileID: 102900000, guid: 6f2bc3028f3daba46ab0447a3e25ebc6, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1303_SSS_Pre-Post.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- groupName: 2xLighting
renderPipelineOverride: {fileID: 0}
tests:
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2001_Dynamic_Directional.unity
scene: {fileID: 102900000, guid: 09baf18a7e1f6584f86675e6a2141c66, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2001_Dynamic_Directional.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2002_Dynamic_Mix.unity
scene: {fileID: 102900000, guid: bcbb964f739039045b7958a9b1489657, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2002_Dynamic_Mix.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2003_Light_Parameters.unity
scene: {fileID: 102900000, guid: ac9787fadf0b4ed4391bee6ba1d8e213, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2003_Light_Parameters.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2004_AnimatedCookie.unity
scene: {fileID: 102900000, guid: 9f03abfd8e9cc614c89458cbdb208e7c, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2004_AnimatedCookie.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2101_GI_Metapass.unity
scene: {fileID: 102900000, guid: 8747b43f8bcf2b44cbc3ece373da65a9, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2101_GI_Metapass.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2102_GI_Emission.unity
scene: {fileID: 102900000, guid: b8f49ca9a12abb4468116e9422139e63, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2102_GI_Emission.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2103_BakeMixed.unity
scene: {fileID: 102900000, guid: d8cfa4fd9319d2444b3bf6dd836ffe31, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2103_BakeMixed.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2201_ReflectionProbes_Priority.unity
scene: {fileID: 102900000, guid: d485acf0535eb4b42a9a3847f4a8274a, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2201_ReflectionProbes_Priority.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2202_ReflectionProbes_Volume.unity
scene: {fileID: 102900000, guid: 9b3132db666b3ae48aa17349ab100118, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2202_ReflectionProbes_Volume.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2203_PlanarProbes.unity
scene: {fileID: 102900000, guid: 359ded33a047fd540b5e19a98547f5e2, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2203_PlanarProbes.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2301_Shadow_Mask.unity
scene: {fileID: 102900000, guid: 1029947770f955b4290bbdd8b641f7f1, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2301_Shadow_Mask.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2401_Light_on_Tesselation.unity
scene: {fileID: 102900000, guid: 3f6529c22f7d2ca46814b2e7afd04ef9, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2401_Light_on_Tesselation.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- groupName: 3xDebugView
renderPipelineOverride: {fileID: 0}
tests:
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3001_DebugView.unity
scene: {fileID: 102900000, guid: 21522d96110c8dd41ab353d89fd740c3, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3001_DebugView.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3002_ObjectMotionVector.unity
scene: {fileID: 102900000, guid: 5fd66b494b9e057498e551fea7ab02fd, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3002_ObjectMotionVector.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3003_CameraMotionVector_TranslateX.unity
scene: {fileID: 102900000, guid: 32624e48cd276b5418513150e7abd682, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3003_CameraMotionVector_TranslateX.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3004_CameraMotionVector_TranslateY.unity
scene: {fileID: 102900000, guid: b8bed96a3181ffe49b8e54bc9a3c7687, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3004_CameraMotionVector_TranslateY.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3005_CameraMotionVector_TranslateZ.unity
scene: {fileID: 102900000, guid: 55881ec59ae8d414cb8a77aa120a45ed, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3005_CameraMotionVector_TranslateZ.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3006_CameraMotionVector_RotateX.unity
scene: {fileID: 102900000, guid: 0225322b58c79bb4d87afeb169e0d119, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3006_CameraMotionVector_RotateX.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3007_CameraMotionVector_RotateY.unity
scene: {fileID: 102900000, guid: 01e6660110220214782d0ebf364fe7c9, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3007_CameraMotionVector_RotateY.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3008_CameraMotionVector_RotateZ.unity
scene: {fileID: 102900000, guid: fabc53a9f87e8784580b4e75dc067ca3, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3008_CameraMotionVector_RotateZ.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3009_CameraMotionVector_FOV.unity
scene: {fileID: 102900000, guid: a5fb429214e9b2a4f8b3d258c0585630, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3009_CameraMotionVector_FOV.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- groupName: 9xOther
renderPipelineOverride: {fileID: 0}
tests:
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/9x_Other/9001_Decals.unity
scene: {fileID: 102900000, guid: a27cb5a638892574f99eb333bb3c7722, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/9x_Other/9001_Decals.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/9x_Other/9002_Deferred-and-Forward.unity
scene: {fileID: 102900000, guid: 7f93d4b757746d44a82005f71f597384, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/9x_Other/9002_Deferred-and-Forward.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
suiteVersion: 2

8
Tests/UTF_Suites_HDRP/Resources/HDRP_Deferred.asset.meta


fileFormatVersion: 2
guid: b661ce64dfb39f54295fcc127d461385
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

320
Tests/UTF_Suites_HDRP/Resources/HDRP_Forward.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 95285c6cacdfe25449799296c7d847ae, type: 3}
m_Name: HDRP_Forward
m_EditorClassIdentifier:
suiteName: HDRPForward
isDebugSuite: 0
defaultTestSettings: {fileID: 0}
defaultRenderPipeline: {fileID: 11400000, guid: d206727e1fcd98842b54b98db4dfce28,
type: 2}
alternateSettings: []
groups:
- groupName: 1xMaterials
renderPipelineOverride: {fileID: 0}
tests:
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1101_Unlit.unity
scene: {fileID: 102900000, guid: 7fe3f9e94b4355641ba1534c54d5c356, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1101_Unlit.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1102_Unlit_Distortion.unity
scene: {fileID: 102900000, guid: a6e4a81e1988f24459f57a881905a465, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1102_Unlit_Distortion.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1103_Unlit_Distortion_DepthTest.unity
scene: {fileID: 102900000, guid: 27d04b0368c7fef4eb423d76cc0e48dc, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1103_Unlit_Distortion_DepthTest.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1201_Lit_Features.unity
scene: {fileID: 102900000, guid: 51392325eef9416439dc126a37256e6f, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1201_Lit_Features.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1202_Lit_DoubleSideNormalMode.unity
scene: {fileID: 102900000, guid: 653861b0fa3627049a20abf379b1258f, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1202_Lit_DoubleSideNormalMode.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1203_Lit_Transparent.unity
scene: {fileID: 102900000, guid: e86a25d7e98b1c74199eaa8dbcc2cd01, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1203_Lit_Transparent.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1204_Lit_Transparent_Fog.unity
scene: {fileID: 102900000, guid: bc3f6030b835ecd4c800561f9ff1af15, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1204_Lit_Transparent_Fog.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1205_Lit_Transparent_Refraction.unity
scene: {fileID: 102900000, guid: 530aef5d08a1569479cc65b219b8f9fb, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1205_Lit_Transparent_Refraction.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1206_Lit_Transparent_Distortion.unity
scene: {fileID: 102900000, guid: fc3cc4c68d873e64ca12fcfc828d7ee4, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1206_Lit_Transparent_Distortion.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1207_Lit_Displacement.unity
scene: {fileID: 102900000, guid: ac4701d765fa26b4f83d2fb9ed6b3c08, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1207_Lit_Displacement.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1208_Lit_Displacement_POM.unity
scene: {fileID: 102900000, guid: 40bca98d8a50ec14182c423a91470550, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1208_Lit_Displacement_POM.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1209_Lit_Displacement_Vertex.unity
scene: {fileID: 102900000, guid: 54145926a6315654b9e70a75a4b050ef, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1209_Lit_Displacement_Vertex.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1210_Lit_BentNormal.unity
scene: {fileID: 102900000, guid: 5f5bca2466b2a1d48ae818180ef308fb, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1210_Lit_BentNormal.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1211_Lit_Details.unity
scene: {fileID: 102900000, guid: 722bdd4c5dac1f145acd795543fae598, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1211_Lit_Details.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1212_Lit_Emission.unity
scene: {fileID: 102900000, guid: f465136a9ac4cb1429a4a1761d07c3c3, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1212_Lit_Emission.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1301_SubSurfaceScattering.unity
scene: {fileID: 102900000, guid: 201c29a239df4c74ea9e1ab47082abea, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1301_SubSurfaceScattering.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1302_SSS_MaxRadius.unity
scene: {fileID: 102900000, guid: 0277520b19264c24eac3041bd22ae564, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1302_SSS_MaxRadius.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1303_SSS_Pre-Post.unity
scene: {fileID: 102900000, guid: 6f2bc3028f3daba46ab0447a3e25ebc6, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/1x_Materials/1303_SSS_Pre-Post.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- groupName: 2xLighting
renderPipelineOverride: {fileID: 0}
tests:
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2001_Dynamic_Directional.unity
scene: {fileID: 102900000, guid: 09baf18a7e1f6584f86675e6a2141c66, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2001_Dynamic_Directional.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2002_Dynamic_Mix.unity
scene: {fileID: 102900000, guid: bcbb964f739039045b7958a9b1489657, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2002_Dynamic_Mix.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2003_Light_Parameters.unity
scene: {fileID: 102900000, guid: ac9787fadf0b4ed4391bee6ba1d8e213, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2003_Light_Parameters.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2004_AnimatedCookie.unity
scene: {fileID: 102900000, guid: 9f03abfd8e9cc614c89458cbdb208e7c, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2004_AnimatedCookie.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2101_GI_Metapass.unity
scene: {fileID: 102900000, guid: 8747b43f8bcf2b44cbc3ece373da65a9, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2101_GI_Metapass.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2102_GI_Emission.unity
scene: {fileID: 102900000, guid: b8f49ca9a12abb4468116e9422139e63, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2102_GI_Emission.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2103_BakeMixed.unity
scene: {fileID: 102900000, guid: d8cfa4fd9319d2444b3bf6dd836ffe31, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2103_BakeMixed.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2201_ReflectionProbes_Priority.unity
scene: {fileID: 102900000, guid: d485acf0535eb4b42a9a3847f4a8274a, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2201_ReflectionProbes_Priority.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2202_ReflectionProbes_Volume.unity
scene: {fileID: 102900000, guid: 9b3132db666b3ae48aa17349ab100118, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2202_ReflectionProbes_Volume.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2203_PlanarProbes.unity
scene: {fileID: 102900000, guid: 359ded33a047fd540b5e19a98547f5e2, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2203_PlanarProbes.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2301_Shadow_Mask.unity
scene: {fileID: 102900000, guid: 1029947770f955b4290bbdd8b641f7f1, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2301_Shadow_Mask.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2401_Light_on_Tesselation.unity
scene: {fileID: 102900000, guid: 3f6529c22f7d2ca46814b2e7afd04ef9, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/2x_Lighting/2401_Light_on_Tesselation.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- groupName: 3xDebugView
renderPipelineOverride: {fileID: 0}
tests:
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3001_DebugView.unity
scene: {fileID: 102900000, guid: 21522d96110c8dd41ab353d89fd740c3, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3001_DebugView.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3002_ObjectMotionVector.unity
scene: {fileID: 102900000, guid: 5fd66b494b9e057498e551fea7ab02fd, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3002_ObjectMotionVector.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3003_CameraMotionVector_TranslateX.unity
scene: {fileID: 102900000, guid: 32624e48cd276b5418513150e7abd682, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3003_CameraMotionVector_TranslateX.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3004_CameraMotionVector_TranslateY.unity
scene: {fileID: 102900000, guid: b8bed96a3181ffe49b8e54bc9a3c7687, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3004_CameraMotionVector_TranslateY.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3005_CameraMotionVector_TranslateZ.unity
scene: {fileID: 102900000, guid: 55881ec59ae8d414cb8a77aa120a45ed, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3005_CameraMotionVector_TranslateZ.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3006_CameraMotionVector_RotateX.unity
scene: {fileID: 102900000, guid: 0225322b58c79bb4d87afeb169e0d119, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3006_CameraMotionVector_RotateX.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3007_CameraMotionVector_RotateY.unity
scene: {fileID: 102900000, guid: 01e6660110220214782d0ebf364fe7c9, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3007_CameraMotionVector_RotateY.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3008_CameraMotionVector_RotateZ.unity
scene: {fileID: 102900000, guid: fabc53a9f87e8784580b4e75dc067ca3, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3008_CameraMotionVector_RotateZ.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3009_CameraMotionVector_FOV.unity
scene: {fileID: 102900000, guid: a5fb429214e9b2a4f8b3d258c0585630, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/3x_DebugView/3009_CameraMotionVector_FOV.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
- groupName: 9xOther
renderPipelineOverride: {fileID: 0}
tests:
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/9x_Other/9001_Decals.unity
scene: {fileID: 102900000, guid: a27cb5a638892574f99eb333bb3c7722, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/9x_Other/9001_Decals.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 1
- name: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/9x_Other/9002_Deferred-and-Forward.unity
scene: {fileID: 102900000, guid: 7f93d4b757746d44a82005f71f597384, type: 3}
scenePath: Assets/SRP/Tests/UTF_Tests_HDRP/Scenes/9x_Other/9002_Deferred-and-Forward.unity
testTypes: 2
minimumUnityVersion: 4
platforms: -1
run: 0
suiteVersion: 2

8
Tests/UTF_Suites_HDRP/Resources/HDRP_Forward.asset.meta


fileFormatVersion: 2
guid: eb70515d30e0d3f41970553df11d5ae5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

10
ImageTemplates/HDRenderPipeline.meta


fileFormatVersion: 2
guid: 2c67fd3f469d5e1498d4ccc25b7bb86a
folderAsset: yes
timeCreated: 1504171941
licenseType: Pro
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
ScriptableRenderPipeline/HDRenderPipeline/HDRP/Material/PreIntegratedFGD/Resources.meta


fileFormatVersion: 2
guid: ce581725fe970e14abbd599942a16779
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

10
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials/Smoothness Variation.meta


fileFormatVersion: 2
guid: 8fc76aee734cf894289dcb153059f2e0
folderAsset: yes
timeCreated: 1508422884
licenseType: Pro
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

10
Tests/GraphicsTests/RenderPipeline/HDRenderPipeline/CommonAssets/Materials/Unlit_Black.mat.meta


fileFormatVersion: 2
guid: 55bee4340e0c9d349b90f5bc9b9c16a4
timeCreated: 1508510599
licenseType: Pro
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

部分文件因为文件数量过多而无法显示

正在加载...
取消
保存