How i made that Mirror at the Bazaar Dungeon.

I was endlessly surprised at the messages i received about the Bazaar Dungeon but one of the most asked questions was ‘how did you make that mirror?”

The mirror was in the Spring of Souls, a chamber with a big tree in it, the roots of which reached out across the floor between puddles of water. Against the tree was a big mirror which when you looked in saw a reflection of the room but filled with ghosts.

A month or so before fantasy faire 2018 i saw a post on a Second Life Jira request for real time mirrors to be added to SL, which isn’t going to happen. At the bottom of comments was a post by Beev Fallen that took me to a video on Flikr showing a rather impressive cracked mirror effect, but not only was the room reflected in the mirror,  the walls around the mirror showed slight mirrored effect also. I contacted my friend Silas who has been working on Mirrors for a while and he too was very impressed. We both visited Beev’s amazing demo room and spent a while trying to figure out how the effect was done. This wasn’t a simple projected single image, the whole room was being mirrored 360.

I was later contacted by Silas with a workflow on how to create the illusion of 360 Mirroring in Second Life and it’s this i used to create the mirror in the Spring of Souls. 

There has recently been a few articles pop up about mirror illusions in Second Life but none has yet explained how to do 360 mirrors. Silas has given me permission to share the trick but before i do i should probably explain a few things. 

 

Environment Map

In second life every object can be set to be shiny using the objects material ‘Shininess’ settings. You have glossiness which if you have played with before know that it makes object look kinda shiny plastic. For mirrors this needs to be set to 255. Underneath that is ‘Environment’. Raising this setting determines how much of Second Life’s ‘environment map’ is reflected. 

 

The environment map is a giant spherical 360 image that is reflected in anything shiny. It’s quite boring, a simple line that is a bit like the SL horizon. The higher you raise the ‘environment’ setting the more visible this horizon image becomes on your shiny objects surface. Now the trick is to override this default Environment map with our own mini localised environment maps using the projector features.

You can grab this ready made Projector Cubemap from the Castle ruins on Escapades thanks to Silas Merlin.

 

We basically create a six sided inverted cube that projects it’s sides in on it’s self. Anything shiny inside the cube reflects what is is projected onto it. People already know this part, but what i was asked alot was how did i manage to 360 mirror the environment?

The answer is it’s now possible to take 360 snapshots in Second Life using a project viewer and convert them into what is known as 360 Cube Maps. Cube maps are 360 spherical images cut up into 6 textures. 

Once you have vertically flipped the Cube Map textures (in order to mirror the environment) you just upload and apply these textures to become projectors in the inverted cube.

Once all the projectors are set on the cube map simply position the phantom cube over the area to be mirrored. The resulting effect is a complete 360 mirroring of that environment. 

 

 

To see the effect for yourself and to grab a simple list of instructions visit the Castle Ruins on Escapades. 

 

Notes: 

There are some drawbacks to this illusion.

1. The obvious note is that you have to have advanced lighting enabled to see the effects.

2. Consider where you are going to place the Projector Cubemaps. They work best in small rooms as projectors only project up t0 20 metres. 

4. Any moving objects obviously wont appear moving.

5. Projectors will not project onto anything set to transparent.

6. Skies do not change so if you create a cube map out in the open during the day, by nighttime the reflection will still be showing daytime.

 

The benefits

In the right place this mini environment projected Cube Map trick can really add an effect of detailed realism. At the Bazaar Dungeon it was used to tell part of the legend about a Knight who had killed many traders, their souls appearing in the rooms reflection, not just in the mirror but the floor puddles too. At the Vortex Club there is a Projector Cubemap that ads an extra layer of sparkling cyberpunk colour to anyone wearing shiny attachments. 

It’s another example of how some features added to Second Life (360 Snapshots) end up being used in unexpected ways in the hands of the users.

It’s lonely being a MacOS VR User

This time last year i was waiting for apple to release a new Mac any Mac as a sign of there being continued progress from apple in the desktop market. I’m fed up with Apples obsession with shiny health trinkets and Music. Apple did finally release a new iMac but to my surprise they also demoed support for VR, specifically the Vive Headset. Big shiny tech media articles shouted with enthusiasm that VR had finally come to MacOS. 

A year later and you’d be forgiving for thinking it was all just a dream. The XLab demo showcased at the Apple event is no where to be seen and the supposed HTC Valve support for MacOS is not mentioned at all on their website. But Mac DOES support it, i know because i made my own experiences for it.

 

SteamVR Supports Mac

SteamVR does have a MacOS Version of its client. It’s over a year old now and still does not include many of the features the Windows version has enjoyed for years now. There is no SteamVR Home feature and the built in menu (when it works) has no point because there is only one mac native VR game (as i know) called Blobby Tennis.

 

UNITY Supports MacOS

Unity3D supports the creation of VR applications native to MacOS. Once you figure out which version of unity to use (2017.2) and make sure its using Metal2 api, it’s actually quite simple to set up a template using the easy to configure SteamVR plugins and templates pack. I made a few kool tests creating spaces with a temple, animated objects, tracking a vive tracker. I let my Nephew explore a massive minecraft cathedral i downloaded from Sketchfab.

 

But no ones developing VR for MacOS

All the major Virtual World VR experiences such as VRchat, HighFidelity, Sansar are windows only, which i guess is understandable if i am the only Mac VR user in the village. (Technically HiFi allows mac support in desktop mode) 

It’s frustrating, especially when im using a Mac to make content that can be used in these spaces. I created a VRchat Avatar easy and uploaded it to VRchat then had to reboot into windows in order to try it out. 

My VRchat Avatar, the space suit ended up in Second Life too.

Bootcamping Windows on my mac is what alot of people have told me to do, and thats fine for a while but ive learned that bootcamped VR on a mac takes a resolution hit and is no way as clear an image as when run natively in MacOS. 

In October last year many tech news sites reported that the latest version of Parallels Desktop which runs windows in a window on Mac OS had gained VR support. This turned out to be fake news, as not only does it not work, the Parallels website has no documentation mentioning VR support.

 

WebVR saving the day?

The one place where a Mac user might find VR Support is WebVR that allows VR Users to access VR experiences via a web browser cross platform. At the moment the only MacOS supporting WebVR Web Browser is Firestorm Nightly. A the time of writing this MacOS WebVR support has been broke in the latest version 62, in order to run WebVR with SteamVR you have to download version 59.0a1. One step forward 3 steps back.

 

It’s lonely being a Mac VR user

I would like to put aside more time to explore VR on MacOS. I want to make my own Aech’s Garage, a specific demoing and building space where i can work on new ideas. Maybe I could build little MacOS VR Experiences and make a killing on Steam, but maybe there is no point if i’m the only Mac VR enthusiast. Eventually one of these VR worlds will open up to Mac users and allow me to then export across my experiments. Until then i’ll be tinkering in my VR Garage and perhaps posting WebVR.