示例#1
0
        public override void OnGUI(Rect rect)
        {
            EditorGUI.BeginChangeCheck();
            var options = inspector.nodeWithPreviews.Select(n => n.name).ToArray();

            EditorGUIUtility.labelWidth = 70;
            inspector.filterMode        = (FilterMode)EditorGUILayout.EnumPopup("Filter Mode", inspector.filterMode);
            inspector.exposure          = EditorGUILayout.Slider("Exposure", inspector.exposure, -12, 12);
            EditorGUILayout.BeginHorizontal();
            bool r = GUILayout.Toggle((inspector.channels & PreviewChannels.R) != 0, "R", EditorStyles.toolbarButton);
            bool g = GUILayout.Toggle((inspector.channels & PreviewChannels.G) != 0, "G", EditorStyles.toolbarButton);
            bool b = GUILayout.Toggle((inspector.channels & PreviewChannels.B) != 0, "B", EditorStyles.toolbarButton);
            bool a = GUILayout.Toggle((inspector.channels & PreviewChannels.A) != 0, "A", EditorStyles.toolbarButton);

            inspector.channels = (r ? PreviewChannels.R : 0) |
                                 (g ? PreviewChannels.G : 0) |
                                 (b ? PreviewChannels.B : 0) |
                                 (a ? PreviewChannels.A : 0);
            EditorGUILayout.EndHorizontal();

            var previewTexture = inspector.nodeWithPreviews.FirstOrDefault();
            int maxMip         = previewTexture != null ? previewTexture.previewTexture.mipmapCount : 1;

            EditorGUI.BeginDisabledGroup(maxMip == 1);
            inspector.mipLevel = EditorGUILayout.Slider("Mip Level", inspector.mipLevel, 0, maxMip - 1);
            EditorGUI.EndDisabledGroup();

            if (EditorGUI.EndChangeCheck())
            {
                inspector.Repaint();
            }
        }
