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.

4 tips for building in modern Second Life

The PRIM is a lie. 3D content is not made up of cubes, it is instead more commonly made up of points and lines, Verts and edges. But for democratising the ability to create 3d content Linden Lab created a system where users could simply create cubes and link them together and it was a brilliant invention.

Linden Lab could not have predicted just how many ways Second Life users would use their PRIMATIVE invention to create astonishing things, and there lies the problem with Second Life’s ongoing struggle with performance. We build and build and build in many different ways in our virtual world with no real clues into how some things are a strain on performance. So i’m going to share some of the rules i try to stick to when building things in Second Life. These are practices i’ve picked up from my own experiments and from advice given by other creators.

 

1. Don’t use Sculpts because they are big fibbers

Sculpts are often used because they can produce very elaborate and large mesh like shapes at only 1 land impact. mainly used for large parts of landscapes or trees. You know when you have arrived in a Sculpty region when everything first appears as big grey blobs that take forever to load. Sculpts are evil and use up more computing resources than they lead you to think. If you want to use Sculpts then keep it to a minimum.

 

2. Don’t distort your prims.

Prims are still a great tool for quickly creating structures. I often use them with my mesh builds for creating wooden structures and supports for more detailed mesh. I also use them a lot for creating invisible simple physics. But Prims have a dark side and can quickly become nasty if you start to split them, make holes in them and twist them (tampering and slanting is fine). Some people find when they link a distorted Prim with mesh they see the land impact shoot up by 100, thats not a bug, thats the mesh recalculating how much resources that prim is actually taking up. An undistorted Prim is a much happier Prim.

primdistort

slicing the prim can have huge ramifications for things like physics

 

3. Only use Blended Alphas Textures when you really need to.

Did you know there are two types of Transparent textures that can be set on the surface of an object? ‘Blended’ and ‘Masking’. In the old days we only had the choice of ‘Blending’ transparent Textures. This often lead to transparency flipping where the computer could not make its mind up which texture should be in front of the other, often seen in trees. A lot of processing power goes into working out how the background looks through a blending transparent texture. Places with big forests and fields of grass covered in blended Alpha textures tend to be more laggy because of this. With the introduction of Materials Linden Lab added ‘Masking’ Alphas. This allows you to create a hard cut out  of your transparent texture that has a clear line for the computer to calculate greatly reducing the resources needed to display them. So take note of your transparent textures and always set to MASKING alpha when you can, your visitors and friends with love you for doing so.

grass

Left: Masked Grass – Right Blended Grass Most people choose blended alphas for trees and grass because it looks better, but at the cost of performance for those who are supposed to enjoy it?

 

4. Don’t use scripts that change the state of something every single second.

Each time an object has to change something it has to send a message to the SL servers so it can tell everyone else that change has occurred. At least thats my understanding of it. So if we script something to do something like say constantly change colour, each colour change has to be reported to the servers and distributed to everyone who can see that object change. Lag and rubber banding can occur if to much info has to be sent to everyone. Because of this belief, i try to create stuff that does not send updates unless it really needs to and refrain from creating things that constantly change state. That includes, colour morphing, Texture Side/face flipping (alpha swapping) and animating Prims.

 

These are my own practices which may or may not be correct but they work for me, at least i think they do 😛 If you have any tips you would like to share or if you want to correct me, fill up the comments 🙂

Adding Substance – Icarus Mk5 Pt2

Recently Linden Lab announced Sansar would support Substances. Substances are kind of the next generation of textures. In the old days you would slap a texture on a 3D model to give it colour and detail. But now we have substances which add colour and detail but also shiny surfaces, bumps and even light all in one.

A Substance breaks down into channels which can consists of Base colour, Normals/Bumps, Metalic/Specular, Hight, Emissions and more. I don’t need to go into details, all you need to know is a substance is a highly advanced form of texturing that can make it easier to get great results.

database-cover-pc_0

Messing with Substance
For the Icarus Mk5 i decided to experiment with a trial of allegorithmic’s Substance Painter software to see what kind of results i could get. In many ways Substance Painter is a cross between Photoshop and Blender. I watched a few Tutorial Videos and after one day i eventually managed to produce something i was happy with. The key to using Substance Painter for me is mastering the masking of layers. I especially liked how you can add stains to fabric using particle bursts for fun results.

substance1

Substance2

