MDL and Normals
Oso3D
Posts: 15,088
in The Commons
I'd like to update my freebies at some point to have procedurally generated Normals. Is there some way, in shader mixer, to convert a bump map into a Normal map? Or somehow bypass the Normals?

Comments
I'm trying to figure out how to generate a normal map outside of baking it from a hi-res mesh or one of the image editor plugins. I suppose some sort of script could do it...but not something within the scope of ShaderMixer/MDL. It's really something that needs a dedicated program/image editor to do.
Something like this...as a plugin to feed the generated noise maps to...and then have it give back the normalmap, but would that really work in a shader?
http://normalmapgenerator.yolasite.com/
Since procedurally generated shaders are general in nature and usually tiled, then a normal map is possible as long as it follows the same rules as the diffuse. One option is Gimp which makes normal maps another is crazybump http://www.crazybump.com/
Eh, I need it to work within shader mixer for it to, er, work right.
Still, one of the strengths of the procedural shader is that you can have procedural bump but then texture maps for normals or displacement.
Since Crazybump is commercial software, may as well go for Quixel while it's on sale. nDo does the same thing and more. $79 will get you the hobby/freelance/indie license (full software and includes all 3- ddo, ndo, 3do), and can be used commercially, while Crazybump's personal license is $99 and can't be used commercially.
$299 for that professional license of crazy bump is nuts. That's the same price as the full indie pack of Substance software (designer, painter, and b2m).
Have never had a need to use shader mixer, so don't know how it works.
As for procedural bump with a texture, so you want both a bump map and normal/displacement?
Shader Mixer is basically the Daz equivalent of Poser's advanced material room. It's nodal and connects to each other with noodles like many others (cycles, substance designer, filter forge, etc).
So I have a series of freebie shaders (see sig) that has Perlin noise modifiers for color (between two colors), bump map, and cutout. These can be linked, so, for example, a metal layer has rusty pits in it, or they can have separate elements.
I had hoped for options to do noise modifiers for displacement and normals, but I couldn't make heads or tails of Daz' implementation of MDL to work out how I can do that.
Bump still looks decent for, say, my 'ocean ripples' -- it makes really nice watery surface without replicating tiles. And I was able to do fun combos, like the following image. The water surface uses my WTP ocean ripples, adding chaotic bumps, but then there's a Normal map of droplet ripples on top of THAT, so it creates a nice effect.
But... it'd still be nice to have an option to noise up the Normals.
Doing it for displacement is basically the same as for bump...just where it's plugged in that makes the difference.
Normalmaps on the other hand, since they use RGB values to encode a lot more info than a simple bump or displacement (heightmap), they will need to be generated with something that will take the noise, change it from 'float' to rgb and put it together approximating the peaks and valleys that would happen if it were baked from geometry...and it's not just an intensity but value and saturation mapping that need to happen to end up with the pretty colored normal maps.
I can think of a network that might be able to do it in the RSL side of SM...but not sure how to convert the greyscale to rgb and then layer them in the MDL side of SM. And it would probably be a very slow and cumbersome network...as it would take a bit of time to generate the normalmap from the base noise texture.
Displacement same as bump? Well, that's weird. I've tried all sorts of plugging it in and the result is just... a weird lumpy incoherent mess.
Displacement works differently for Iray than it does in 3DL. 3DL is per pixel displacement, while Iray is per vertex, so if there arent enough polys to cover the displacement, it will look like a jumbled mess. A way around that is to set the subdivision in the shader itself higher, something around 2 iirc. Once you plug in a displacement map and set it to something other than 0, the shader subd setting will open up.
If you happen to have Aeon Soul's Alphakini with either the Future or Wasteland expansions, use one of the Iray materials on it and take a look at their displacement settings. Their shader level subD is about 3+ from what I've seen. In addition to the shader level, their geometry is also set to subD 2.
I thought I had tried that, and either set subd myself or tried to have the defaults set it. I'll have to poke at it some more, for my own curiousity if nothing else. (Making my shaders freebies has earned me about $15 in paypal donations. Which is fine, I wasn't counting on it making money, but it makes me lower the priority for further work)