示例#2
0
        public override void OnGUI(Rect rect)
        {
            EditorGUI.BeginChangeCheck();
            var options = inspector.nodeWithPreviews.Select(n => n.name).ToArray();

            EditorGUIUtility.labelWidth = 90;
            inspector.filterMode        = (FilterMode)EditorGUILayout.EnumPopup("Filter Mode", inspector.filterMode);
            inspector.exposure          = EditorGUILayout.Slider("Exposure", inspector.exposure, -12, 12);
            EditorGUILayout.BeginHorizontal();
            bool r = GUILayout.Toggle((inspector.channels & PreviewChannels.R) != 0, "R", EditorStyles.toolbarButton);
            bool g = GUILayout.Toggle((inspector.channels & PreviewChannels.G) != 0, "G", EditorStyles.toolbarButton);
            bool b = GUILayout.Toggle((inspector.channels & PreviewChannels.B) != 0, "B", EditorStyles.toolbarButton);
            bool a = GUILayout.Toggle((inspector.channels & PreviewChannels.A) != 0, "A", EditorStyles.toolbarButton);

            inspector.channels = (r ? PreviewChannels.R : 0) |
                                 (g ? PreviewChannels.G : 0) |
                                 (b ? PreviewChannels.B : 0) |
                                 (a ? PreviewChannels.A : 0);
            EditorGUILayout.EndHorizontal();

            var previewTexture = inspector.nodeWithPreviews.FirstOrDefault();
            int maxMip         = previewTexture != null ? previewTexture.previewTexture.mipmapCount : 1;

            EditorGUI.BeginDisabledGroup(maxMip == 1);
            inspector.mipLevel = EditorGUILayout.Slider("Mip Level", inspector.mipLevel, 0, maxMip - 1);
            EditorGUI.EndDisabledGroup();

            inspector.alwaysRefresh = EditorGUILayout.Toggle("Always Refresh", inspector.alwaysRefresh);

            inspector.preserveAspect = EditorGUILayout.Toggle("Keep Aspect", inspector.preserveAspect);

            EditorGUILayout.LabelField("3D view", EditorStyles.boldLabel);

            inspector.texture3DPreviewMode = (MixtureNodeInspectorObjectEditor.Texture3DPreviewMode)EditorGUILayout.EnumPopup("Mode", inspector.texture3DPreviewMode);

            switch (inspector.texture3DPreviewMode)
            {
            default:
            case MixtureNodeInspectorObjectEditor.Texture3DPreviewMode.Volumetric:
                inspector.texture3DDensity = EditorGUILayout.Slider("Density", inspector.texture3DDensity, 0, 1);
                break;

            case MixtureNodeInspectorObjectEditor.Texture3DPreviewMode.DistanceFieldNormal:
                inspector.texture3DDistanceFieldOffset = EditorGUILayout.FloatField("SDF Offset", inspector.texture3DDistanceFieldOffset);
                break;

            case MixtureNodeInspectorObjectEditor.Texture3DPreviewMode.DistanceFieldColor:
                inspector.texture3DDistanceFieldOffset = EditorGUILayout.FloatField("SDF Offset", inspector.texture3DDistanceFieldOffset);
                inspector.sdfChannel = (MixtureNodeInspectorObjectEditor.SDFChannel)EditorGUILayout.EnumPopup("SDF Offset", inspector.sdfChannel);
                break;
            }

            if (EditorGUI.EndChangeCheck())
            {
                inspector.Repaint();
            }
        }
        public override void OnGUI(Rect rect)
        {
            EditorGUI.BeginChangeCheck();
            var options = inspector.nodeWithPreviews.Select(n => n.name).ToArray();

            EditorGUIUtility.labelWidth = 90;
            target.filterMode           = (FilterMode)EditorGUILayout.EnumPopup("Filter Mode", target.filterMode);
            target.exposure             = EditorGUILayout.Slider("Exposure", target.exposure, -12, 12);
            EditorGUILayout.BeginHorizontal();
            bool r = GUILayout.Toggle((target.channels & PreviewChannels.R) != 0, "R", EditorStyles.toolbarButton);
            bool g = GUILayout.Toggle((target.channels & PreviewChannels.G) != 0, "G", EditorStyles.toolbarButton);
            bool b = GUILayout.Toggle((target.channels & PreviewChannels.B) != 0, "B", EditorStyles.toolbarButton);
            bool a = GUILayout.Toggle((target.channels & PreviewChannels.A) != 0, "A", EditorStyles.toolbarButton);

            target.channels = (r ? PreviewChannels.R : 0) |
                              (g ? PreviewChannels.G : 0) |
                              (b ? PreviewChannels.B : 0) |
                              (a ? PreviewChannels.A : 0);
            EditorGUILayout.EndHorizontal();

            var previewTexture = inspector.nodeWithPreviews.FirstOrDefault();
            int maxMip         = previewTexture != null ? previewTexture.previewTexture.mipmapCount : 1;

            EditorGUI.BeginDisabledGroup(maxMip == 1);
            target.mipLevel = EditorGUILayout.Slider("Mip Level", target.mipLevel, 0, maxMip - 1);
            EditorGUI.EndDisabledGroup();

            target.alwaysRefresh = EditorGUILayout.Toggle("Always Refresh", target.alwaysRefresh);

            target.preserveAspect = EditorGUILayout.Toggle("Keep Aspect", target.preserveAspect);

            if (previewTexture != null && previewTexture.previewTexture != null)
            {
                var dim = previewTexture.previewTexture.dimension;

                if (dim == TextureDimension.Tex3D)
                {
                    EditorGUILayout.LabelField("3D View", EditorStyles.boldLabel);

                    target.texture3DPreviewMode = (MixtureNodeInspectorObject.Texture3DPreviewMode)EditorGUILayout.EnumPopup("Mode", target.texture3DPreviewMode);

                    switch (target.texture3DPreviewMode)
                    {
                    default:
                    case MixtureNodeInspectorObject.Texture3DPreviewMode.Volumetric:
                        target.texture3DDensity         = EditorGUILayout.Slider("Density", target.texture3DDensity, 0, 1);
                        target.volumetricDensityChannel = EditorGUILayout.Popup("Density Channel", target.volumetricDensityChannel, new string[] { "R", "G", "B", "A" });
                        break;

                    case MixtureNodeInspectorObject.Texture3DPreviewMode.DistanceFieldNormal:
                        target.texture3DDistanceFieldOffset = EditorGUILayout.FloatField("SDF Offset", target.texture3DDistanceFieldOffset);
                        target.invertSurface = EditorGUILayout.Toggle("Invert Surface", target.invertSurface);
                        break;

                    case MixtureNodeInspectorObject.Texture3DPreviewMode.DistanceFieldColor:
                        target.texture3DDistanceFieldOffset = EditorGUILayout.FloatField("SDF Offset", target.texture3DDistanceFieldOffset);
                        target.sdfChannel    = (MixtureNodeInspectorObject.SDFChannel)EditorGUILayout.EnumPopup("SDF Offset", target.sdfChannel);
                        target.invertSurface = EditorGUILayout.Toggle("Invert Surface", target.invertSurface);
                        break;
                    }
                }
                else if (dim == TextureDimension.Cube)
                {
                    EditorGUILayout.LabelField("Cubemap View", EditorStyles.boldLabel);

                    target.showCubeBackface = EditorGUILayout.Toggle("Show Backface", target.showCubeBackface);
                }
            }

            if (EditorGUI.EndChangeCheck())
            {
                inspector.Repaint();
            }
        }