This is the second part of my obervations on luxrender made during my last project.
This is the area where I spent most of my time in getting the blender scene transferred to lux. The material system is quite different from blender’s and I had to try various approaches to get the look I had in mind. This process is by far not finished, as I am currently just scraping at the surface. But some general findings can be shared.
Basic Material Types
Instead of having one base material where you then specify all the diffuse, specular, reflection etc properties, lux offers some basic material types to start with, covering totally rough (matte, mattetranslucent), metallic ( metal, shinymetal), shiny (glossy) and refractive (glass,) types.
Depending on the base type you may specify further attributes. All attributes can be defined by using textures, giving a wide range of possibilities.
Further on you can mix any two materials with a fixed amount or again controlled by a texture. Doing this recursively gives you an impressive tool to create really complex materials.
Here an simple example of mixing a matte with a shinymetal material modulated by a checkerboard texture.
As with any material system, textures play an important role in defining several surface properties. In blender you can have dedicated maps by assigning a texture to influence a certain material property.
Using these mappings results in diffuse, normal/bump, specular and transparency maps. All these maps have their counterpart in lux as well, but are achieved a little bit different:
- diffuse maps: those base materials with a diffuse element (matte, mattetranslucent, glossy) can have a texture assigned to modulate this property, thus acting as diffuse map.
- normal/bump maps: Each material has a separate bump property, where you can assign a texture to define the bump map. Lux currently does not support normal maps, so you have to use bump maps instead. I had the problem to convert the normal maps I had to bump maps, which the gimp normal map plugin supposedly should be able to generate, but the quality leaves a lot to be desired. After some search on the internet I found a very handy tool ShaderMap, which in its CL version is free to use in non commercial projects. Its Windows only but runs quite well under wine.
- specular maps: Those materials with a reflective property (glossy, glass, roughglass, shyinymetal) can have a texture assigned either to the specular or reflective channel. This would be the direct approach to specifying specular maps. The materials glossy, roughglass and shinymetal offer the additional possibility to use texture maps to control the roughness of the reflection, thus creating a roughness map.typical specular maproughness map
- transparency maps: all materials with a transparency property (glass, roughglass, mattetranslucent) may have a texture assigned to this property.
As with blender, textures may be images or procedurals. Luckily lux has all the blender procedural textures with all their parameters implemented as well. There are pitfalls to observe though:
The mapping mode in lux is always global, so you have to do a lot of fiddling, if your original blender mapping was other than global. Sometimes its plain impossible, e.g. I have not found a decent way to use the blend procedural.
Also the result of lux and blender with the same parameters differs slightly.
It looks like lux is producing finer structures but with less contrast.
Images can be used similar to blender. Here you have the possibility to map using different methods but I prefer uv mapping. Be aware that paths to images are stored as absolute paths, so once you move your project, you have to adjust all the external references by hand.
Similar to mixing materials, you can also mix textures in the same unlimited way. This again gives you a great control over your texture system.
Mixing marble and voronoi, amount controlled by checkerboard texture.
Note: in the current version the semantic of the amount value for mixing materials and textures are reversed. Whereas when mixing materials the amount controls the amount of the first material for textures it controls the amount of the second input texture. ( reported as bug and may already be fixed by the time you read this … )
Multiple Materials/Material Nodes
Both are not directly supported with lux at the current time. Being a completely different material system, the blender node system has no place here. If it is just mixing different materials, you were doing with the node system, you can easily achieve this with the mixing feature in lux.
[edit 13.02.2009] Multiple Materials are supported within lux without any restrictions.
This is not supported. Being a completely different material system, the blender node system has no place here. If it is just mixing different materials, you were doing with the node system, you can easily achieve this with the mixing feature in lux.
The stencil feature in blender can also be accomplished using a stencil map as input to the amount of mixing materials or textures.
using a marble texture as stencil for a noise bump texture.
This concludes part II of my luxrender observations. In the next (and last) installment I will look at the render settings, tone mapping and analyze the shell material of the snail from my project.