IEnumerator Export() { CustomRenderTexture exportRT = NoiseTexGenerator_Single.GenerateNoiseRT(t, scale, width, height, depth); yield return(null); NoiseTexGenerator.ExportNoiseRTToPNG(exportRT); exportRT.Release(); }
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(); }
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()); } } }