Esempio n. 1
0
        public string GetDimensionsString()
        {
            string dimensions = "N:N";

            if (InputDimension != 0)
            {
                dimensions = InputDimension.ToString();
            }
            else
            {
                dimensions = "N";
            }

            dimensions += ":";

            if (OutputDimension != 0)
            {
                dimensions += OutputDimension.ToString();
            }
            else
            {
                dimensions += "N";
            }

            return(dimensions);
        }
Esempio n. 2
0
 get => new MixtureRTSettings()
 {
     widthPercent   = 1.0f,
     heightPercent  = 1.0f,
     depthPercent   = 1.0f,
     width          = 512,
     height         = 512,
     sliceCount     = 1,
     widthMode      = OutputSizeMode.Default,
     heightMode     = OutputSizeMode.Default,
     depthMode      = OutputSizeMode.Default,
     dimension      = OutputDimension.Default,
     targetFormat   = OutputFormat.Default,
     editFlags      = EditFlags.None,
     doubleBuffered = false,
     wrapMode       = TextureWrapMode.Repeat,
     filterMode     = FilterMode.Bilinear,
 };
Esempio n. 3
0
 get => new MixtureSettings()
 {
     widthScale      = 1.0f,
     heightScale     = 1.0f,
     depthScale      = 1.0f,
     width           = 1024,
     height          = 1024,
     depth           = 1,
     sizeMode        = OutputSizeMode.InheritFromParent,
     dimension       = OutputDimension.InheritFromParent,
     outputChannels  = OutputChannel.InheritFromParent,
     outputPrecision = OutputPrecision.InheritFromParent,
     editFlags       = ~EditFlags.POTSize,
     doubleBuffered  = false,
     wrapMode        = OutputWrapMode.InheritFromParent,
     filterMode      = OutputFilterMode.InheritFromParent,
     refreshMode     = RefreshMode.OnLoad,
 };
Esempio n. 4
0
        public static Shader    CreateNewShaderText(MixtureGraph graph, string name, OutputDimension dimension)
        {
            name += ".shader";
            switch (dimension)
            {
            case OutputDimension.Texture2D:
                return(CopyAssetWithNameFromTemplate <Shader>(graph, name, GetAssetTemplatePath <Shader>(shaderTextTexture2DTemplate)));

            case OutputDimension.Texture3D:
                return(CopyAssetWithNameFromTemplate <Shader>(graph, name, GetAssetTemplatePath <Shader>(shaderTextTexture3DTemplate)));

            case OutputDimension.CubeMap:
                return(CopyAssetWithNameFromTemplate <Shader>(graph, name, GetAssetTemplatePath <Shader>(shaderTextTextureCubeTemplate)));

            default:
                Debug.LogError("Can't find template to create new shader for dimension: " + dimension);
                return(null);
            }
        }
Esempio n. 5
0
        public static Shader    CreateNewShaderText(string name, OutputDimension dimension)
        {
            name += ".shader";
            switch (dimension)
            {
            case OutputDimension.Texture2D:
                return(CopyShaderWithNameFromTemplate(name, shaderTextTexture2DTemplate));

            case OutputDimension.Texture3D:
                return(CopyShaderWithNameFromTemplate(name, shaderTextTexture3DTemplate));

            case OutputDimension.CubeMap:
                return(CopyShaderWithNameFromTemplate(name, shaderTextTextureCubeTemplate));

            default:
                Debug.LogError("Can't find template to create new shader for dimension: " + dimension);
                return(null);
            }
        }
Esempio n. 6
0
        protected override VisualElement CreateSettingsView()
        {
            var sv = base.CreateSettingsView();

            OutputDimension currentDim = nodeTarget.rtSettings.dimension;

            settingsView.RegisterChangedCallback(() => {
                // Reflect the changes on the graph output texture but not on the asset to avoid stalls.
                graph.UpdateOutputTextures();
                RefreshOutputPortSettings();

                // When the dimension is updated, we need to update all the node ports in the graph
                var newDim = nodeTarget.rtSettings.dimension;
                if (currentDim != newDim)
                {
                    // We delay the port refresh to let the settings finish it's update
                    schedule.Execute(() => {
                        owner.ProcessGraph();
                        // Refresh ports on all the nodes in the graph
                        foreach (var nodeView in owner.nodeViews)
                        {
                            nodeView.nodeTarget.UpdateAllPortsLocal();
                            nodeView.RefreshPorts();
                        }
                    }).ExecuteLater(1);
                    currentDim = newDim;
                    NodeProvider.LoadGraph(graph);
                }
                else
                {
                    schedule.Execute(() => {
                        owner.ProcessGraph();
                    }).ExecuteLater(1);
                }
            });

            return(sv);
        }