diff options
From: mike pitman <pitman@us.ibm.com>
fixes the terrain spikes, and is the result of mostly a tuning
operation on the smooth and flatten tools. I dug in and found that the
spikes apparently result from smooth's overly aggressive iteration
steps toward the average curvature, which leads to an instability that
blows up the heights. I introduced a scaling factor to dampen the
'duration' parameter which tames progress and seems to keep things
stable.
Diffstat (limited to 'OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs')
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs index 7bf88f0..e1d651b 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/PaintBrushes/FlattenSphere.cs | |||
@@ -42,6 +42,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes | |||
42 | 42 | ||
43 | double sum = 0.0; | 43 | double sum = 0.0; |
44 | double step2 = 0.0; | 44 | double step2 = 0.0; |
45 | double durationFactor = 0.15; //MCP: tuned, but would be nice to come from ini file | ||
45 | 46 | ||
46 | // compute delta map | 47 | // compute delta map |
47 | for (x = 0; x < map.Width; x++) | 48 | for (x = 0; x < map.Width; x++) |
@@ -65,7 +66,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.PaintBrushes | |||
65 | { | 66 | { |
66 | for (y = 0; y < map.Height; y++) | 67 | for (y = 0; y < map.Height; y++) |
67 | { | 68 | { |
68 | double z = TerrainUtil.SphericalFactor(x, y, rx, ry, strength) * duration; | 69 | double z = TerrainUtil.SphericalFactor(x, y, rx, ry, strength) * duration * durationFactor; |
69 | 70 | ||
70 | if (z > 0) // add in non-zero amount | 71 | if (z > 0) // add in non-zero amount |
71 | { | 72 | { |