void DrawRenderingSettings(CameraRenderType camType, UniversalRenderPipelineAsset rpAsset)
        {
            m_RenderingSettingsFoldout.value = EditorGUILayout.BeginFoldoutHeaderGroup(m_RenderingSettingsFoldout.value, Styles.renderingSettingsText);
            if (m_RenderingSettingsFoldout.value)
            {
                DrawRenderer(rpAsset);

                if (camType == CameraRenderType.Base)
                {
                    DrawPostProcessing();
                }
                else if (camType == CameraRenderType.Overlay)
                {
                    DrawPostProcessingOverlay();
                    EditorGUILayout.PropertyField(m_AdditionalCameraClearDepth, Styles.clearDepth);
                    m_AdditionalCameraDataSO.ApplyModifiedProperties();
                }

                DrawRenderShadows();

                if (camType == CameraRenderType.Base)
                {
                    DrawPriority();
                    DrawOpaqueTexture();
                    DrawDepthTexture();
                }

                settings.DrawCullingMask();
                settings.DrawOcclusionCulling();

                EditorGUILayout.Space();
                EditorGUILayout.Space();
            }
            EditorGUILayout.EndFoldoutHeaderGroup();
        }
        CameraRenderType DrawCameraType()
        {
            int selectedRenderer = m_SerializedCamera.renderer.intValue;
            ScriptableRenderer scriptableRenderer = UniversalRenderPipeline.asset.GetRenderer(selectedRenderer);
            UniversalRenderer  renderer           = scriptableRenderer as UniversalRenderer;
            bool isDeferred = renderer != null ? renderer.renderingMode == RenderingMode.Deferred : false;

            EditorGUI.BeginChangeCheck();

            //EditorGUILayout.PropertyField(m_AdditionalCameraDataCameraTypeProp, Styles.cameraType);

            CameraRenderType originalCamType = (CameraRenderType)m_SerializedCamera.cameraType.intValue;
            CameraRenderType camType         = (originalCamType != CameraRenderType.Base && isDeferred) ? CameraRenderType.Base : originalCamType;

            camType = (CameraRenderType)EditorGUILayout.EnumPopup(
                Styles.cameraType,
                camType,
                e =>
            {
                return(isDeferred ? (CameraRenderType)e != CameraRenderType.Overlay : true);
            },
                false
                );

            if (EditorGUI.EndChangeCheck() || camType != originalCamType)
            {
                m_SerializedCamera.cameraType.intValue = (int)camType;
                UpdateCameras();
            }

            return(camType);
        }
 void DrawEnvironmentSettings(CameraRenderType camType)
 {
     m_EnvironmentSettingsFoldout.value = EditorGUILayout.BeginFoldoutHeaderGroup(m_EnvironmentSettingsFoldout.value, Styles.environmentSettingsText);
     if (m_EnvironmentSettingsFoldout.value)
     {
         if (camType == CameraRenderType.Base)
         {
             DrawClearFlags();
             if (!settings.clearFlags.hasMultipleDifferentValues)
             {
                 if (GetBackgroundType((CameraClearFlags)settings.clearFlags.intValue) == BackgroundType.SolidColor)
                 {
                     using (var group = new EditorGUILayout.FadeGroupScope(m_ShowBGColorAnim.faded))
                     {
                         if (group.visible)
                         {
                             settings.DrawBackgroundColor();
                         }
                     }
                 }
             }
         }
         DrawVolumes();
         EditorGUILayout.Space();
         EditorGUILayout.Space();
     }
     EditorGUILayout.EndFoldoutHeaderGroup();
 }
 public static string GetName(this CameraRenderType type)
 {
     int typeInt = (int)type;
     if (typeInt < 0 || typeInt >= s_CameraTypeNames.Length)
         typeInt = (int)CameraRenderType.Base;
     return s_CameraTypeNames[typeInt];
 }
