浏览代码

Merge pull request #1450 from Unity-Technologies/HDRP-Reorganize-folder-and-files

HDRP: Reorganize folder and files
/main
GitHub 7 年前
当前提交
aad9d81b
共有 88 个文件被更改,包括 603 次插入671 次删除
  1. 13
      com.unity.render-pipelines.core/CoreRP/Utilities/CoreUtils.cs
  2. 2
      com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPreprocessShaders.cs.meta
  3. 4
      com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPreprocessShaders.cs
  4. 2
      com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPPreprocessBuild.cs.meta
  5. 2
      com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPPreprocessBuild.cs
  6. 2
      com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors/NormalMapAverageLengthTexturePostprocessor.cs.meta
  7. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors.meta
  8. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors.meta
  9. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline.meta
  10. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipelineResources.meta
  11. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders.meta
  12. 8
      com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings.meta
  13. 316
      com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineMenuItems.cs
  14. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/Settings.meta
  15. 201
      com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders/UpgradeMenuItem.cs
  16. 11
      com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders/UpgradeMenuItem.cs.meta
  17. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/EditorRenderPipelineResources.meta
  18. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/RenderLoopSettings.meta
  19. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/BuildPlayer.meta
  20. 8
      com.unity.render-pipelines.high-definition/HDRP/Editor/AssetPostProcessors.meta
  21. 625
      com.unity.render-pipelines.high-definition/HDRP/Editor/HDRenderPipelineMenuItems.cs
  22. 8
      com.unity.render-pipelines.high-definition/HDRP/Decal.meta
  23. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipelineResources
  24. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors
  25. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPreprocessShaders.cs.meta
  26. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPreprocessShaders.cs
  27. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPPreprocessBuild.cs.meta
  28. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPPreprocessBuild.cs
  29. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors
  30. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors/NormalMapAverageLengthTexturePostprocessor.cs.meta
  31. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors/NormalMapAverageLengthTexturePostprocessor.cs
  32. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders/UpgradeStandardShaderMaterials.cs.meta
  33. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineMenuItems.cs.meta
  34. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDAssetFactory.cs.meta
  35. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDEditorUtils.cs.meta
  36. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDBaseEditor.cs
  37. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDBaseEditor.cs.meta
  38. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDEditorCLI.cs
  39. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDEditorCLI.cs.meta
  40. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/cli.ps1
  41. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/cli.ps1.meta
  42. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders/UpgradeStandardShaderMaterials.cs
  43. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDEditorUtils.cs
  44. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDShaderIncludePaths.cs
  45. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDShaderIncludePaths.cs.meta
  46. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/BaseUI.cs
  47. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/BaseUI.cs.meta
  48. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/Settings
  49. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDAssetFactory.cs
  50. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings/RenderPipelineSettings.cs.meta
  51. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings/FrameSettings.cs.meta
  52. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings/FrameSettings.cs
  53. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings/RenderPipelineSettings.cs
  54. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDUtils.cs.meta
  55. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDUtils.cs
  56. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDStringConstants.cs.meta
  57. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderQueue.cs.meta
  58. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderQueue.cs
  59. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipelineAsset.cs.meta
  60. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipeline.cs.meta
  61. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDCustomSamplerId.cs.meta
  62. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDCustomSamplerId.cs
  63. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/SceneViewDrawMode.cs
  64. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/SceneViewDrawMode.cs.meta
  65. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/MRTBufferManager.cs
  66. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/MRTBufferManager.cs.meta
  67. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDStringConstants.cs
  68. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Texture2DAtlas.cs
  69. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Texture2DAtlas.cs.meta
  70. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipeline.cs
  71. 0
      /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipelineAsset.cs
  72. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineEditor.cs.meta
  73. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineUI.cs
  74. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineUI.cs.meta
  75. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineEditor.cs
  76. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/Material/Decal/DecalMenuItems.cs.meta
  77. 0
      /com.unity.render-pipelines.high-definition/HDRP/Editor/Material/Decal/DecalMenuItems.cs
  78. 0
      /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalProjectorComponent.cs.meta
  79. 0
      /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalSystem.cs.meta
  80. 0
      /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/GlobalDecalSettings.cs.meta
  81. 0
      /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalProjectorComponent.cs
  82. 0
      /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalSystem.cs
  83. 0
      /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/GlobalDecalSettings.cs

13
com.unity.render-pipelines.core/CoreRP/Utilities/CoreUtils.cs


return fogEnable;
}
static public void CheckOutFile(bool VSCEnabled, UnityObject mat)
{
if (VSCEnabled)
{
UnityEditor.VersionControl.Task task = UnityEditor.VersionControl.Provider.Checkout(mat, UnityEditor.VersionControl.CheckoutMode.Both);
if (!task.success)
{
Debug.Log(task.text + " " + task.resultCode);
}
}
}
}
}

2
com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPreprocessShaders.cs.meta


fileFormatVersion: 2
guid: 168f8e50628e857489eb62f41d9c911f
guid: d342206cb3c614b4fa4caee7fb269b93
MonoImporter:
externalObjects: {}
serializedVersion: 2

4
com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPreprocessShaders.cs


