I just got a bunch of scenes to use for testing and promos. The meshes are wonderful, and the textures are, too. Unfortunately, almost all of the materials are unusable for me. I'm now in the process of replacing the materials because they're broken in Poser. Control maps have the wrong gamma, Reflection_Lite_Mult and/or Reflection_Kd_Mult are on, and the diffuse shading, specular, and reflection are handled incorrectly. Materials that shouldn't glow do, and ones that should glow don't. Some of this I can and do correct with scripts, but a lot has to be fixed by hand. In a 30 prop set with several materials each, it's kind of a bear to fix them all.
These are great products, but they could be much better if they just had better materials that performed more consistently.
I know Poser users pretty much never complain about materials, so I doubt vendors are hearing about this. But I've loaded props to a plain scene (one infinite, one IBL or environment, maybe a ground plane) and had them render so badly that I'm sure many just put them away and never use them again.
I decided to write down some of the basics of what I've learned about materials, in hopes that it will help other Poser content creators. And maybe even some 3d content creators in general. I've found it fairly easy to translate my knowledge to Blender Cycles' noded materials.
It's actually not very hard to make simple materials that perform correctly and consistently. I think there's a lot of misconceptions out there. So here's some simple tips for making materials that work well in any fairly physically based lighting system (i.e., lights and ambient elements made to match real lighting situations) in Poser. They're followed by examples of basic materials using the described principles.
- Only use texture filtering on textures that will benefit from it. Texture filtering blurs fine details. While that can be great on very fine detail like hair strands, it just makes larger details like patterns on walls or floors or even clothes fuzzy. In general, things render better with it off. But if you want to use it, try it on Crisp first, not Quality.
- Only color textures should use the scene gamma. Every greyscale control map- bump, displacement, transparency, masks, etc.- should always use a gamma of 1.0. Hair looks thin and transparent when the transmap isn't handled properly and gamma correction is on. If gamma correction is off, all shading and lighting is incorrect and parts of the gamut are gone. You can't postwork it back to a correct state. So either way, the material won't render correctly.
- Generally speaking, diffuse value should be less than one. For anything but metals, 0.9 to 0.85 is good. And if there's a diffuse map, the color swatch should probably be white. Don't use the diffuse color to adjust the diffuse value.
- Specular color should only be colored for metals. Everything else should usually use a white specular color. You can color the specular for special effects, which often works well, but most materials incorrectly plug the diffuse map into the specular color without any special effects as if that's just the correct way to handle specular.
- Specular is just a fake reflection of a light source, and reflections are subject to the Fresnel effect which makes them stronger at an angle to the viewer and weaker facing the viewer. If you think of a sphere, the reflections are stronger at the edges. If you think of a floor, the reflections are stronger away from you, and weaker close to you. If you aren't using something like Blinn or Anisotropic specular that has Fresnel built in, you should control your specular value with a Fresnel Blend node with a black inner color and a proper IOR on the specular value for P9+ materials. For P6+ materials, you can at least use an Edge_Blend with a black inner color (higher Attenuation = higher IOR). You can also use Bagginsbill's Matmatic API and the TrueFresnel function to build a Fresnel approximation using Python, but I'm guessing most people aren't interested in coding their materials.
- Don't use Transparency_Edge or Transparency_Falloff unless you're trying to create a halo effect. They're only there to fake the edge effect that nylons have, which you can control much more finely with an Edge_Blend node. For hair, leaves, and other ordinary surfaces, just set those to 0. They don't need to be controlled by the trans map.
- If you use reflections, use a Fresnel Blend or at least an EdgeBlend on the reflection value. In terms of IOR, matte is about 1.05 to 1.1, water is 1.33, glass is somewhere around 1.5 depending on the type of glass, diamond is about 2.42, and metals should be between about 8 (really dull) and 20 or so. I know online you'll see really low values for metal, but that's because, as Bagginsbill has said, they don't account for the imaginary part. Just remember that the higher the IOR, the closer to a perfect reflector you get.
- If you use refractions, invert the Fresnel Blend or EdgeBlend by passing it through a Math subtract node and plug it into the refraction value.
- The color of refracting materials like glass comes from the refraction color, not the diffuse color (which should be 0 for anything perfectly clear).
- Metals have a low to 0 diffuse value and reflections that are colored by the surface. So if you have a "diffuse" map for your metal, you should multiply it with your reflection and feed that to your reflection color. Otherwise, your real reflections, like your fake specular ones, shouldn't be colored.
- If you are going to use Scatter or Custom_Scatter, feed it to Alternate_Diffuse. The Diffuse_Color slot puts everything through an internal diffuse node, and Scatter doesn't behave properly in any of the other inputs of the root node. I've never seen anyone use something besides the Alternate_Diffuse slot, but since I found this in testing recently, I thought I'd share.
- If you use any type of specular node, feed it into the Alternate_Specular. The Specular_Color slot puts everything through an internal specular node.
- Never, ever use Reflection_Lite_Mult or Reflection_Kd_Mult. Always make sure they're off.
- If you want something to glow, use Ambient color and value. I've seen some interesting combinations of other tricks, but that's both the simplest and the easiest for users to control if they want something brighter or darker.
- Your material will glow in the dark if you plug anything that doesn't shade into slots like Alternate_Diffuse, Translucence_Color, Reflection_Color, etc. It will render fine in bright or maybe even medium light, but darker light settings will make it look self-illuminating, especially with IDL.
- Avoid using the Gradient Bump channel for anything but normal maps. The regular Bump channel works perfectly for greyscale bump maps.
- It takes one single Math:Subtract node to shift the zero point of displacement and/or bump maps. Plug the map into the first input (value 1.0) and set the second input to whatever you want the zero point to be. Use 0.5 for a midpoint of 50% grey. NOTE: I'd recommend against using maps with a 50% grey midpoint on clothes because you're either cutting your gamut in half or creating pokethrough as you indent.
Before & After: Original Materials vs. Essential Materials 02 (WIP)
This example used the specs listed in the image. I can name the products if anyone feels the need to know, but I don't want this to be some sort of "outing." I've consistently seen performance like the before from multiple artists at multiple brokerages, especially DS artists who (very understandably) aren't familiar with the vagaries of the Poser material room. It's more important to note the quality of the maps and mesh.
The examples below all used Bagginsbill's Environment Sphere with my overcast sky material (I have a set of sky materials in progress that will probably go into future scenes) for ambient light, a ring of panels that are only visible in reflections and IDL for a little bit of ambient light and adding interest to reflections (my own prop), a single white infinite at 80% with raytraced shadows, a 4.0 blur radius, 64 samples, and a 0.2 min bias. The render settings were about the same as in the previous image. GC, IDL, and Subsurface Scattering on, 3 to 4 raytrace bounces, 6 IDL bounces, 0.5 shading rate, and 6 pixel samples. The skin and hair on the figure- Dawn by the way- use my own shaders. They're much more complex than the other materials I'm demonstrating, but they're just elaborations of these same basic principles.
Basic Glass (Refractive)
Just to give my credentials, I've got a comprehensive material merchant resource set out for both P7+ and P9+ that I tested both with GC on and off, on various items and textures (both my own and those of top vendors), and in many different lighting situations. The materials in my sets have many more options and features than what I show here, and come with a manual explaining how to use all the options in each material. Both sets have sold well, and I've had excellent feedback on them. I'm currently developing a second version, which has revamped versions of the first set double the material types (20 types from the original, 20 new ones). I used development versions of my materials in my Pre-Raphaelite set, and received great feedback on those.
I put a fair amount of tricks into some of my materials, so it's not as if I'm against anything that bends or even breaks the rules. But it's much harder to make materials that perform consistently if you don't know the rules you're breaking or misunderstand what they are.