From d3a2bf24552181c937fc6e1d46e627222cf2ab94 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 8 Oct 2017 00:40:03 +0200 Subject: [PATCH] add the water fix for very large var regions --- src/Warp3DImageModule.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Warp3DImageModule.cs b/src/Warp3DImageModule.cs index cb9687a..dcfab8c 100644 --- a/src/Warp3DImageModule.cs +++ b/src/Warp3DImageModule.cs @@ -313,16 +313,20 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap { float waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight; - renderer.AddPlane("Water", m_scene.RegionInfo.RegionSizeX * 0.5f); - renderer.Scene.sceneobject("Water").setPos(m_scene.RegionInfo.RegionSizeX * 0.5f - 0.5f, - waterHeight, - m_scene.RegionInfo.RegionSizeY * 0.5f - 0.5f); - warp_Material waterColorMaterial = new warp_Material(ConvertColor(WATER_COLOR)); waterColorMaterial.setReflectivity(0); // match water color with standard map module thanks lkalif waterColorMaterial.setTransparency((byte)((1f - WATER_COLOR.A) * 255f)); renderer.Scene.addMaterial("WaterColor", waterColorMaterial); - renderer.SetObjectMaterial("Water", "WaterColor"); + + for (int x = 0; x < m_scene.RegionInfo.RegionSizeX / 256; x++) + { + for (int y = 0; y < m_scene.RegionInfo.RegionSizeY / 256; y++) + { + renderer.AddPlane("Water-" + x + "-" + y, 256); + renderer.Scene.sceneobject("Water-" + x + "-" + y).setPos(128 * x, waterHeight, 128 * y); + renderer.SetObjectMaterial("Water-" + x + "-" + y, "WaterColor"); + } + } } // Add a terrain to the renderer.