namespace UnityEditor.Experimental.Rendering.HDPipeline
{
class HDRPVariantStripper : IPreprocessShaders
class HDRPreprocessShaders : IPreprocessShaders
{
// returns true if the variant should be stripped.
delegate bool VariantStrippingFunc(Shader shader, ShaderSnippetData snippet, ShaderCompilerData inputData);

//ShaderKeyword m_FeatureSSS;
public HDRPVariantStripper()
public HDRPreprocessShaders()
{
// TODO: Grab correct configuration/quality asset.
HDRenderPipeline hdPipeline = RenderPipelineManager.currentPipeline as HDRenderPipeline;

2
com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPPreprocessBuild.cs.meta


fileFormatVersion: 2
guid: 2ae263b0b434c7e4d9229fde8f6096c5
guid: 0c6c205acc48bbd4c9cbf70d66fa9ffc
MonoImporter:
externalObjects: {}
serializedVersion: 2

2
com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPPreprocessBuild.cs


using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.Rendering.HDPipeline;
class HDRPCustomBuildProcessor : IPreprocessBuildWithReport
class HDRPPreprocessBuild : IPreprocessBuildWithReport
{
public int callbackOrder { get { return 0; } }

2
com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors/NormalMapAverageLengthTexturePostprocessor.cs.meta


fileFormatVersion: 2
guid: c7467d803a5cf8c479b64fbdac53aa41
guid: 3ceae5765b6bbee4fb4f76acdaae9130
MonoImporter:
externalObjects: {}
serializedVersion: 2

8
com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipelineResources.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings.meta


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

316
com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineMenuItems.cs


using System;
using System.IO;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.Rendering.HDPipeline;
using UnityEngine.SceneManagement;
using UnityEditor.SceneManagement;
namespace UnityEditor.Experimental.Rendering.HDPipeline
{
using UnityObject = UnityEngine.Object;
public class HDRenderPipelineMenuItems
{
// Function used only to check performance of data with and without tessellation
[MenuItem("Internal/HDRenderPipeline/Test/Remove tessellation materials (not reversible)")]
static void RemoveTessellationMaterials()
{
var materials = Resources.FindObjectsOfTypeAll<Material>();
var litShader = Shader.Find("HDRenderPipeline/Lit");
var layeredLitShader = Shader.Find("HDRenderPipeline/LayeredLit");
foreach (var mat in materials)
{
if (mat.shader.name == "HDRenderPipeline/LitTessellation")
{
mat.shader = litShader;
// We remove all keyword already present
CoreEditorUtils.RemoveMaterialKeywords(mat);
LitGUI.SetupMaterialKeywordsAndPass(mat);
EditorUtility.SetDirty(mat);
}
else if (mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
mat.shader = layeredLitShader;
// We remove all keyword already present
CoreEditorUtils.RemoveMaterialKeywords(mat);
LayeredLitGUI.SetupMaterialKeywordsAndPass(mat);
EditorUtility.SetDirty(mat);
}
}
}
[MenuItem("Edit/Render Pipeline/Export Sky to Image", priority = CoreUtils.editMenuPriority3)]
static void ExportSkyToImage()
{
var renderpipeline = RenderPipelineManager.currentPipeline as HDRenderPipeline;
if (renderpipeline == null)
{
Debug.LogError("HDRenderPipeline is not instantiated.");
return;
}
var result = renderpipeline.ExportSkyToTexture();
if (result == null)
return;
// Encode texture into PNG
byte[] bytes = result.EncodeToEXR(Texture2D.EXRFlags.CompressZIP);
UnityObject.DestroyImmediate(result);
string assetPath = EditorUtility.SaveFilePanel("Export Sky", "Assets", "SkyExport", "exr");
if (!string.IsNullOrEmpty(assetPath))
{
File.WriteAllBytes(assetPath, bytes);
AssetDatabase.Refresh();
}
}
[MenuItem("GameObject/Rendering/Scene Settings", priority = CoreUtils.gameObjectMenuPriority)]
static void CreateSceneSettingsGameObject(MenuCommand menuCommand)
{
var parent = menuCommand.context as GameObject;
var sceneSettings = CoreEditorUtils.CreateGameObject(parent, "Scene Settings");
GameObjectUtility.SetParentAndAlign(sceneSettings, menuCommand.context as GameObject);
Undo.RegisterCreatedObjectUndo(sceneSettings, "Create " + sceneSettings.name);
Selection.activeObject = sceneSettings;
var profile = VolumeProfileFactory.CreateVolumeProfile(sceneSettings.scene, "Scene Settings");
VolumeProfileFactory.CreateVolumeComponent<HDShadowSettings>(profile, true, false);
var visualEnv = VolumeProfileFactory.CreateVolumeComponent<VisualEnvironment>(profile, true, false);
visualEnv.skyType.value = SkySettings.GetUniqueID<ProceduralSky>();
visualEnv.fogType.value = FogType.Exponential;
VolumeProfileFactory.CreateVolumeComponent<ProceduralSky>(profile, true, false);
VolumeProfileFactory.CreateVolumeComponent<ExponentialFog>(profile, true, true);
var volume = sceneSettings.AddComponent<Volume>();
volume.isGlobal = true;
volume.sharedProfile = profile;
var bakingSky = sceneSettings.AddComponent<BakingSky>();
bakingSky.profile = volume.sharedProfile;
bakingSky.bakingSkyUniqueID = SkySettings.GetUniqueID<ProceduralSky>();
}
class DoCreateNewAsset<TAssetType> : ProjectWindowCallback.EndNameEditAction where TAssetType : ScriptableObject
{
public override void Action(int instanceId, string pathName, string resourceFile)
{
var newAsset = CreateInstance<TAssetType>();
newAsset.name = Path.GetFileName(pathName);
AssetDatabase.CreateAsset(newAsset, pathName);
ProjectWindowUtil.ShowCreatedAsset(newAsset);
}
}
class DoCreateNewAssetDiffusionProfileSettings : DoCreateNewAsset<DiffusionProfileSettings> { }
[MenuItem("Assets/Create/Rendering/Diffusion profile Settings", priority = CoreUtils.assetCreateMenuPriority2)]
static void MenuCreateDiffusionProfile()
{
var icon = EditorGUIUtility.FindTexture("ScriptableObject Icon");
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<DoCreateNewAssetDiffusionProfileSettings>(), "New Diffusion Profile Settings.asset", icon, null);
}
[MenuItem("Internal/HDRenderPipeline/Add \"Additional Light-shadow Data\" (if not present)")]
static void AddAdditionalLightData()
{
var lights = UnityObject.FindObjectsOfType(typeof(Light)) as Light[];
foreach (var light in lights)
{
// Do not add a component if there already is one.
if (light.GetComponent<HDAdditionalLightData>() == null)
light.gameObject.AddComponent<HDAdditionalLightData>();
if (light.GetComponent<AdditionalShadowData>() == null)
{
AdditionalShadowData shadowData = light.gameObject.AddComponent<AdditionalShadowData>();
HDAdditionalShadowData.InitDefaultHDAdditionalShadowData(shadowData);
}
}
}
[MenuItem("Internal/HDRenderPipeline/Add \"Additional Camera Data\" (if not present)")]
static void AddAdditionalCameraData()
{
var cameras = UnityObject.FindObjectsOfType(typeof(Camera)) as Camera[];
foreach (var camera in cameras)
{
// Do not add a component if there already is one.
if (camera.GetComponent<HDAdditionalCameraData>() == null)
camera.gameObject.AddComponent<HDAdditionalCameraData>();
}
}
// This script is a helper for the artists to re-synchronize all layered materials
[MenuItem("Internal/HDRenderPipeline/Synchronize all Layered materials")]
static void SynchronizeAllLayeredMaterial()
{
var materials = Resources.FindObjectsOfTypeAll<Material>();
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
foreach (var mat in materials)
{
if (mat.shader.name == "HDRenderPipeline/LayeredLit" || mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
CoreUtils.CheckOutFile(VSCEnabled, mat);
LayeredLitGUI.SynchronizeAllLayers(mat);
EditorUtility.SetDirty(mat);
}
}
}
// The goal of this script is to help maintenance of data that have already been produced but need to update to the latest shader code change.
// In case the shader code have change and the inspector have been update with new kind of keywords we need to regenerate the set of keywords use by the material.
// This script will remove all keyword of a material and trigger the inspector that will re-setup all the used keywords.
// It require that the inspector of the material have a static function call that update all keyword based on material properties.
[MenuItem("Edit/Render Pipeline/Reset All Loaded High Definition Materials Keywords", priority = CoreUtils.editMenuPriority3)]
static void ResetAllMaterialKeywords()
{
try
{
ResetAllLoadedMaterialKeywords(string.Empty, 1, 0);
}
finally
{
EditorUtility.ClearProgressBar();
}
}
// Don't expose, ResetAllMaterialKeywordsInProjectAndScenes include it anyway
//[MenuItem("Edit/Render Pipeline/Reset All Material Asset's Keywords (Materials in Project)", priority = CoreUtils.editMenuPriority3)]
static void ResetAllMaterialAssetsKeywords()
{
try
{
ResetAllMaterialAssetsKeywords(1, 0);
}
finally
{
EditorUtility.ClearProgressBar();
}
}
[MenuItem("Edit/Render Pipeline/Reset All Project and Scene High Definition Materials Keywords", priority = CoreUtils.editMenuPriority3)]
static void ResetAllMaterialKeywordsInProjectAndScenes()
{
var openedScenes = new string[EditorSceneManager.loadedSceneCount];
for (var i = 0; i < openedScenes.Length; ++i)
openedScenes[i] = SceneManager.GetSceneAt(i).path;
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
try
{
var scenes = AssetDatabase.FindAssets("t:Scene");
var scale = 1f / Mathf.Max(1, scenes.Length);
for (var i = 0; i < scenes.Length; ++i)
{
var scenePath = AssetDatabase.GUIDToAssetPath(scenes[i]);
var sceneAsset = AssetDatabase.LoadAssetAtPath<SceneAsset>(scenePath);
CoreUtils.CheckOutFile(VSCEnabled, sceneAsset);
EditorSceneManager.OpenScene(scenePath);
var sceneName = Path.GetFileNameWithoutExtension(scenePath);
var description = string.Format("{0} {1}/{2} - ", sceneName, i + 1, scenes.Length);
if (ResetAllLoadedMaterialKeywords(description, scale, scale * i))
{
EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());
}
}
ResetAllMaterialAssetsKeywords(scale, scale * (scenes.Length - 1));
}
finally
{
EditorUtility.ClearProgressBar();
if (openedScenes.Length > 0)
{
EditorSceneManager.OpenScene(openedScenes[0]);
for (var i = 1; i < openedScenes.Length; i++)
EditorSceneManager.OpenScene(openedScenes[i], OpenSceneMode.Additive);
}
}
}
static void ResetAllMaterialAssetsKeywords(float progressScale, float progressOffset)
{
var matIds = AssetDatabase.FindAssets("t:Material");
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
for (int i = 0, length = matIds.Length; i < length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(matIds[i]);
var mat = AssetDatabase.LoadAssetAtPath<Material>(path);
EditorUtility.DisplayProgressBar(
"Setup material asset's Keywords...",
string.Format("{0} / {1} materials cleaned.", i, length),
(i / (float)(length - 1)) * progressScale + progressOffset);
CoreUtils.CheckOutFile(VSCEnabled, mat);
var h = Debug.unityLogger.logHandler;
Debug.unityLogger.logHandler = new UnityContextualLogHandler(mat);
HDEditorUtils.ResetMaterialKeywords(mat);
Debug.unityLogger.logHandler = h;
}
}
static bool ResetAllLoadedMaterialKeywords(string descriptionPrefix, float progressScale, float progressOffset)
{
var materials = Resources.FindObjectsOfTypeAll<Material>();
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
bool anyMaterialDirty = false; // Will be true if any material is dirty.
for (int i = 0, length = materials.Length; i < length; i++)
{
EditorUtility.DisplayProgressBar(
"Setup materials Keywords...",
string.Format("{0}{1} / {2} materials cleaned.", descriptionPrefix, i, length),
(i / (float)(length - 1)) * progressScale + progressOffset);
CoreUtils.CheckOutFile(VSCEnabled, materials[i]);
if (HDEditorUtils.ResetMaterialKeywords(materials[i]))
{
anyMaterialDirty = true;
}
}
return anyMaterialDirty;
}
class UnityContextualLogHandler : ILogHandler
{
UnityObject m_Context;
static readonly ILogHandler k_DefaultLogHandler = Debug.unityLogger.logHandler;
public UnityContextualLogHandler(UnityObject context)
{
m_Context = context;
}
public void LogFormat(LogType logType, UnityObject context, string format, params object[] args)
{
k_DefaultLogHandler.LogFormat(LogType.Log, m_Context, "Context: {0} ({1})", m_Context, AssetDatabase.GetAssetPath(m_Context));
k_DefaultLogHandler.LogFormat(logType, context, format, args);
}
public void LogException(Exception exception, UnityObject context)
{
k_DefaultLogHandler.LogFormat(LogType.Log, m_Context, "Context: {0} ({1})", m_Context, AssetDatabase.GetAssetPath(m_Context));
k_DefaultLogHandler.LogException(exception, context);
}
}
}
}

8
com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/Settings.meta


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

201
com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders/UpgradeMenuItem.cs


using System.IO;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.Rendering.HDPipeline;
using UnityEngine.SceneManagement;
using UnityEditor.SceneManagement;
namespace UnityEditor.Experimental.Rendering.HDPipeline
{
public class UpgradeMenuItems
{
//[MenuItem("Internal/HDRenderPipeline/Upgrade Scene Light Intensity to physical light unit", priority = CoreUtils.editMenuPriority2)]
static void UpgradeLightsPLU()
{
Light[] lights = Resources.FindObjectsOfTypeAll<Light>();
foreach (var l in lights)
{
var add = l.GetComponent<HDAdditionalLightData>();
if (add == null)
{
continue;
}
// We only need to update the new intensity parameters on additional data, no need to change intensity
if (add.lightTypeExtent == LightTypeExtent.Punctual)
{
switch (l.type)
{
case LightType.Point:
add.punctualIntensity = l.intensity / LightUtils.ConvertPointLightIntensity(1.0f);
break;
case LightType.Spot:
add.punctualIntensity = l.intensity / LightUtils.ConvertPointLightIntensity(1.0f);
break;
case LightType.Directional:
add.directionalIntensity = l.intensity;
break;
}
}
else if (add.lightTypeExtent == LightTypeExtent.Rectangle)
{
add.areaIntensity = l.intensity / LightUtils.ConvertRectLightIntensity(1.0f, add.shapeWidth, add.shapeHeight);
}
else if (add.lightTypeExtent == LightTypeExtent.Line)
{
add.areaIntensity = l.intensity / LightUtils.CalculateLineLightIntensity(1.0f, add.shapeWidth);
}
}
var scene = SceneManager.GetActiveScene();
EditorSceneManager.MarkSceneDirty(scene);
}
//[MenuItem("Internal/HDRenderPipeline/Update/Update material for subsurface")]
static void UpdateMaterialForSubsurface()
{
try
{
var matIds = AssetDatabase.FindAssets("t:Material");
for (int i = 0, length = matIds.Length; i < length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(matIds[i]);
var mat = AssetDatabase.LoadAssetAtPath<Material>(path);
EditorUtility.DisplayProgressBar(
"Setup materials Keywords...",
string.Format("{0} / {1} materials subsurface updated.", i, length),
i / (float)(length - 1));
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
if (mat.shader.name == "HDRenderPipeline/LitTessellation" ||
mat.shader.name == "HDRenderPipeline/Lit" ||
mat.shader.name == "HDRenderPipeline/LayeredLit" ||
mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
float materialID = mat.GetInt("_MaterialID");
if (materialID != 0.0)
continue;
if (mat.HasProperty("_SSSAndTransmissionType"))
{
CoreUtils.CheckOutFile(VSCEnabled, mat);
int materialSSSAndTransmissionID = mat.GetInt("_SSSAndTransmissionType");
// Both;, SSS only, Transmission only
if (materialSSSAndTransmissionID == 2.0)
{
mat.SetInt("_MaterialID", 5);
}
else
{
if (materialSSSAndTransmissionID == 0.0)
mat.SetFloat("_TransmissionEnable", 1.0f);
else
mat.SetFloat("_TransmissionEnable", 0.0f);
}
EditorUtility.SetDirty(mat);
}
}
}
}
finally
{
EditorUtility.ClearProgressBar();
}
}
//[MenuItem("Internal/HDRenderPipeline/Update/Update Height Maps parametrization")]
static void UpdateHeightMapParametrization()
{
try
{
var matIds = AssetDatabase.FindAssets("t:Material");
for (int i = 0, length = matIds.Length; i < length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(matIds[i]);
var mat = AssetDatabase.LoadAssetAtPath<Material>(path);
EditorUtility.DisplayProgressBar(
"Updating Materials...",
string.Format("{0} / {1} materials updated.", i, length),
i / (float)(length - 1));
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
if (mat.shader.name == "HDRenderPipeline/LitTessellation" ||
mat.shader.name == "HDRenderPipeline/Lit")
{
// Need only test one of the new properties
if (mat.HasProperty("_HeightPoMAmplitude"))
{
CoreUtils.CheckOutFile(VSCEnabled, mat);
float valueMax = mat.GetFloat("_HeightMax");
float valueMin = mat.GetFloat("_HeightMin");
float center = mat.GetFloat("_HeightCenter");
float amplitude = valueMax - valueMin;
mat.SetInt("_HeightMapParametrization", 1);
mat.SetFloat("_HeightPoMAmplitude", amplitude);
mat.SetFloat("_HeightTessAmplitude", amplitude);
mat.SetFloat("_HeightOffset", 0.0f);
mat.SetFloat("_HeightTessCenter", center);
BaseLitGUI.DisplacementMode displaceMode = (BaseLitGUI.DisplacementMode)mat.GetInt("_DisplacementMode");
if (displaceMode == BaseLitGUI.DisplacementMode.Pixel)
{
mat.SetFloat("_HeightCenter", 1.0f); // With PoM this is always 1.0f. We set it here to avoid having to open the UI to update it.
}
EditorUtility.SetDirty(mat);
}
}
else if (mat.shader.name == "HDRenderPipeline/LayeredLit" ||
mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
int numLayer = (int)mat.GetFloat("_LayerCount");
if (mat.HasProperty("_HeightPoMAmplitude0"))
{
CoreUtils.CheckOutFile(VSCEnabled, mat);
for (int x = 0; x < numLayer; ++x)
{
float valueMax = mat.GetFloat("_HeightMax" + x);
float valueMin = mat.GetFloat("_HeightMin" + x);
float center = mat.GetFloat("_HeightCenter" + x);
float amplitude = valueMax - valueMin;
mat.SetInt("_HeightMapParametrization" + x, 1);
mat.SetFloat("_HeightPoMAmplitude" + x, amplitude);
mat.SetFloat("_HeightTessAmplitude" + x, amplitude);
mat.SetFloat("_HeightOffset" + x, 0.0f);
mat.SetFloat("_HeightTessCenter" + x, center);
BaseLitGUI.DisplacementMode displaceMode = (BaseLitGUI.DisplacementMode)mat.GetInt("_DisplacementMode");
if (displaceMode == BaseLitGUI.DisplacementMode.Pixel)
{
mat.SetFloat("_HeightCenter" + x, 1.0f); // With PoM this is always 1.0f. We set it here to avoid having to open the UI to update it.
}
}
EditorUtility.SetDirty(mat);
}
}
}
}
finally
{
EditorUtility.ClearProgressBar();
}
}
}
}

11
com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders/UpgradeMenuItem.cs.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/Editor/EditorRenderPipelineResources.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/Editor/RenderLoopSettings.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/Editor/BuildPlayer.meta


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

8
com.unity.render-pipelines.high-definition/HDRP/Editor/AssetPostProcessors.meta


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

625
com.unity.render-pipelines.high-definition/HDRP/Editor/HDRenderPipelineMenuItems.cs


using System;
using System.IO;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.Experimental.Rendering;
using UnityEngine.Experimental.Rendering.HDPipeline;
using UnityEngine.SceneManagement;
namespace UnityEditor.Experimental.Rendering.HDPipeline
{
using UnityObject = UnityEngine.Object;
public class HDRenderPipelineMenuItems
{
[MenuItem("Internal/HDRenderPipeline/Upgrade Scene Light Intensity to physical light unit", priority = CoreUtils.editMenuPriority2)]
static void UpgradeLightsPLU()
{
Light[] lights = Resources.FindObjectsOfTypeAll<Light>();
foreach (var l in lights)
{
var add = l.GetComponent<HDAdditionalLightData>();
if (add == null)
{
continue;
}
// We only need to update the new intensity parameters on additional data, no need to change intensity
if (add.lightTypeExtent == LightTypeExtent.Punctual)
{
switch (l.type)
{
case LightType.Point:
add.punctualIntensity = l.intensity / LightUtils.ConvertPointLightIntensity(1.0f);
break;
case LightType.Spot:
add.punctualIntensity = l.intensity / LightUtils.ConvertPointLightIntensity(1.0f);
break;
case LightType.Directional:
add.directionalIntensity = l.intensity;
break;
}
}
else if (add.lightTypeExtent == LightTypeExtent.Rectangle)
{
add.areaIntensity = l.intensity / LightUtils.ConvertRectLightIntensity(1.0f, add.shapeWidth, add.shapeHeight);
}
else if (add.lightTypeExtent == LightTypeExtent.Line)
{
add.areaIntensity = l.intensity / LightUtils.CalculateLineLightIntensity(1.0f, add.shapeWidth);
}
}
var scene = SceneManager.GetActiveScene();
EditorSceneManager.MarkSceneDirty(scene);
}
[MenuItem("Internal/HDRenderPipeline/Add \"Additional Light-shadow Data\" (if not present)")]
static void AddAdditionalLightData()
{
var lights = UnityObject.FindObjectsOfType(typeof(Light)) as Light[];
foreach (var light in lights)
{
// Do not add a component if there already is one.
if (light.GetComponent<HDAdditionalLightData>() == null)
light.gameObject.AddComponent<HDAdditionalLightData>();
if (light.GetComponent<AdditionalShadowData>() == null)
{
AdditionalShadowData shadowData = light.gameObject.AddComponent<AdditionalShadowData>();
HDAdditionalShadowData.InitDefaultHDAdditionalShadowData(shadowData);
}
}
}
[MenuItem("Internal/HDRenderPipeline/Add \"Additional Camera Data\" (if not present)")]
static void AddAdditionalCameraData()
{
var cameras = UnityObject.FindObjectsOfType(typeof(Camera)) as Camera[];
foreach (var camera in cameras)
{
// Do not add a component if there already is one.
if (camera.GetComponent<HDAdditionalCameraData>() == null)
camera.gameObject.AddComponent<HDAdditionalCameraData>();
}
}
static void CheckOutFile(bool VSCEnabled, UnityObject mat)
{
if (VSCEnabled)
{
UnityEditor.VersionControl.Task task = UnityEditor.VersionControl.Provider.Checkout(mat, UnityEditor.VersionControl.CheckoutMode.Both);
if (!task.success)
{
Debug.Log(task.text + " " + task.resultCode);
}
}
}
// This script is a helper for the artists to re-synchronize all layered materials
[MenuItem("Internal/HDRenderPipeline/Synchronize all Layered materials")]
static void SynchronizeAllLayeredMaterial()
{
var materials = Resources.FindObjectsOfTypeAll<Material>();
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
foreach (var mat in materials)
{
if (mat.shader.name == "HDRenderPipeline/LayeredLit" || mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
CheckOutFile(VSCEnabled, mat);
LayeredLitGUI.SynchronizeAllLayers(mat);
EditorUtility.SetDirty(mat);
}
}
}
// The goal of this script is to help maintenance of data that have already been produced but need to update to the latest shader code change.
// In case the shader code have change and the inspector have been update with new kind of keywords we need to regenerate the set of keywords use by the material.
// This script will remove all keyword of a material and trigger the inspector that will re-setup all the used keywords.
// It require that the inspector of the material have a static function call that update all keyword based on material properties.
[MenuItem("Edit/Render Pipeline/Reset All Loaded High Definition Materials Keywords", priority = CoreUtils.editMenuPriority3)]
static void ResetAllMaterialKeywords()
{
try
{
ResetAllLoadedMaterialKeywords(string.Empty, 1, 0);
}
finally
{
EditorUtility.ClearProgressBar();
}
}
// Don't expose, ResetAllMaterialKeywordsInProjectAndScenes include it anyway
//[MenuItem("Edit/Render Pipeline/Reset All Material Asset's Keywords (Materials in Project)", priority = CoreUtils.editMenuPriority3)]
static void ResetAllMaterialAssetsKeywords()
{
try
{
ResetAllMaterialAssetsKeywords(1, 0);
}
finally
{
EditorUtility.ClearProgressBar();
}
}
[MenuItem("Edit/Render Pipeline/Reset All Project and Scene High Definition Materials Keywords", priority = CoreUtils.editMenuPriority3)]
static void ResetAllMaterialKeywordsInProjectAndScenes()
{
var openedScenes = new string[EditorSceneManager.loadedSceneCount];
for (var i = 0; i < openedScenes.Length; ++i)
openedScenes[i] = SceneManager.GetSceneAt(i).path;
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
try
{
var scenes = AssetDatabase.FindAssets("t:Scene");
var scale = 1f / Mathf.Max(1, scenes.Length);
for (var i = 0; i < scenes.Length; ++i)
{
var scenePath = AssetDatabase.GUIDToAssetPath(scenes[i]);
var sceneAsset = AssetDatabase.LoadAssetAtPath<SceneAsset>(scenePath);
CheckOutFile(VSCEnabled, sceneAsset);
EditorSceneManager.OpenScene(scenePath);
var sceneName = Path.GetFileNameWithoutExtension(scenePath);
var description = string.Format("{0} {1}/{2} - ", sceneName, i + 1, scenes.Length);
if (ResetAllLoadedMaterialKeywords(description, scale, scale * i))
{
EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());
}
}
ResetAllMaterialAssetsKeywords(scale, scale * (scenes.Length - 1));
}
finally
{
EditorUtility.ClearProgressBar();
if (openedScenes.Length > 0)
{
EditorSceneManager.OpenScene(openedScenes[0]);
for (var i = 1; i < openedScenes.Length; i++)
EditorSceneManager.OpenScene(openedScenes[i], OpenSceneMode.Additive);
}
}
}
[MenuItem("Internal/HDRenderPipeline/Update/Update diffusion profile")]
static void UpdateDiffusionProfile()
{
var matIds = AssetDatabase.FindAssets("t:DiffusionProfileSettings");
for (int i = 0, length = matIds.Length; i < length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(matIds[i]);
var diffusionProfileSettings = AssetDatabase.LoadAssetAtPath<DiffusionProfileSettings>(path);
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
CheckOutFile(VSCEnabled, diffusionProfileSettings);
var profiles = diffusionProfileSettings.profiles;
for (int j = 0; j < profiles.Length; j++)
{
if ((uint)profiles[j].transmissionMode == 2)
{
profiles[j].transmissionMode = (DiffusionProfile.TransmissionMode) 0;
}
}
EditorUtility.SetDirty(diffusionProfileSettings);
}
}
[MenuItem("Internal/HDRenderPipeline/Update/Update material for clear coat")]
static void UpdateMaterialForClearCoat()
{
try
{
var matIds = AssetDatabase.FindAssets("t:Material");
for (int i = 0, length = matIds.Length; i < length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(matIds[i]);
var mat = AssetDatabase.LoadAssetAtPath<Material>(path);
EditorUtility.DisplayProgressBar(
"Setup materials Keywords...",
string.Format("{0} / {1} materials clearcoat updated.", i, length),
i / (float)(length - 1));
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
if (mat.shader.name == "HDRenderPipeline/LitTessellation" ||
mat.shader.name == "HDRenderPipeline/Lit")
{
if (mat.HasProperty("_CoatMask"))
{
// 3 is Old value for clear coat
float materialID = mat.GetInt("_MaterialID");
if (materialID == 3.0)
continue;
CheckOutFile(VSCEnabled, mat);
mat.SetInt("_CoatMask", 0);
EditorUtility.SetDirty(mat);
}
}
else if (mat.shader.name == "HDRenderPipeline/LayeredLit" ||
mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
/*
bool hasSubsurfaceProfile = false;
int numLayer = (int)mat.GetFloat("_LayerCount");
for (int x = 0; x < numLayer; ++x)
{
if (mat.HasProperty("_SubsurfaceProfile" + x))
{
hasSubsurfaceProfile = true;
}
}
if (hasSubsurfaceProfile)
{
CheckOutFile(VSCEnabled, mat);
for (int x = 0; x < numLayer; ++x)
{
if (mat.HasProperty("_SubsurfaceProfile" + x))
{
CheckOutFile(VSCEnabled, mat);
//float value = mat.GetInt("_DiffusionProfile" + x);
//mat.SetInt("_DiffusionProfile" + x, 0);
EditorUtility.SetDirty(mat);
}
}
EditorUtility.SetDirty(mat);
}
*/
}
}
}
finally
{
EditorUtility.ClearProgressBar();
}
}
[MenuItem("Internal/HDRenderPipeline/Update/Update material for subsurface")]
static void UpdateMaterialForSubsurface()
{
try
{
var matIds = AssetDatabase.FindAssets("t:Material");
for (int i = 0, length = matIds.Length; i < length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(matIds[i]);
var mat = AssetDatabase.LoadAssetAtPath<Material>(path);
EditorUtility.DisplayProgressBar(
"Setup materials Keywords...",
string.Format("{0} / {1} materials subsurface updated.", i, length),
i / (float)(length - 1));
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
if (mat.shader.name == "HDRenderPipeline/LitTessellation" ||
mat.shader.name == "HDRenderPipeline/Lit" ||
mat.shader.name == "HDRenderPipeline/LayeredLit" ||
mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
float materialID = mat.GetInt("_MaterialID");
if (materialID != 0.0)
continue;
if (mat.HasProperty("_SSSAndTransmissionType"))
{
CheckOutFile(VSCEnabled, mat);
int materialSSSAndTransmissionID = mat.GetInt("_SSSAndTransmissionType");
// Both;, SSS only, Transmission only
if (materialSSSAndTransmissionID == 2.0)
{
mat.SetInt("_MaterialID", 5);
}
else
{
if (materialSSSAndTransmissionID == 0.0)
mat.SetFloat("_TransmissionEnable", 1.0f);
else
mat.SetFloat("_TransmissionEnable", 0.0f);
}
EditorUtility.SetDirty(mat);
}
}
}
}
finally
{
EditorUtility.ClearProgressBar();
}
}
//
[MenuItem("Internal/HDRenderPipeline/Update/Update Height Maps parametrization")]
static void UpdateHeightMapParametrization()
{
try
{
var matIds = AssetDatabase.FindAssets("t:Material");
for (int i = 0, length = matIds.Length; i < length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(matIds[i]);
var mat = AssetDatabase.LoadAssetAtPath<Material>(path);
EditorUtility.DisplayProgressBar(
"Updating Materials...",
string.Format("{0} / {1} materials updated.", i, length),
i / (float)(length - 1));
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
if (mat.shader.name == "HDRenderPipeline/LitTessellation" ||
mat.shader.name == "HDRenderPipeline/Lit")
{
// Need only test one of the new properties
if (mat.HasProperty("_HeightPoMAmplitude"))
{
CheckOutFile(VSCEnabled, mat);
float valueMax = mat.GetFloat("_HeightMax");
float valueMin = mat.GetFloat("_HeightMin");
float center = mat.GetFloat("_HeightCenter");
float amplitude = valueMax - valueMin;
mat.SetInt("_HeightMapParametrization", 1);
mat.SetFloat("_HeightPoMAmplitude", amplitude);
mat.SetFloat("_HeightTessAmplitude", amplitude);
mat.SetFloat("_HeightOffset", 0.0f);
mat.SetFloat("_HeightTessCenter", center);
BaseLitGUI.DisplacementMode displaceMode = (BaseLitGUI.DisplacementMode)mat.GetInt("_DisplacementMode");
if (displaceMode == BaseLitGUI.DisplacementMode.Pixel)
{
mat.SetFloat("_HeightCenter", 1.0f); // With PoM this is always 1.0f. We set it here to avoid having to open the UI to update it.
}
EditorUtility.SetDirty(mat);
}
}
else if (mat.shader.name == "HDRenderPipeline/LayeredLit" ||
mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
int numLayer = (int)mat.GetFloat("_LayerCount");
if (mat.HasProperty("_HeightPoMAmplitude0"))
{
CheckOutFile(VSCEnabled, mat);
for (int x = 0; x < numLayer; ++x)
{
float valueMax = mat.GetFloat("_HeightMax" + x);
float valueMin = mat.GetFloat("_HeightMin" + x);
float center = mat.GetFloat("_HeightCenter" + x);
float amplitude = valueMax - valueMin;
mat.SetInt("_HeightMapParametrization" + x, 1);
mat.SetFloat("_HeightPoMAmplitude" + x, amplitude);
mat.SetFloat("_HeightTessAmplitude" + x, amplitude);
mat.SetFloat("_HeightOffset" + x, 0.0f);
mat.SetFloat("_HeightTessCenter" + x, center);
BaseLitGUI.DisplacementMode displaceMode = (BaseLitGUI.DisplacementMode)mat.GetInt("_DisplacementMode");
if (displaceMode == BaseLitGUI.DisplacementMode.Pixel)
{
mat.SetFloat("_HeightCenter" + x, 1.0f); // With PoM this is always 1.0f. We set it here to avoid having to open the UI to update it.
}
}
EditorUtility.SetDirty(mat);
}
}
}
}
finally
{
EditorUtility.ClearProgressBar();
}
}
// Function used only to check performance of data with and without tessellation
[MenuItem("Internal/HDRenderPipeline/Test/Remove tessellation materials (not reversible)")]
static void RemoveTessellationMaterials()
{
var materials = Resources.FindObjectsOfTypeAll<Material>();
var litShader = Shader.Find("HDRenderPipeline/Lit");
var layeredLitShader = Shader.Find("HDRenderPipeline/LayeredLit");
foreach (var mat in materials)
{
if (mat.shader.name == "HDRenderPipeline/LitTessellation")
{
mat.shader = litShader;
// We remove all keyword already present
CoreEditorUtils.RemoveMaterialKeywords(mat);
LitGUI.SetupMaterialKeywordsAndPass(mat);
EditorUtility.SetDirty(mat);
}
else if (mat.shader.name == "HDRenderPipeline/LayeredLitTessellation")
{
mat.shader = layeredLitShader;
// We remove all keyword already present
CoreEditorUtils.RemoveMaterialKeywords(mat);
LayeredLitGUI.SetupMaterialKeywordsAndPass(mat);
EditorUtility.SetDirty(mat);
}
}
}
[MenuItem("Edit/Render Pipeline/Export Sky to Image", priority = CoreUtils.editMenuPriority3)]
static void ExportSkyToImage()
{
var renderpipeline = RenderPipelineManager.currentPipeline as HDRenderPipeline;
if (renderpipeline == null)
{
Debug.LogError("HDRenderPipeline is not instantiated.");
return;
}
var result = renderpipeline.ExportSkyToTexture();
if (result == null)
return;
// Encode texture into PNG
byte[] bytes = result.EncodeToEXR(Texture2D.EXRFlags.CompressZIP);
UnityObject.DestroyImmediate(result);
string assetPath = EditorUtility.SaveFilePanel("Export Sky", "Assets", "SkyExport", "exr");
if (!string.IsNullOrEmpty(assetPath))
{
File.WriteAllBytes(assetPath, bytes);
AssetDatabase.Refresh();
}
}
[MenuItem("GameObject/Rendering/Scene Settings", priority = CoreUtils.gameObjectMenuPriority)]
static void CreateSceneSettingsGameObject(MenuCommand menuCommand)
{
var parent = menuCommand.context as GameObject;
var sceneSettings = CoreEditorUtils.CreateGameObject(parent, "Scene Settings");
GameObjectUtility.SetParentAndAlign(sceneSettings, menuCommand.context as GameObject);
Undo.RegisterCreatedObjectUndo(sceneSettings, "Create " + sceneSettings.name);
Selection.activeObject = sceneSettings;
var profile = VolumeProfileFactory.CreateVolumeProfile(sceneSettings.scene, "Scene Settings");
VolumeProfileFactory.CreateVolumeComponent<HDShadowSettings>(profile, true, false);
var visualEnv = VolumeProfileFactory.CreateVolumeComponent<VisualEnvironment>(profile, true, false);
visualEnv.skyType.value = SkySettings.GetUniqueID<ProceduralSky>();
visualEnv.fogType.value = FogType.Exponential;
VolumeProfileFactory.CreateVolumeComponent<ProceduralSky>(profile, true, false);
VolumeProfileFactory.CreateVolumeComponent<ExponentialFog>(profile, true, true);
var volume = sceneSettings.AddComponent<Volume>();
volume.isGlobal = true;
volume.sharedProfile = profile;
var bakingSky = sceneSettings.AddComponent<BakingSky>();
bakingSky.profile = volume.sharedProfile;
bakingSky.bakingSkyUniqueID = SkySettings.GetUniqueID<ProceduralSky>();
}
class DoCreateNewAsset<TAssetType> : ProjectWindowCallback.EndNameEditAction where TAssetType : ScriptableObject
{
public override void Action(int instanceId, string pathName, string resourceFile)
{
var newAsset = CreateInstance<TAssetType>();
newAsset.name = Path.GetFileName(pathName);
AssetDatabase.CreateAsset(newAsset, pathName);
ProjectWindowUtil.ShowCreatedAsset(newAsset);
}
}
class DoCreateNewAssetDiffusionProfileSettings : DoCreateNewAsset<DiffusionProfileSettings> {}
[MenuItem("Assets/Create/Rendering/Diffusion profile Settings", priority = CoreUtils.assetCreateMenuPriority2)]
static void MenuCreateDiffusionProfile()
{
var icon = EditorGUIUtility.FindTexture("ScriptableObject Icon");
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<DoCreateNewAssetDiffusionProfileSettings>(), "New Diffusion Profile Settings.asset", icon, null);
}
static void ResetAllMaterialAssetsKeywords(float progressScale, float progressOffset)
{
var matIds = AssetDatabase.FindAssets("t:Material");
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
for (int i = 0, length = matIds.Length; i < length; i++)
{
var path = AssetDatabase.GUIDToAssetPath(matIds[i]);
var mat = AssetDatabase.LoadAssetAtPath<Material>(path);
EditorUtility.DisplayProgressBar(
"Setup material asset's Keywords...",
string.Format("{0} / {1} materials cleaned.", i, length),
(i / (float)(length - 1)) * progressScale + progressOffset);
CheckOutFile(VSCEnabled, mat);
var h = Debug.unityLogger.logHandler;
Debug.unityLogger.logHandler = new UnityContextualLogHandler(mat);
HDEditorUtils.ResetMaterialKeywords(mat);
Debug.unityLogger.logHandler = h;
}
}
static bool ResetAllLoadedMaterialKeywords(string descriptionPrefix, float progressScale, float progressOffset)
{
var materials = Resources.FindObjectsOfTypeAll<Material>();
bool VSCEnabled = (UnityEditor.VersionControl.Provider.enabled && UnityEditor.VersionControl.Provider.isActive);
bool anyMaterialDirty = false; // Will be true if any material is dirty.
for (int i = 0, length = materials.Length; i < length; i++)
{
EditorUtility.DisplayProgressBar(
"Setup materials Keywords...",
string.Format("{0}{1} / {2} materials cleaned.", descriptionPrefix, i, length),
(i / (float)(length - 1)) * progressScale + progressOffset);
CheckOutFile(VSCEnabled, materials[i]);
if (HDEditorUtils.ResetMaterialKeywords(materials[i]))
{
anyMaterialDirty = true;
}
}
return anyMaterialDirty;
}
class UnityContextualLogHandler : ILogHandler
{
UnityObject m_Context;
static readonly ILogHandler k_DefaultLogHandler = Debug.unityLogger.logHandler;
public UnityContextualLogHandler(UnityObject context)
{
m_Context = context;
}
public void LogFormat(LogType logType, UnityObject context, string format, params object[] args)
{
k_DefaultLogHandler.LogFormat(LogType.Log, m_Context, "Context: {0} ({1})", m_Context, AssetDatabase.GetAssetPath(m_Context));
k_DefaultLogHandler.LogFormat(logType, context, format, args);
}
public void LogException(Exception exception, UnityObject context)
{
k_DefaultLogHandler.LogFormat(LogType.Log, m_Context, "Context: {0} ({1})", m_Context, AssetDatabase.GetAssetPath(m_Context));
k_DefaultLogHandler.LogException(exception, context);
}
}
}
}

