Snow, Snow covered Rock shaders for Iray
talihawk
Posts: 86
Any chance some one can make a shader for rocks covered with snow and ice that will work in Iray? Thanks!
Comments
I would love a general procedural 'top of objects' shader for Iray, for this and more.
Yeah that'd be great too!
yea me too..I tried remaking the snow shader I did for 3delight that works that way..but couldn't do the same with iray
Depending on what you need to do, this might work: http://www.daz3d.com/ground-shaders-for-daz-studio
It has a couple snow shaders. I have it but haven't had the chance to work with those shaders, and my computer will be doing something else for a while, so I won't be able to test it out fo rnow.
Pretty sure those are 3DL.
I'm telling you, shader experts -- you create a procedural shader for Iray and you're looking at guaranteed sales. Man.
One approach that can work is if you have a ground surface defined by displacement. This can be very hard in Iray mainly because you often need OBSCENE levels of SubD to turn a plane into a bumpy/rocky surface. Also, displacement doesn't handle the underside of rocks.
Buuuut... I think you could fiddle with that height mask to make the highest points snow, and I THINK (I'm not completely sure how) you can wrangle things so that edges get little snow and flat surfaces get more. Maybe.
As for actual 'snow texture':
Base color: close to flat white, but not quite. (You might want a snow texture, something bumpy, plugged in -- if so, use flat white base)
Glossy weight - 1
Glossy color - Value ~220, maybe a little less. I like to shade this very slightly blue.
Glossy reflectivity - 1
Glossy roughness - 0 or .1
Bump - Here you REALLY want a ripply/bumpy surface that looks like snow. And a value of, oh, 5.
I THINK small metallic flakes would work well, but after some experimenting I've not really dialed in to a good set of values.
And that is one of the problems with it...because the SubD is a mesh related function and the texture itself is surface related. So it would not be a simple ShaderMixer network or something, but rather a complex script and network. A good preset for snow and a geoshell with masking that's done manually would be another way of doing it...but again, to make it automatic would require an insane amount of scripting.
A while ago I started coding one in MDL but got stuck converting a texture_return to displacement map. It only applies white color to the top of the surfaces of a volume but a displacement is really needed for realism. So it is useless.
Then the "What 's Included and Features" and the presets on my hard disk are lying to me.
What's Included and Features
5000 x 5000)
Woops, stupid of me! I stand corrected.
Yeah, I really like Land of Ice and Snow ( http://www.daz3d.com/land-of-the-ice-cold-sun ) because it includes a cutout mask that's fitted to the landscape.
A simple way I've managed 'elevation shader' is by using two copies of a landscape, and adjust the Y of one so it clips up through the other.
If you then give it some fine-grained displacement map (particularly something with layers, like big chunks and then smaller variations interspersed), it should help break up the otherwise sharp line between the two surfaces.
Huh. This didn't turn out so badly.
Steps:
Create a plane with 128 subdivisions. Edit Geometry > Add SubD
Create a cloudy/bumpy texture map to be 'landscape.' Make a copy of this texture with most of the lower values flattened to black (to create a height mask for snow).
FInd/make some good texture maps for rock and snow (sharp chunky vs. smooth bumpy), bump and Normal, and some good color. Adjust tiling on individual maps to taste.
Set rock color/bump/normal on plane, displacement ~-2.5 - +2.5 (adjust to taste). Displacement subdivision around 4 seems good enough.
Create plane geoshell. Copy everything over, except make snowy texture. Set offset to .01. Put in height mask -- as is, makes snowy peaks. Invert if you want peaks peaking up through snow. (If you want to get really fancy might be possible to do something to create a 'flat bits are snowy', I'm not sure how exactly)
And there you go. Two examples to come...
No problem.
I tried the snow shader, now that I've had some time, and it's clearly meant to be a texture in and of itself, rather than a supplement. I tried it on a roof where I'd created a strong displacement map, and the result was generally pretty smooth, and the roof texture itself was replaced. It's not designed as an LIE or geometry shell preset, which it would need to be to work the way people would like.
I tried replacing the shader's displacement map with the roof's displacement map, and increasing displacement strength and values. You couldn't actually tell that I'd done anything.
I did try it with a geometry shell of my own, with all the other surfaces turned off but the roof and a very tight mesh offset. It's essentially a less sophisticated version of the doubled object solution you mentioned. It didn't turn out well at all; it might do better with a slightly bigger offset and opacity turned down, but it still wouldn't quite look right.
It's probably going to need a re-engineered LIE solution, so that underlying textures can show through.
I would use a Normal Map instead of displacement as displacement in Iray is mesh dependent.
First render. I DID end up going up to Subd 5 on the displacement, which slowed things a little, mainly due to stuff close to the camera. If you combined this sort of terrain in the background with foreground 'stuff,' you could avoid that.
And reversed. It's not... perfect, and I still REALLY REALLY want procedural shaders for Iray. But hey.
Some interesting ideas to try! ;)
Well, crap. I'd like one too, and it should be possible, but probably not quick or easy. I'm thinking on it. Being able to use procedurals would be a really nice advantage.