Kat’s Pre-Toolbox : Substance Painter

I’ve been having a play with a package called Substance Painter from Allegorithmic.

For a little while I’ve been looking at some of the texture creation packages that have come along recently – if you’re into 3D stuff you’ve probably taken a look at Quixel’s suite of tools. I must admit those look pretty good and the whole suite is certainly cheaper than Substance Painter. The wrinkle is that Quixel all runs as a Photoshop plugin, and I don’t use Photoshop (I know I’ve mentioned Photoshop in my past posts but I was using it in its “placeholder” role for another graphics editor – everyone knows what Photoshop does). This means the price for the Quixel suite is Photoshop + Quixel, which really starts to add up.

Substance Painter is $149 for an indie license, which doesn’t stack up too badly against Quixel.

Substance Painter is a combination 3D painting app combined with some powerful procedural texture generation that mixes up inputs like curvature, ambient occlusion and normals to create weathered metal, chipped paint and realistically used looking surfaces. It’s designed to produce content for current-gen PBR (Physically Based Rendering) game engines like CryTek and Unity5 but it can produce effective textures for SL as well, though you do have to jump through a few hoops.


In the picture above the complex “distressed” surface has been created almost entirely by dragging and dropping the so-called “Smart Materials” into the layer stack and then just having a little fiddle with the settings. As you can see the curvature of the mesh affects the texture, showing the paint rubbing off around the sharper edges.

The application also allows you to paint directly onto the surface, which isn’t anything new in itself, but Surface Painter’s brushes can include multiple channels that affect the surface colour, glossiness, bump and “metalness” at the same time.

Making it work with SL

So, how does it translate into SL?


As you can see from the above image, not too badly. SL’s rendering of metals isn’t great but it works well enough.

Surface Painter is designed around a very different texturing workflow than SL – there’s every chance that the “Next Generation Platform” will use something more like a current-gen PBR renderer, but we won’t know for a while. Because of this its default maps that it generates are things like “Roughness” and “Metalness” – not what you need for SL at all.

All is not lost, however. The application supports different export settings that are optimised for different game engines. You can also design your own, allowing you to put together one that produces exactly what you want for SL. The options available for output include derived maps like Specular and Glossiness – now we’re cooking with SL gas!

You can put together an export configuration that will automatically build perfect textures for SL – Diffuse with Emissive in the alpha channel; Normals with Glossiness in the alpha channel and Specular with Metallic in the alpha layer for Environmental Intensity.


Once configured like this Substance Painter can output three maps ready for immediate upload to SL.


I haven’t actually forked over my hard-earned cash for Substance Painter yet – I’m still only a few days into the demo – but it’s a fun and powerful tool to play with and I may well end up buying it. Time will tell.

Kat’s Un-toolbox : Avastar

I guess this is a slightly odd toolbox post – I’m posting about something I own but don’t use.

Don’t worry, I haven’t snapped and I still class strait jackets as purely recreational garments 😉

Avastar is a plugin for Blender that pretty much brings the SL avatar with all its slider-controlled adjustments into the app for use in building garments and animations. It is a huge and very polished bit of work, better than we have any right to expect for a bit of SL-specific code.

I don’t use it, not because it’s bad, but because I just haven’t fitted it into my workflow yet. It lurks in the background of my creation process, occasionally peeking out and whispering temptations if only I’d take the time to learn how to really use it.

Nevertheless, I don’t begrudge a penny of the money I paid for it because its creator, Gaia Clary, is a vital force in the world of SL content creation. Without her input to the Lindens and the Blender project making things for SL would be much harder than it is now. All of us who make clothing and other things owe her thanks. Also cash.

So I feel that, even if I never use Avastar once, I’ve got my money’s worth out of that purchase ten times over. Every builder in SL should go and give Gaia some of their money right away and thank their lucky stars that she’s had our backs for so long.

Get all the latest news from Machinimatrix.

Kat’s Toolbox : Knald

Now and then I try out new pieces of software to see how they can fit into my workflow. Most of the time this means that the wreckage of dozens of apps I’ve tried and discarded pile up in forgotten corners of my hard disk until I go after them in a fit of mad space reclaiming and delete them, usually along with a handful of files I really needed and have to spend the next few hours recovering.

Some of the time the new app makes its way into my toolbox, even sometimes gaining coveted space as an icon on my desktop or perhaps (hushed tones…) on my Rocket Dock. Thus, a hierarchy of tools forms – they know how much they are loved by where their icons live.

Knald is hovering in no-man’s-land at the moment. I like it, I really do, but it’s still in its open beta phase with no price announced, so at any moment the hammer may come down and it might turn out that I can’t afford it. That said, while I’ve got it, I’m using it.

What it does is fairly narrow, but it’s no worse for that because what it does do it does very well. It’s basically a tool for going from a height map to a normal map (or vice versa) with all of the number crunching done on your graphics card via OpenCL which means that you can lean on your hundreds of CUDA cores in your shiny new nVidia card to make playing around with your maps a real-time operation.

