Skip to content

water exclusion surfaces test

Dan Linden edited this page Mar 19, 2025 · 9 revisions

Purpose

This tests the functionality of the Water Exclusion Surface feature as described at https://wiki.secondlife.com/wiki/Water_Exclusion_Surface

Setting Water Exclusion Surface via the UI.

  1. Edit a box and open the Texture tab in the Build tools
Hide water
  1. Check the "Hide water" checkbox.
  2. Verify a dialog pops up with text "Checking the hide water box will overwrite the texture, bumpiness, and shininess choices." and [Continue] [Cancel] buttons.
  3. Click Cancel and verify the box does not change.
  4. Click Continue and verify the box becomes transparent and hides water.
  5. Verify all other controls in the Texture panel are disabled.
  6. Uncheck the "Hide water" checkbox and verify that the box becomes visible and has the plywood texture.
  7. Add a PBR Material to the box.
  8. Verify the "Hide water" checkbox is disabled until the PBR material is removed.
  9. Add media (in the Material dropdown) to a face of the box.
  10. Verify the "Hide water" checkbox is disabled until the media is removed.

Setting Water Exclusion Surface via an LSL script.

  1. Create a "water_exclusion_surface script" by adding the following script to a new script in your Inventory.
default
{
    state_entry()
    {
        // Make this prim a water_exclusion_surface.
        llSetPrimitiveParams([PRIM_BUMP_SHINY, ALL_SIDES, PRIM_SHINY_NONE, PRIM_BUMP_NONE,
            PRIM_COLOR, ALL_SIDES, <1.0, 1.0, 1.0>, 1.0, PRIM_TEXGEN, ALL_SIDES, PRIM_TEXGEN_DEFAULT,
            PRIM_TEXTURE, ALL_SIDES, "e97cf410-8e61-7005-ec06-629eba4cd1fb", ZERO_VECTOR, ZERO_VECTOR, 0.0]);
        
        // Delete ourselves from the prim; we are no longer needed.
        llRemoveInventory(llGetScriptName());
    }
}
  1. Make a water_exclusion_surface object by dragging the script from inventory onto a new prim.
  2. Verify the box becomes transparent and hides water behind it.
  3. Take the prim to your inventory and name it water_exclusion_surface.

Test rendering of a Water Exclusion Surface

  1. Rez a water_exclusion_surface prim onto a water surface.

  2. Look at the water from above and verify a hole is present that conforms to the shape of the object.

    water exclusion above
  3. Verify the hole in the water is visible when Transparent Water is enabled and disabled. (in Preferences > Graphics > Advanced Settings)

  4. Enable Transparent Water in Preferences > Graphics > Advanced Settings. (water exclusion surfaces has no effect for the below surface view of non-transparent water)

  5. Look at the water from below the surface and verify there is an unrefracted view to the sky or any other "above water" elements that conforms to the shape of the object.

    • Below-the-water example:
    water exclusion below

Additional tests

  1. Attach a water_exclusion_surface object to your avatar.
    • Verify the water_exclusion_surface object does not hide the water when attached.
  2. Watch another avatar wearing a water_exclusion_surface object.
    • Verify the water_exclusion_surface object does not hide the water when attached to another avatar.
  3. Apply the water_exclusion_surface script to a rigged mesh.
    • Verify the water_exclusion_surface rigged mesh object does not hide the water.
  4. Attach a water_exclusion_surface object to the HUD
    • Verify it does not appear to affect rendering in any way, although it may block you clicking into the world.
  5. Add the Blank texture to the Shininess (specular) of an object then add the water_exclusion_surface script.
    • Verify the reflective object does not become water exclusion surface.
  6. A Mirror (Reflection probe) can be made to also be a water_exclusion_surface object.
  7. A water_exclusion_surface object can be made into a Reflection probe, but it will lose its water_exclusion_surface object attribute.
  8. Transparency is changed to 0% transparent when an object becomes a water_exclusion_surface object.
  9. Adding any transparency to a water_exclusion_surface object (via script) removes its invisiprim attribute.
  10. Glow - the glow parameter does not have any effect on a water_exclusion_surface object.
  11. PBR - If an object has a PBR material it will not change to a water_exclusion_surface object when the water_exclusion_surface script is applied.
Clone this wiki locally