Back on June 19th 2013 with the release of viewer 18.104.22.1687516, Second Life got a new capability: materials processing (please see Inara Pey’s coverage for more information on this) and we’ve alrady seen quite a few content creators offer “materials-ready” products. Materials processing, as far as I can understand it, uses two extra textures per face: a normal and a specular map. The purpose they serve is to:
- Normal maps: They fake the lighting of bumps and dents – an implementation of Bump mapping (with which we’re already familiar, as it’s been in the “Texture” tab of the build floater for centuries). They add detail without adding more polygons. What’s the usefulness of this? Well, in Second Life, content is streamed from the server to our computers for rendering and, the more complex the objects are, the laggier things get. So, it’s in everyone’s best interest to use low polygon models for greater efficiency. So, normal maps are commonly used to greatly enhance the appearance and detail of such a low-poly (and thus, low lag) model by using a normal map from a high polygon model or a height map.
- Specular maps: They basically represent the amount of specular reflectivity a surface has and are part of specularity, i.e. the visual appearance of specular reflections, which is a key component in determining the brightness of specular highlights, along with shininess to determine the size of the highlights.
This capability is already seen by several SL content creators as a godsend, because many have expressed their displeasure with the way SL handles shininess (a feature that really doesn’t look good on everything) and would like greater control over specularity and reflections, appropriate to the material depicted.
Unfortunately, not every SL user can see normal and specular maps. This is reserved only for those people who have ALM (Advanced Lighting Model – the new name for “deferred rendering”) and for those who use viewers that are capable of rendering materials. So, who can’t see materials at the moment?
- People who still use Firestorm 22.214.171.124167 and older versions of it – a rather large portion of SL’s userbase.
- People who rely a lot on Android mobile devices (tablets, smartphones) for their SL experience. Their GPUs are – at best – where laptop GPUs were ten years ago, and so there’s no point for Lumiya developer Alina Lyvette to try to give her viewer such capabilities.
- People whose desktops and laptops don’t have graphics hardware that can handle ALM.
As Inara Pey mentions, Linden Lab’s statistics (back in June) show that approximately 30% of the users have ALM turned on, while 75% are on hardware that can show ALM’s eyecandy and have “reasonable” performance (i.e. more than 10 frames per second – but in what regions and under what circumstances?), but it is unknown whether they have turned it on and/or whether they are on a materials-capable viewer. So, while materials support is indeed a godsend for SL content creators, it’s currently something that can only be enjoyed by users with fairly decent graphics cards and materials-capable viewers.
I guess this is something we’ve come to accept as a fact of (second) life with the Lab. Remember mesh? Second Life still doesn’t have a mesh deformer, because no one thought that people would use it to create clothes (duh) and because, when the idea of a mesh deformer was coined, people also (rightly) pointed out that the existing avatar mesh is crap. So, I don’t expect to see a mesh deformer in Second Life unless we see an “improved” avatar mesh first – and, in the name of avoiding content breakage, this “new” avatar (if and when it comes) will be full of compromises.
We are currently facing a similar situation with materials processing, and this has to do both with LL themselves and with external graphics applications developers. I’m going to start with the latter. The tools for normal map creation in Photoshop and GIMP are – at best – weak. Many graphic artists out there have even gone as far as to say they’re utter crap. I’m not going to dwell on this matter; if you search on the internet a bit, you’ll see tonnes of videos and articles explaining why. So, what are your options if you want to create good normal maps? Full-blown 3D graphics apps like Blender. Problem is, these are notoriously hard to use and the learning curve resembles the Dirac delta function. There are also some other apps that are dedicated to the creation of normal maps, but they’re Windows-only. Of course, we can’t blame LL for this.
What is within LL’s reach, though, is providing LSL control of materials. Materials (normal and specular maps) are basically textures. We already have functionality for changing an object’s colour, texture, shininess, full bright, light, light radius, light intensity and glow. Why not enhance those same LSL functions to also control normal and specular maps? I’m really not the first one to ask this question. It was brought up as a topic in the official forums by Hart Larsson on the 3rd of July, in two of Nyx Linden’s Content Creation/Mesh Import User Group meetings (October 7th by Storm Engineer and on 21st by yours truly). It was also brought up by me on October 22nd, in Simon Linden’s Server/Sim/Scripting User Group meeting.
Personally, I think it’d make great sense to have this functionality. In the transcript of Simon’s meeting, Loki Eliot (a well-known content creator) gives some excellent use-case examples, and I’m sure SL fashion designers will agree with my point that “[b]y extending LSL functionality, we’d be able to change the texture, the normal and the specular map at the same time, and you’d switch from, say, top-grain leather to velvet or suede or leatherette, and you’d also get the proper look. And yes, changing from a dry to a wet look, as Loki said, is another bonus.“
- Articles on materials processing by Inara Pey
- Normal mapping – Wikipedia
- Specularity – Wikipedia
- Bump mapping – Wikipedia
- Polygonal modeling – Wikipedia
- Low poly – Wikipedia
- Specular reflection – Wikipedia
- Specular highlight – Wikipedia
- Shininess – Wiktionary
- SL projects update 26 (3): more viewer, SSB/A and cache – by Inara Pey
- LSL for Normal And specular Map – Official Second Life forums
- Agenda for Nyx Linden’s Content Creation/Mesh Import meeting, October 7th, 2013
- Agenda for Nyx Linden’s Content Creation/Mesh Import meeting, October 21st, 2013
- Transcript of October 22 2013 Server/Sim/Scripting User Group meeting