It can also do some cool extras like generating ambient occlusion, concavity and convexity maps from your original height or normal map. The ambient occlusion in particular is very useful for adding some dimensionality to a diffuse map to give the surface even more life.


In the picture above I’ve fed Knald the height map from my previous tutorial Materials for Dummies and it’s made me a nice ambient occlusion map (along with a normal map that’s not shown). It’s also showing me a nice 3D preview so that I can see how things look as I fiddle with the sliders. The preview window in Knald makes use of Tesselation, a feature on current-gen 3D cards that converts normal maps into extra geometry detail. It’s not something SL is doing right now, so for the SL-compatible preview you need to slide the Tesseletion setting down to zero in the preview window.

Taking the ambient occlusion map from Knald and blending it with the original flat diffuse texture produces something that’s already got some feeling of depth to it – match this with a normal map in SL and you’re really going to be pushing some life into your surfaces.


Knald is much cooler looking than xNormal, but nowhere near as powerful. It’s not made for someone who has high poly and low poly models and is using one to generate normals for the other; Knald’s all about your textures and doesn’t care too much about your models, but if you’re not a 3D modeller (or are taking a break to just make some nice textures for general use) it’s definitely useful.

That’s not to say it doesn’t have anything for the person bringing a few OBJ files to the party. Knald can load your models and calculate some ambient occlusion for them along with the existing texture functions.


This kinda feels like a bit of an afterthought, though. Knald really just wants to make you some textures really quickly and then let you mix them up in Photoshop.

I’m using Knald for the moment, while it’s free. When the beta period ends I’ll give serious consideration to buying a license, depending on how much it costs. For now, though, it’s the best value you can get: free 🙂

Materials for Dummies

Time for another quick look at the new SL Materials Project viewer and another item from my personal toolbox: xNormal.

I think it’s easy to get the impression that using normal maps and specular maps is going to be just for the high-end users of 3D packages but nothing could be further from the truth. It’s possible to get some nice effects from the materials system without even touching something like Lightwave or Blender.

In this post I’m going to create a set of maps that can be applied to a prim to give its surface a more interesting look than just a single flat texture could. The example I’m using is a numeric keypad such as you’d find on a security door or safe. It’s something that you wouldn’t normally want to build in a complete mesh because it’s really not all that three dimensional, but a flat texture looks pretty boring.

To begin with I created a basic texture with the colours on it – this is called the diffuse texture:

NumPad Diffuse

As you can see, that’s very simple and, if you just apply that to the face of a prim it’s not going to look very interesting.

normal-prim diffuse only

Feel the boredom

To jazz this up a bit it’s going to take a specular texture and a normal map.

I created the keypad texture in Adobe Illustrator, but a free package like Inkscape would have done just as well. Because it’s a vector file in separate layers I could go back and recolour all the parts to create some maps for different purposes.

The first map I created was a specular map. This controls how much light the surface will bounce back, controlling where you get those bright, glossy highlights. I decided to make the background not shiny at all (black), the keypad surround a bit shiny (dark grey), the keys pretty shiny (light grey) and the numbers very shiny (white):

Specular map

Specular map

When I apply this map to the example prim it has an immediate effect:

The effects of specular

The effects of specular

Even if there’s just the default wooden texture on the prim you can see that there’s something going on on that surface by the differential shine.

This still isn’t all that interesting though – to get some really interesting effects it’s time to tangle with a normal map.

Normal maps aren’t particularly human-friendly – it’s hard to just paint on one. There is something that sort of bridges the gap, though: The bump map. Bump maps are greyscale images that represent the bumps on a surface – the whiter the image is at any point the higher the surface is supposed to be. Now, this, you can paint and create easily.

Bump Map

Bump Map

I’ve recoloured the original number pad image again. The brighter the colour, the higher the surface, so you can see that the keypad has a raised (white) edge, each key has a raised (white) edge and each number is inset into the key surface (darker grey).