Beispiel #5
0
        void DrawCameraType(CameraRenderType camType)
        {
            EditorGUI.BeginChangeCheck();
            int selCameraType = EditorGUILayout.IntPopup(Styles.cameraType, (int)camType, Styles.m_CameraTypeNames.ToArray(), Styles.additionalDataCameraTypeOptions);

            if (EditorGUI.EndChangeCheck())
            {
                m_AdditionalCameraDataCameraTypeProp.intValue = selCameraType;
                m_AdditionalCameraDataSO.ApplyModifiedProperties();
                UpdateCameras();
            }
        }
        public override void OnInspectorGUI()
        {
            var rpAsset = UniversalRenderPipeline.asset;

            if (rpAsset == null)
            {
                base.OnInspectorGUI();
                return;
            }

            settings.Update();
            m_SerializedCamera.serializedObject.Update();
            UpdateAnimationValues(false);

            // Get the type of Camera we are using
            CameraRenderType camType = (CameraRenderType)m_SerializedCamera.cameraType.intValue;

            DrawCameraType();

            EditorGUILayout.Space();
            // If we have different cameras selected that are of different types we do not allow multi editing and we do not draw any more UI.
            if (m_SerializedCamera.cameraType.hasMultipleDifferentValues)
            {
                EditorGUILayout.HelpBox("Cannot multi edit cameras of different types.", MessageType.Info);
                return;
            }

            EditorGUI.indentLevel++;

            DrawCommonSettings();
            DrawRenderingSettings(camType, rpAsset);
            DrawEnvironmentSettings(camType);

            if (camType == CameraRenderType.Base)
            {
                // Settings only relevant to base cameras
                EditorGUI.BeginChangeCheck();
                DrawOutputSettings(rpAsset);
                if (EditorGUI.EndChangeCheck())
                {
                    UpdateStackCamerasOutput();
                }
                DrawStackSettings();
            }

            EditorGUI.indentLevel--;
            settings.ApplyModifiedProperties();
            m_SerializedCamera.serializedObject.ApplyModifiedProperties();
        }
        void DrawCameraType()
        {
            EditorGUI.BeginChangeCheck();
            EditorGUILayout.PropertyField(m_AdditionalCameraDataCameraTypeProp, Styles.cameraType);
            if (EditorGUI.EndChangeCheck())
            {
                UpdateCameras();

                // ScriptableRenderContext.SetupCameraProperties still depends on camera target texture
                // In order for overlay camera not to override base camera target texture we null it here
                CameraRenderType camType = (CameraRenderType)m_AdditionalCameraDataCameraTypeProp.intValue;
                if (camType == CameraRenderType.Overlay && settings.targetTexture.objectReferenceValue != null)
                {
                    settings.targetTexture.objectReferenceValue = null;
                }
            }
        }
        public override void OnInspectorGUI()
        {
            var rpAsset = GraphicsSettings.renderPipelineAsset as UniversalRenderPipelineAsset;

            if (rpAsset == null)
            {
                base.OnInspectorGUI();
                return;
            }

            settings.Update();
            m_AdditionalCameraDataSO.Update();
            UpdateAnimationValues(false);

            // Get the type of Camera we are using
            CameraRenderType camType = (CameraRenderType)m_AdditionalCameraDataCameraTypeProp.intValue;

            DrawCameraType();

            EditorGUILayout.Space();
            // If we have different cameras selected that are of different types we do not allow multi editing and we do not draw any more UI.
            if (m_AdditionalCameraDataCameraTypeProp.hasMultipleDifferentValues)
            {
                EditorGUILayout.HelpBox("Cannot multi edit cameras of different types.", MessageType.Info);
                return;
            }

            EditorGUI.indentLevel++;

            DrawCommonSettings();
            DrawRenderingSettings(camType, rpAsset);
            DrawEnvironmentSettings(camType);

            // Settings only relevant to base cameras
            if (camType == CameraRenderType.Base)
            {
                DrawOutputSettings(rpAsset);
                DrawStackSettings();
            }

            EditorGUI.indentLevel--;
            settings.ApplyModifiedProperties();
            m_AdditionalCameraDataSO.ApplyModifiedProperties();
        }
Beispiel #9
0
        public override void OnInspectorGUI()
        {
            if (m_UniversalRenderPipeline == null)
            {
                EditorGUILayout.HelpBox("Universal RP asset not assigned, assign one in the Graphics Settings.", MessageType.Error);
                return;
            }

            if (s_Styles == null)
            {
                s_Styles = new Styles();
            }

            settings.Update();
            UpdateAnimationValues(false);

            // Get the type of Camera we are using
            CameraRenderType camType = (CameraRenderType)m_AdditionalCameraDataCameraTypeProp.intValue;

            DrawCameraType(camType);
            EditorGUILayout.Space();

            EditorGUI.indentLevel++;

            DrawCommonSettings();
            DrawRenderingSettings(camType);
            DrawEnvironmentSettings(camType);

            // Settings only relevant to base cameras
            if (camType == CameraRenderType.Base)
            {
                DrawOutputSettings();
                DrawStackSettings();
            }

            EditorGUI.indentLevel--;
            settings.ApplyModifiedProperties();
        }
Beispiel #10
0
        void DrawCameraType()
        {
            int selectedRenderer = m_AdditionalCameraDataRendererProp.intValue;
            ScriptableRenderer scriptableRenderer = UniversalRenderPipeline.asset.GetRenderer(selectedRenderer);
            UniversalRenderer  renderer           = scriptableRenderer as UniversalRenderer;
            bool isDeferred = renderer != null ? renderer.renderingMode == RenderingMode.Deferred : false;

            EditorGUI.BeginChangeCheck();

            //EditorGUILayout.PropertyField(m_AdditionalCameraDataCameraTypeProp, Styles.cameraType);

            CameraRenderType originalCamType = (CameraRenderType)m_AdditionalCameraDataCameraTypeProp.intValue;
            CameraRenderType camType         = (originalCamType != CameraRenderType.Base && isDeferred) ? CameraRenderType.Base : originalCamType;

            camType = (CameraRenderType)EditorGUILayout.EnumPopup(
                Styles.cameraType,
                camType,
                e =>
            {
                return(isDeferred ? (CameraRenderType)e != CameraRenderType.Overlay : true);
            },
                false
                );

            if (EditorGUI.EndChangeCheck() || camType != originalCamType)
            {
                m_AdditionalCameraDataCameraTypeProp.intValue = (int)camType;

                UpdateCameras();

                // ScriptableRenderContext.SetupCameraProperties still depends on camera target texture
                // In order for overlay camera not to override base camera target texture we null it here
                if (camType == CameraRenderType.Overlay && settings.targetTexture.objectReferenceValue != null)
                {
                    settings.targetTexture.objectReferenceValue = null;
                }
            }
        }
Beispiel #11
0
 public static string GetName(this CameraRenderType type)
 {
     return(s_CameraTypeNames[(int)type]);
 }