Ejemplo n.º 1
0
    IEnumerator Export()
    {
        CustomRenderTexture exportRT = NoiseTexGenerator_Single.GenerateNoiseRT(t, scale, width, height, depth);

        yield return(null);

        NoiseTexGenerator.ExportNoiseRTToPNG(exportRT);
        exportRT.Release();
    }
Ejemplo n.º 2
0
    IEnumerator ExportTex3D(bool isPNG)
    {
        CustomRenderTexture exportRT = NoiseTexGenerator_Single.GenerateNoiseRT(t, scale, width, height, depth);

        yield return(null);

        if (isPNG)
        {
            NoiseTexGenerator.SaveRTToPNG(exportRT, width, height, depth);
        }
        else
        {
            NoiseTexGenerator.SaveToTex3D(exportRT, width, height, depth);
        }
        NoiseTexGenerator.SetMaterial();
        exportRT.Release();
    }
Ejemplo n.º 3
0
    public void OnGUI()
    {
        if (GUILayout.Button("reset noise"))
        {
            NoiseTexGenerator.Init();
        }
        CustomRenderTexture noiseTex = NoiseTexGenerator_Single.GetPreViewNoiseRT(t);

        if (t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D || t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D_ZLoop)
        {
            PreviewTexdMat.SetTexture("_Volume", noiseTex);
            Texture t = DrawTexture3DPreview(noiseTex, texShowerRect, BackgroundGuiStyle);

            GUI.DrawTexture(texShowerRect, t, ScaleMode.ScaleToFit, false);
        }
        else
        {
            GUI.DrawTexture(texShowerRect, noiseTex, ScaleMode.ScaleToFit, false);
        }
        for (int i = 0; i < 48; i++)
        {
            EditorGUILayout.Space();
        }
        if (t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D || t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D_ZLoop)
        {
            tex3D_Z = EditorGUILayout.Slider("Z:", tex3D_Z, -2, 2);
            PreviewTexdMat.SetFloat("_Z", tex3D_Z);
        }
        else
        {
            for (int i = 0; i < 5; i++)
            {
                EditorGUILayout.Space();
            }
        }

        EditorGUILayout.LabelField("--------------NoiseParam---------------");
        t     = (NoiseTexGenerator_Single.NoiseType)EditorGUILayout.EnumPopup("Noise Tpye: ", t);
        scale = EditorGUILayout.FloatField("Scale: ", scale);
        noiseTex.material.SetFloat("_Scale", scale);
        EditorGUILayout.ObjectField(noiseTex, typeof(CustomRenderTexture));
        //_previewTex3dMat2 = (Material)EditorGUILayout.ObjectField(_previewTex3dMat2, typeof(Material),false);
        useFBM = EditorGUILayout.Toggle("Use FBM:", useFBM);
        if (useFBM)
        {
            noiseTex.material.EnableKeyword("_USEFBM");
            octaves    = EditorGUILayout.IntSlider("Octaves:", octaves, 1, 10);
            lacunarity = EditorGUILayout.FloatField("Lacunarity:", lacunarity);
            gain       = EditorGUILayout.FloatField("Gain:", gain);
            amplitude0 = EditorGUILayout.FloatField("Amplitude0:", amplitude0);
            frequency0 = EditorGUILayout.FloatField("Frequency0:", frequency0);
            noiseTex.material.SetInt("_Octaves", octaves);
            noiseTex.material.SetFloat("_Lacunarity", lacunarity);
            noiseTex.material.SetFloat("_Gain", gain);
            noiseTex.material.SetFloat("_Amplitude0", amplitude0);
            noiseTex.material.SetFloat("_Frequency0", frequency0);
        }
        else
        {
            noiseTex.material.DisableKeyword("_USEFBM");
        }


        //distance = EditorGUILayout.FloatField("Distance: ", distance);
        EditorGUILayout.LabelField("--------------EXPORT---------------");
        width  = EditorGUILayout.IntField("Width: ", width);
        height = EditorGUILayout.IntField("Height: ", height);
        if (t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D || t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D_ZLoop)
        {
            depth = EditorGUILayout.IntSlider("Depth: ", depth, 1, Mathf.FloorToInt(SystemInfo.maxTextureSize / (float)height));
        }

        if (t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D || t == NoiseTexGenerator_Single.NoiseType.PerilinNoise3D_ZLoop)
        {
            if (GUILayout.Button("Export Tex3D(large memory!)"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(ExportTex3D(false));
            }
            if (GUILayout.Button("Export PNG"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(ExportTex3D(true));
            }
        }
        else
        {
            if (GUILayout.Button("Export PNG"))
            {
                EditorCoroutineRunner.StartEditorCoroutine(Export());
            }
        }
    }