8
com.unity.render-pipelines.high-definition/HDRP/Decal.meta


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

/com.unity.render-pipelines.high-definition/HDRP/Editor/EditorRenderPipelineResources → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipelineResources

/com.unity.render-pipelines.high-definition/HDRP/Editor/BuildPlayer → /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors

/com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPVariantStripper.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPreprocessShaders.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPVariantStripper.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPreprocessShaders.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPCustomBuildProcessor.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPPreprocessBuild.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPCustomBuildProcessor.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/BuildProcessors/HDRPPreprocessBuild.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/AssetPostProcessors → /com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors

/com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors/NormalMapVarianceTexturePostprocessor.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors/NormalMapAverageLengthTexturePostprocessor.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors/NormalMapVarianceTexturePostprocessor.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/AssetProcessors/NormalMapAverageLengthTexturePostprocessor.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/UpgradeStandardShaderMaterials.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders/UpgradeStandardShaderMaterials.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDRenderPipelineMenuItems.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineMenuItems.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDAssetFactory.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDAssetFactory.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDEditorUtils.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDEditorUtils.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDBaseEditor.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDBaseEditor.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDBaseEditor.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDBaseEditor.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDEditorCLI.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDEditorCLI.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDEditorCLI.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDEditorCLI.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/cli.ps1 → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/cli.ps1