Anyways, you might be wondering why I’m doing this since Second Life does not use Substances. Well Second Life’s Materials feature does use three out of the of the five channels that create a substance – Base colour, Specular and Normals.

materials

So while i upload my Airship to the Online 3Dmodel network SketchFab which already supports Substances and PBR (Physically Based Rendering), i also import to Second Life minus two material channels rendered in Windlight or what ever LL call their rendering engine.

I thought maybe the results may give a glimpse at what the difference might be between content created in SL and that possible in Project Sansar?

comparasson

Comparing the Airship rendered in Second Life (left) minus two channels, and in Sketch Fab (right) with all five substance Channels & PBR.

 

You can check out the fully Substanced Mk5 on my SketchFab account embedded below.

Icurus Mk5
by lokieliot
on Sketchfab

Virtual Steampunk Airships – Icarus Mk5 Pt1

Forget Sansar or High Fidelity, there is still way to much stuff i want to do in Second Life, new clothes, new buildings, new experiences. It’s hard to decide which one i should start on next but this week i began work on a new version of my Icarus Steampunk Airship.

Icarus Class Airship MK3 taking the Goonies on a flight over i cliff top town.

Icarus Mk5
To my Goony friends in SL the Icarus Airship is to me what the Batmobile is to Batman, the Tardis to the Doctor and the Delorean to Marty McFly. Countless adventures have been had boarding the ship.

The first iteration of the Icarus Airship was built back in 2006 loosely based on the film Star Dust. Using some hover vehicle scripts i found in a freebie box i have slowly over the years, refined, improved and figured out how the scripts work.

original

In 2011 i made the jump from Sculpts to Mesh creating the Mk4 using very limited new modelling skills. I didn’t even use Blender at the time i used some modelling software called Silo.

Since then i’ve got quite a bit better at 3D modelling and Second Life has added material channels for more detailed content, so it was about time i updated the Icarus Airship. I also hope to add cannons for the first time allowing the ship to be used in my Battle Balloon game.

IcurusMK4

The Mk4 is currently 36 Landimpact. Would be nice to keep the Mk5 around that size but with more detail.

Everything about this version should be better than the Mk4 from modelling, to texturing, its physics and scripting. There was a lot of stuff i did not quite understand when i made the Mk4 such as how to keep Land Impact low.

Mk5_1

A key to quickly modelling can be the Mirroring Modifier. It reflects one side of the object meaning half the work is done. It also applies to UV unwrapping, so if you unwrap one side then the texture will be reflected on the other side also when finished.

Mk5_2

Mk5_3

MK5_4

Adding a lot more detail to this version as i would like it to sit happily next to the Battle Balloons and not look less quality.

MK5_5

 

Part 2: Adding Substance – Icarus Mk5 Pt2

Exploring the future of my Avatars Shape – part 5

It has been nearly three months now since my last update on my Mesh Avatar, so where are we?

The Pixar Magic

Well first of all i explored having a more stylised avatar that was more characteristic of Pixar or Disney. This started off with some very cool results in blender and creating blend shapes for facial expressions was great fun. But SL can not transfer blend shapes to mesh avatars so i had to decide which fixed expression to use. I tried smiling, toothy grins, determined eyebrows but in the end settled on a sort of vacant whimsical faint smile.  Recently though i read that Linden Lab are actually looking into ways to allow creators to upload expressions with mesh avatars. Wether this will be for SL1 or ‘The New Thing’ only time will tell.

Another thing that took a while to get right was eye size and chin shape. It does not really matter how the model looks, but when you stand with a group of friends in their old default avatars there is a sense of being an alien and i felt ugly. in the end i had reduced the eyes to what i believed to be an acceptable size that did not freak people out.

PixarStyleLoki

First experiments with creating a pixar/disney style head had rather large eyes but showed the sort of expressions possible perhaps with HyFy.

 

 

animeavatar

 

web_54419c03f8a1ec20a8000001

Even without expressions the bigger eyes sometimes do a great job of conveying emotion.

I now really like this anime style avatar as I think it has real fun character and looks pretty dam kool. Im tempted to wear it as my full-time avatar, but I’m too loyal to the old face of Loki 🙂 For High Fidelity though i’m definitely going to be using the Anime model along with the blend shapes to see if i can create a fun expressionate avatar. He’ll be like a dark haired HyFy mirrorverse Loki with black hair and toothy grin.

 

