| | |
| | | using UnityEngine; |
| | | using UnityEngine.PostProcessing; |
| | | |
| | | namespace UnityEditor.PostProcessing |
| | | { |
| | | using Settings = ScreenSpaceReflectionModel.Settings; |
| | | |
| | | [PostProcessingModelEditor(typeof(ScreenSpaceReflectionModel))] |
| | | public class ScreenSpaceReflectionModelEditor : PostProcessingModelEditor |
| | | { |
| | | struct IntensitySettings |
| | | { |
| | | public SerializedProperty reflectionMultiplier; |
| | | public SerializedProperty fadeDistance; |
| | | public SerializedProperty fresnelFade; |
| | | public SerializedProperty fresnelFadePower; |
| | | } |
| | | |
| | | struct ReflectionSettings |
| | | { |
| | | public SerializedProperty blendType; |
| | | public SerializedProperty reflectionQuality; |
| | | public SerializedProperty maxDistance; |
| | | public SerializedProperty iterationCount; |
| | | public SerializedProperty stepSize; |
| | | public SerializedProperty widthModifier; |
| | | public SerializedProperty reflectionBlur; |
| | | public SerializedProperty reflectBackfaces; |
| | | } |
| | | |
| | | struct ScreenEdgeMask |
| | | { |
| | | public SerializedProperty intensity; |
| | | } |
| | | |
| | | IntensitySettings m_Intensity; |
| | | ReflectionSettings m_Reflection; |
| | | ScreenEdgeMask m_ScreenEdgeMask; |
| | | |
| | | public override void OnEnable() |
| | | { |
| | | m_Intensity = new IntensitySettings |
| | | { |
| | | reflectionMultiplier = FindSetting((Settings x) => x.intensity.reflectionMultiplier), |
| | | fadeDistance = FindSetting((Settings x) => x.intensity.fadeDistance), |
| | | fresnelFade = FindSetting((Settings x) => x.intensity.fresnelFade), |
| | | fresnelFadePower = FindSetting((Settings x) => x.intensity.fresnelFadePower) |
| | | }; |
| | | |
| | | m_Reflection = new ReflectionSettings |
| | | { |
| | | blendType = FindSetting((Settings x) => x.reflection.blendType), |
| | | reflectionQuality = FindSetting((Settings x) => x.reflection.reflectionQuality), |
| | | maxDistance = FindSetting((Settings x) => x.reflection.maxDistance), |
| | | iterationCount = FindSetting((Settings x) => x.reflection.iterationCount), |
| | | stepSize = FindSetting((Settings x) => x.reflection.stepSize), |
| | | widthModifier = FindSetting((Settings x) => x.reflection.widthModifier), |
| | | reflectionBlur = FindSetting((Settings x) => x.reflection.reflectionBlur), |
| | | reflectBackfaces = FindSetting((Settings x) => x.reflection.reflectBackfaces) |
| | | }; |
| | | |
| | | m_ScreenEdgeMask = new ScreenEdgeMask |
| | | { |
| | | intensity = FindSetting((Settings x) => x.screenEdgeMask.intensity) |
| | | }; |
| | | } |
| | | |
| | | public override void OnInspectorGUI() |
| | | { |
| | | EditorGUILayout.HelpBox("This effect only works with the deferred rendering path.", MessageType.Info); |
| | | |
| | | EditorGUILayout.LabelField("Reflection", EditorStyles.boldLabel); |
| | | EditorGUI.indentLevel++; |
| | | EditorGUILayout.PropertyField(m_Reflection.blendType); |
| | | EditorGUILayout.PropertyField(m_Reflection.reflectionQuality); |
| | | EditorGUILayout.PropertyField(m_Reflection.maxDistance); |
| | | EditorGUILayout.PropertyField(m_Reflection.iterationCount); |
| | | EditorGUILayout.PropertyField(m_Reflection.stepSize); |
| | | EditorGUILayout.PropertyField(m_Reflection.widthModifier); |
| | | EditorGUILayout.PropertyField(m_Reflection.reflectionBlur); |
| | | EditorGUILayout.PropertyField(m_Reflection.reflectBackfaces); |
| | | EditorGUI.indentLevel--; |
| | | |
| | | EditorGUILayout.Space(); |
| | | EditorGUILayout.LabelField("Intensity", EditorStyles.boldLabel); |
| | | EditorGUI.indentLevel++; |
| | | EditorGUILayout.PropertyField(m_Intensity.reflectionMultiplier); |
| | | EditorGUILayout.PropertyField(m_Intensity.fadeDistance); |
| | | EditorGUILayout.PropertyField(m_Intensity.fresnelFade); |
| | | EditorGUILayout.PropertyField(m_Intensity.fresnelFadePower); |
| | | EditorGUI.indentLevel--; |
| | | |
| | | EditorGUILayout.Space(); |
| | | EditorGUILayout.LabelField("Screen Edge Mask", EditorStyles.boldLabel); |
| | | EditorGUI.indentLevel++; |
| | | EditorGUILayout.PropertyField(m_ScreenEdgeMask.intensity); |
| | | EditorGUI.indentLevel--; |
| | | } |
| | | } |
| | | } |
| | | using UnityEngine;
|
| | | using UnityEngine.PostProcessing;
|
| | |
|
| | | namespace UnityEditor.PostProcessing
|
| | | {
|
| | | using Settings = ScreenSpaceReflectionModel.Settings;
|
| | |
|
| | | [PostProcessingModelEditor(typeof(ScreenSpaceReflectionModel))]
|
| | | public class ScreenSpaceReflectionModelEditor : PostProcessingModelEditor
|
| | | {
|
| | | struct IntensitySettings
|
| | | {
|
| | | public SerializedProperty reflectionMultiplier;
|
| | | public SerializedProperty fadeDistance;
|
| | | public SerializedProperty fresnelFade;
|
| | | public SerializedProperty fresnelFadePower;
|
| | | }
|
| | |
|
| | | struct ReflectionSettings
|
| | | {
|
| | | public SerializedProperty blendType;
|
| | | public SerializedProperty reflectionQuality;
|
| | | public SerializedProperty maxDistance;
|
| | | public SerializedProperty iterationCount;
|
| | | public SerializedProperty stepSize;
|
| | | public SerializedProperty widthModifier;
|
| | | public SerializedProperty reflectionBlur;
|
| | | public SerializedProperty reflectBackfaces;
|
| | | }
|
| | |
|
| | | struct ScreenEdgeMask
|
| | | {
|
| | | public SerializedProperty intensity;
|
| | | }
|
| | |
|
| | | IntensitySettings m_Intensity;
|
| | | ReflectionSettings m_Reflection;
|
| | | ScreenEdgeMask m_ScreenEdgeMask;
|
| | |
|
| | | public override void OnEnable()
|
| | | {
|
| | | m_Intensity = new IntensitySettings
|
| | | {
|
| | | reflectionMultiplier = FindSetting((Settings x) => x.intensity.reflectionMultiplier),
|
| | | fadeDistance = FindSetting((Settings x) => x.intensity.fadeDistance),
|
| | | fresnelFade = FindSetting((Settings x) => x.intensity.fresnelFade),
|
| | | fresnelFadePower = FindSetting((Settings x) => x.intensity.fresnelFadePower)
|
| | | };
|
| | |
|
| | | m_Reflection = new ReflectionSettings
|
| | | {
|
| | | blendType = FindSetting((Settings x) => x.reflection.blendType),
|
| | | reflectionQuality = FindSetting((Settings x) => x.reflection.reflectionQuality),
|
| | | maxDistance = FindSetting((Settings x) => x.reflection.maxDistance),
|
| | | iterationCount = FindSetting((Settings x) => x.reflection.iterationCount),
|
| | | stepSize = FindSetting((Settings x) => x.reflection.stepSize),
|
| | | widthModifier = FindSetting((Settings x) => x.reflection.widthModifier),
|
| | | reflectionBlur = FindSetting((Settings x) => x.reflection.reflectionBlur),
|
| | | reflectBackfaces = FindSetting((Settings x) => x.reflection.reflectBackfaces)
|
| | | };
|
| | |
|
| | | m_ScreenEdgeMask = new ScreenEdgeMask
|
| | | {
|
| | | intensity = FindSetting((Settings x) => x.screenEdgeMask.intensity)
|
| | | };
|
| | | }
|
| | |
|
| | | public override void OnInspectorGUI()
|
| | | {
|
| | | EditorGUILayout.HelpBox("This effect only works with the deferred rendering path.", MessageType.Info);
|
| | |
|
| | | EditorGUILayout.LabelField("Reflection", EditorStyles.boldLabel);
|
| | | EditorGUI.indentLevel++;
|
| | | EditorGUILayout.PropertyField(m_Reflection.blendType);
|
| | | EditorGUILayout.PropertyField(m_Reflection.reflectionQuality);
|
| | | EditorGUILayout.PropertyField(m_Reflection.maxDistance);
|
| | | EditorGUILayout.PropertyField(m_Reflection.iterationCount);
|
| | | EditorGUILayout.PropertyField(m_Reflection.stepSize);
|
| | | EditorGUILayout.PropertyField(m_Reflection.widthModifier);
|
| | | EditorGUILayout.PropertyField(m_Reflection.reflectionBlur);
|
| | | EditorGUILayout.PropertyField(m_Reflection.reflectBackfaces);
|
| | | EditorGUI.indentLevel--;
|
| | |
|
| | | EditorGUILayout.Space();
|
| | | EditorGUILayout.LabelField("Intensity", EditorStyles.boldLabel);
|
| | | EditorGUI.indentLevel++;
|
| | | EditorGUILayout.PropertyField(m_Intensity.reflectionMultiplier);
|
| | | EditorGUILayout.PropertyField(m_Intensity.fadeDistance);
|
| | | EditorGUILayout.PropertyField(m_Intensity.fresnelFade);
|
| | | EditorGUILayout.PropertyField(m_Intensity.fresnelFadePower);
|
| | | EditorGUI.indentLevel--;
|
| | |
|
| | | EditorGUILayout.Space();
|
| | | EditorGUILayout.LabelField("Screen Edge Mask", EditorStyles.boldLabel);
|
| | | EditorGUI.indentLevel++;
|
| | | EditorGUILayout.PropertyField(m_ScreenEdgeMask.intensity);
|
| | | EditorGUI.indentLevel--;
|
| | | }
|
| | | }
|
| | | }
|