/com.unity.render-pipelines.high-definition/HDRP/Editor/cli.ps1.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/cli.ps1.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/UpgradeStandardShaderMaterials.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/Upgraders/UpgradeStandardShaderMaterials.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDEditorUtils.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDEditorUtils.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDShaderIncludePaths.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDShaderIncludePaths.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDShaderIncludePaths.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDShaderIncludePaths.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/BaseUI.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/BaseUI.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/BaseUI.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/BaseUI.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/RenderLoopSettings → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/Settings

/com.unity.render-pipelines.high-definition/HDRP/Editor/HDAssetFactory.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDAssetFactory.cs

/com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/RenderPipelineSettings.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings/RenderPipelineSettings.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/FrameSettings.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings/FrameSettings.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/FrameSettings.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings/FrameSettings.cs

/com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/RenderPipelineSettings.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Settings/RenderPipelineSettings.cs

/com.unity.render-pipelines.high-definition/HDRP/HDUtils.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDUtils.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/HDUtils.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDUtils.cs

/com.unity.render-pipelines.high-definition/HDRP/HDStringConstants.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDStringConstants.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/HDRenderQueue.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderQueue.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/HDRenderQueue.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderQueue.cs

/com.unity.render-pipelines.high-definition/HDRP/HDRenderPipelineAsset.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipelineAsset.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/HDRenderPipeline.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipeline.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/HDCustomSamplerId.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDCustomSamplerId.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/HDCustomSamplerId.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDCustomSamplerId.cs