Letting others join the fun.

With the Full anime avatar finished it’s now time to move onto making it possible for others to use these avatars. It’s not a simple task of just giving people the avatar though, as others will want options to make their avatar unique and i need to supply them with those options as easy as possible.

Some ideas i had back when i first set out to make a mesh avatar have changed, either because they are too hard for me to do, or too complex to expect others to do.  I’ve also tried to think of different ways to make things possible. In the end i settled on a system i call the ‘SKNpod’.

SKNpod

 

The Good News

On release all my mesh avatars will be completely free for everyone to pick up and use. There will be four Mesh Avatars in total; Teenboy, Teengirl, Kid and Anime. There will be a free mannequin blender file from which creators can make their own clothes for the mesh avatars.

Each avatar has a built in menu accessible from the ankle. This will bring up options to change the visibility of your avatar under clothes you wear. You can also choose to have hands gripped or relaxed. You also have advanced options to reset your avatar or SYNC it with the SKNpod.

Although the avatars are free, in order to change skins and skin tones users will have to purchase the SKNpod and SKNpaks. With the pod you will be able to change your avatars Skin tone and also replace your avatars Skins with SKNpaks that i will be creating. If you are about to go out and play in the mud, you can step on the SKNpod, drop the dirty SKNpak on the small fold out table, click it and POW, your skin is now dirty. (sort of the opposite to having a bath)

The Avatars skin appears wet automatically if you go under water and slowly dries out in the sun. You can also overide and reset the wet feature for swimming pools.

meshykid_Tone

When you stand on the SKNpod, the camera pans round and the front flips down with a colour palette, simply select the colour then click the coloured square to transfer to your avatar. HULK SMASH! PUNY GOD!

 

meshykid_SKNpack

You will be able to collect SKNpaks for different occasions. All you do is place the SKNpak on the flip down table while you are stood on the SKNpod then click the SKNpak to transfer the new Skin to be worn.

 

menu

Clicking a secret point on your avatars ankle will bring up a menu of options to better fine tune your avatars look.

The Bad News

Seeing as this is a totally rebuilt from the ground up avatar it unfortunately will not be compatible with clothes created for the old SL default avatar. The Joint Rigs of the armature is different meaning you will have to settle for what i and others make for this avatar shape.  Sometimes you might find trousers and shorts that work, but its rare.

You can’t simply wear the meshy kid avatar with your default avatars kid sized shape. You will find it shrinks below what you currently are. You will need to record your avatars facial settings by number and create a new avatar shape from scratch to use with the mesh.

There is a viewer bug. When you take off or swap the joint rigged mesh avatar, it will bork your avatar and the only way to fix it is to relog. This is a problem that effects all joint rigged avatars apparently, so Linden Lab are working on a fix. They almost did fix it too in the latest maintenance viewer, so hopefully it won’t be long before this is no longer an issue. But i can tell you its added 10 times more work for me since overtime i upload the mesh avatar i have to then relog.

 

Creating for the old school crowd.

Now that I’ve been using this mesh avatar for the past three months i can’t take it off. If i do take it off i see my horrible old  blobby wrists, block feet, sloped shoulders, chunky arms. The Default avatar simply was not designed to be shrunk into kid size. But now i’ve created a  way to work around it. Creating clothes for this new mesh avatar is a breeze since i don’t have to shrink and smooth out the bumps, and the results are always better than anything I’ve done before. Plus armed with a better understanding of LSL scripting i’m able to add fun features to clothes.

clothes

Clicking the V4 T-shirt’s back will allow you the option to have with or without Longsleeve shirt under short sleeve shirt.

But i still have to think about my friends who don’t feel right in a mesh avatar after all i’m first to admit that my Mesh Avatar shapes will not suit everyone. So i have to continue offering my clothes designs for the old default avatars alongside the new mesh avatars and thats the next part of the project. I’m in the process of figuring out the easiest ways to create a piece of clothing for my mesh avatar which is already super easy, and making the same piece of clothing for old lumpy default avatars which in comparison is very very hard.

messmesh

Being an oldschool kid in SL can get seriously Meshy.

Originally this last part of the process was just an afterthought, but after a few unsuccessful tests I’ve now decided i really need to sit down and think it through. I have a few ideas. It just seems ironic that after setting out to replace the old avatar with a new better one, I’m back where i started in a way.