All this is fine, but Second Life doesn’t use bump maps! Luckily there’s a little piece of free software called xNormal (http://www.xnormal.net) that can, among other things, turn a nice, easy-to-work-with bump map into a normal map. Just what we need.

I should mention that the user interface of xNormal takes a little getting used to…

It's as if a million user interface designers cried out in terror, and were suddenly silenced.

It’s as if a million user interface designers cried out in terror, and were suddenly silenced.

Under its Tools section there’s a “Height Map to Normal Map” tool (some people call ’em Bump Maps, some people call ’em Height Maps. To-may-to, To-mah-to).

From bump map to normal map thanks to xNormal

From bump map to normal map thanks to xNormal

The normal map doesn’t look like all that much to the naked eye – that’s why it’s easier to work with a bump map and then convert it to normals later.

When this normal map is uploaded to Second Life and applied to the test prim the effects are quite dramatic:

Normal map and specular map working together

Normal map and specular map working together

The shiny keypad appears quite clearly even though there’s only the default wood texture applied to the prim.

All it needs now is the original diffuse texture to pull it all together:

Diffuse, specular and normals all applied

Diffuse, specular and normals all applied

Now the surface has some life – the keys and numbers have some dimension to them and the specular map gives differential shine across the different parts.

It’s clear that all this stuff only enhances a surface – it’s no replacement for well built meshes or prim sets, but there’s a lot of scope there for work that can take a model from mediocre to spectacular and, as I’ve shown in this (very long) post, you don’t need to be an expert with hyper-complex 3D apps to get some use from normal and specular maps!

Kat’s Toolbox : The OBJ Wrangler

A handful of the items in my toolbox are ones I’ve written myself for one purpose or another. You can usually tell when it’s something I wrote because it will have a name that’s just awful. Today: The OBJ Wrangler.

At the moment it only does one thing, but I called it the OBJ Wrangler because it’s built around a little framework I wrote for loading, parsing and working with Wavefront OBJ files. In time, it will do more things, as I need it to, but for now it just gets me some useful stuff from UV maps for making textures.

Awful name, mostly awful software

Awful name, mostly awful software

I do a lot of texturing work in Adobe Illustrator, particularly stuff like laying out seams and details on bump maps. It’s very useful to have your UV maps in a vector format, or sometimes in an absurdly high-rez bitmap, and this is what the OBJ Wrangler gets me. I know Blender can output the UV map of a model as a SVG file, but what you get from this is thousands of individually drawn paths corresponding to each polygon.

The OBJ Wrangler has a few extra tricks – it can output a SVG file just like Blender’s one, but it can also do things like detect edges of UV regions and output these as separate, clean SVG paths. On my last project, the Panel Dress, having these was invaluable for doing all the stitching and detail work.

In future I’m hoping this will be helping me make better and more detailed textures for my products, particularly now that I’m modelling meshes with closer regard to the actual cut of the cloth that they represent.

Kat’s Toolbox : Lightwave 3D

Down to the real core of my toolset today: NewTek’s Lightwave 3D.

Lightwave is my main go-to bit of software for 3D modelling, rendering and texturing, so it’s the central bit of kit around which all the other bits of software orbit. I’ve been using Lightwave for about fifteen years now and, though it’s not a popular package for Second Life creators, I think I’m too old to go learning new tricks now 😉

Its user interface is…well, different, if you’re used to other 3D applications. There’s almost no icons anywhere, and where there are they’re tiny, almost entirely unrelated to the function they perform and without tooltips. You just have to know the Tao of Lightwave. Or read the manual. As for the rest of it, you’re golden so long as you can read and know what “Fast Triple Traverse” means.

Also adding to the strangeness is the way it’s sectioned into two separate applications: Modeler and Layout.

Modeler is used for building individual models and layout is used for laying out scenes, lighting and rendering. Sitting between them is the Hub which keeps changes synced up between the two.

Modeler interface

Modeler interface

Once you get used to this I think it’s a good way to work because you’re never fighting through the rest of the objects in your scene to see what you’re working on.

Layout user interface

Layout user interface

All of these oddities to one side, though (and God knows all 3D packages have their particular personalities – Maya always seems insufferably smug and Blender just wants to watch the world burn, if only you could find that button that was totally right there in the previous version) Lightwave is a very powerful piece of software. It gets used in a lot of TV and movie work and, though it’s lost some ground to 3DS and Maya due to a few lacklustre versions (I’m looking at you, Lightwave 9!), the latest version is back on track with some excellent new features.

You’ll probably be seeing a lot more of Lightwave in future posts showing progress on items I’m building. I’ve just bitten the bullet and upgraded to version 11.5, so I’m still feeling my way through a few of the changes and trying to work out where a few options have gone to.

Website: https://www.lightwave3d.com/

Kat’s Toolbox : Sculptris

Sculptris is a useful (and free!) modelling application that’s similar in many ways to Zbrush. In fact it’s so similar that the makers of Zbrush, Pixologic, persuaded the developer to join their team.

It’s a 3D sculpting app that allows you to work with a piece of virtual clay, shaping it with a variety of tools.

sculptris ui1


It’s an excellent tool for adding organic details like cloth wrinkles or shaping complex curves and surfaces. Unlike Zbrush where you subdivide the entire mesh for higher detail, Sculptris dynamically adds detail to the mesh where you paint with the brushes. This can lead to some very dense meshes in places but it also has some very nice tools for reducing this complexity down again.

It’s more than just a sculpting tool, though. If you import a Wavefront OBJ file that already has a UV map then it will offer you the option to go “straight to paint”. In this mode you can paint colour and patterns directly onto the mesh and then save out a texture map image.

sculptris ui2


The painting tools are basic but it can be a useful tool for laying out how lines or textures will cross UV boundaries or for just doing a little touching up around the seams where things don’t quite match up.

Unfortunately development of Sculptris seems to have stalled and there hasn’t been a new version for a while. The current version does have a few problems – mostly related to sudden crashes, so save your work early and often.

You can download Sculptris from its site: http://www.pixologic.com/sculptris/