/com.unity.render-pipelines.high-definition/HDRP/SceneViewDrawMode.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/SceneViewDrawMode.cs

/com.unity.render-pipelines.high-definition/HDRP/SceneViewDrawMode.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/SceneViewDrawMode.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/MRTBufferManager.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/MRTBufferManager.cs

/com.unity.render-pipelines.high-definition/HDRP/MRTBufferManager.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/MRTBufferManager.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/HDStringConstants.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDStringConstants.cs

/com.unity.render-pipelines.high-definition/HDRP/Texture2DAtlas.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Texture2DAtlas.cs

/com.unity.render-pipelines.high-definition/HDRP/Texture2DAtlas.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/Texture2DAtlas.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/HDRenderPipeline.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipeline.cs

/com.unity.render-pipelines.high-definition/HDRP/HDRenderPipelineAsset.cs → /com.unity.render-pipelines.high-definition/HDRP/RenderPipeline/HDRenderPipelineAsset.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/Settings/HDRenderPipelineEditor.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineEditor.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/Settings/HDRenderPipelineUI.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineUI.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/Settings/HDRenderPipelineUI.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineUI.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/Settings/HDRenderPipelineEditor.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/RenderPipeline/HDRenderPipelineEditor.cs

/com.unity.render-pipelines.high-definition/HDRP/Editor/Decal/DecalMenuItems.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Editor/Material/Decal/DecalMenuItems.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Editor/Decal/DecalMenuItems.cs → /com.unity.render-pipelines.high-definition/HDRP/Editor/Material/Decal/DecalMenuItems.cs

/com.unity.render-pipelines.high-definition/HDRP/Decal/DecalProjectorComponent.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalProjectorComponent.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Decal/DecalSystem.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalSystem.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Decal/GlobalDecalSettings.cs.meta → /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/GlobalDecalSettings.cs.meta

/com.unity.render-pipelines.high-definition/HDRP/Decal/DecalProjectorComponent.cs → /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalProjectorComponent.cs

/com.unity.render-pipelines.high-definition/HDRP/Decal/DecalSystem.cs → /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/DecalSystem.cs

/com.unity.render-pipelines.high-definition/HDRP/Decal/GlobalDecalSettings.cs → /com.unity.render-pipelines.high-definition/HDRP/Material/Decal/GlobalDecalSettings.cs

正在加载...
取消
保存