Mirrors in Second Life

With the introduction of Physically-Based Rendering (PBR) glTF materials support in Second Life viewers, the development of a “Mirror” reflection capability that is high enough quality and updates in real time enough to look like a real life mirror has been under development. A project viewer has been under test for a while. The viewer and region server code need to support mirrors. As at 10th Feb 2024, a test viewer has been posted via the Discord Second Life “content-features” channel (Second_Life_Project_Featurettes and a test region on the Beta Grid at “Rumpus Region 2048” made available for testing.

Mirror Example

The notes below reflect the design and operation of mirrors in Second Life as at 10th February 2024, but they are in a state of flux and could be altered, perhaps significantly, before finally being properly released.

Instructions to Make a Mirror

Ensure you are using a viewer and on a region that supports mirrors and that the debug setting RenderMirrors = TRUE which is is by default in the test viewer currently.

  1. Rez the object to have a face which will be your mirror. Size and rotation does not matter.
  2. Make the face to be a mirror have a shiny face… e.g. use PBR or blinn-phong blank specular, 255 factor, 255 environment, colour tint black.
  3. Rex a Box, size does not matter. rotate Z+ away from face to be the mirror.
  4. Make into mirror probe … sphere or box type does not matter.
  5. Move it into the reflective surface’s plane. The probe centre line must be just beneath the mirror’s surface.
  6. Shift drag copy the PROBE! (due to current viewer bug).
  7. Copy of probe goes transparent (see it with ctrl+alt_t) (another viewer bug?).
  8. Original stays with yellow colour if show reflection probes is set.
  9. Delete the original probe (yellow one).

There is a BUG in that when a mirror reflection probe is drag copied the original goes transparent and does not show as yellow if you have reflection probes to show.

Note mirror currently shows what is given by the mirror reflection probe nearest the CAMERA.. so other mirror reflection probes nearby (even if not in view) may intersect and override what you might expect to see.

Mirror Reflection Probe +Z axis points out


With the current mechanism, this seems to be far too complicated.

Mirror Reflection Probe Interference and Priority Issues

Mirror Probes currently have an “Influence Zone” where they effect objects with reflective surfaces that is 10cm deep (fixed by a built in shader apparently) and the effect can go far out so can intersect other reflective objects that might be unexpected. But this is expected to change as the mirror approach is refined.

Image from Zi Ree (Firestorm) Image from Zi Ree (Firestorm)
Images from Zi Ree (Firestorm)

Dantia Gothly on Discord commented: I set it up for my reflective surface aligned it and got it working. Then I took that reflective object while leaving the probe where it was and went 3000m up and the mirror still worked. So the mirror plane works across the whole region so long as its aligned to that surface.

Geenz (one of the developers) on Discord Commented: Right now how we handle the placement is WIP – eventually it’s gonna get the same falloff and such as regular probes. Just didn’t have time to get that done yet. We’re still debating and discussing the UX around this. So you’ll be able to just plop down a box or sphere probe, size it up, and get anything that intersects with it to get the mirror probe’s image.

Suggestions for Improvement

  • Provide a tick box to make the surface of an object be a mirror and then autoplace a Mirror Reflection Probe correctly placed and rotated (Z+ outword) wrt that surface.
  • Influence zone for Mirror effect defined by size of the Reflection Probe itself (current its size is immaterial) rather than extending well beyond the object’s mirror surface.
  • Have a way to limit influence zone where a Mirror Reflection probe can show on a mirror surface to the land plot so neighbours builds do not interfere.
  • Reflection Probe used to be based on object the surface is rendered on not the probe nearest the avat
This entry was posted in Second Life and tagged . Bookmark the permalink.