private void DrawSteepnessMapParams() { GSteepnessMapGeneratorParams param = GTextureToolParams.Instance.Steepness; param.Terrain = EditorGUILayout.ObjectField("Terrain", param.Terrain, typeof(GStylizedTerrain), true) as GStylizedTerrain; param.Mode = (GNormalMapMode)EditorGUILayout.EnumPopup("Mode", param.Mode); lockLivePreviewTerrain = true; SetLivePreviewTerrain(param.Terrain); GTextureToolParams.Instance.Steepness = param; }
public void Generate(RenderTexture targetRt) { GSteepnessMapGeneratorParams param = GTextureToolParams.Instance.Steepness; if (param.Terrain == null || param.Terrain.TerrainData == null) { GCommon.FillTexture(targetRt, Color.clear); } else { GNormalMapGeneratorParams normalMapParam = new GNormalMapGeneratorParams(); normalMapParam.Terrain = param.Terrain; normalMapParam.Space = GNormalMapSpace.Local; normalMapParam.Mode = param.Mode; RenderTexture normalMap = new RenderTexture(targetRt); GNormalMapGenerator gen = new GNormalMapGenerator(); if (param.Mode == GNormalMapMode.Sharp) { gen.RenderSharpNormalMap(normalMapParam, normalMap); } else if (param.Mode == GNormalMapMode.Interpolated) { gen.RenderInterpolatedNormalMap(normalMapParam, normalMap); } else if (param.Mode == GNormalMapMode.PerPixel) { gen.RenderPerPixelNormalMap(normalMapParam, normalMap); } Mat.SetTexture("_BumpMap", normalMap); GCommon.DrawQuad(targetRt, GCommon.FullRectUvPoints, Mat, 0); normalMap.Release(); GUtilities.DestroyObject(normalMap); } }