I dabbled in modeling and rendering a looooong time ago, mostly using PoV-Ray, and three weeks ago decided to pick it up again as a hobby. I finished my first scene (via Andrew Price’s donut tutorial) two weeks ago. I’m trying to finish up my second scene (the light bulb tutorial, with my own tweaks), but have gotten a little bogged down in the materials.
The dust on the bulbs has been a mess to get right. It’s finally getting close, but only on certain of them. In particular, the dust is only visible when looking at a frontlit bulb… if the bulb is between the camera and the light, the dust is almost entirely invisible. Maybe everything is working correctly… the dust would be shadowed, but would it be as invisible as this?
In any case, I want more dust on the foreground bulbs even if just for aesthetic reasons. I can’t figure out how. Here’s the scene as it stands:
I should note that the glass bulb object has a Solidify modifier and is using the Material Index Offset to apple the Dusty Glass texture to only the original, outside of the bulb. The inside gets a simple, plain glass material.
So, two questions:
Is the lack of dust visibility “correct”, or is something wrong?
If it is correct, then how can I “uncorrect” it? I’ve tried tweaking the materials every which way, but can’t seem to increase the dust on the foreground bulbs.
I’m trying to make heads or tails of the shader. To be frank, if I were to start making changes to find a solution to your problem, it wouldn’t even be the original node setup. hehe
First thing to do would be to lose the custom fresnel node. The glass node is the one BSDF that has built in fresnel which reacts to surface roughness correctly (I’d also recommend switching to the GGX implementation).
Now to achieve this effect in a physically correct way, you really only need one Glass BSDF. I would suggest a dust texture with a gradation between white (clean glass) and your dust color. This texture would plug into the color parameter.
I would also plug in an inverted grayscale version of this texture into the roughness parameter. You would need to adjust the levels to something appropriate so that clean glass has little to no roughness (say 0.001) and the dust has a small amount (0.1).
I created a material that’s geared towards substance painter, but it happens to have dusty glass that highlights what I’m talking about, and yes, it reacts to back lighting in the way you are trying to achieve. Now the material might look complex, but if you zoom into the Glass BSDF, there’s nothing extra plugged into it aside from the two textures I described above. It’s literally 3 nodes creating the dusty glass effect.
Thank you, Cody! Your bafflement at my over-complicated material made me take a second look at it, and something may have clicked: in that last mix shader, I’m telling all shadow rays to skip all of my dusty glass stuff and only consider the Transparent shader. My complaint is that, although backlit and thus shadowed, the dust should still be visible. But if shadow rays are skipping the dust, maybe not? I’m not super sure how the different rays work.
In any case, I’ll try simplifying my material a lot today, taking your advice into account. I’ll update later.
You should make two distinct materials which is mixed using a dust texture, where each material handles shadow rays separately.
A light bulb is very thin, I think I would try fresnel->transparency/glossy instead of fresnel->refraction/glossy (glass) unless it has a strong visual impact. Fresnel doesn’t have to be custom (for roughness handling) since glass is typically near perfectly smooth. To the point I’d probably even use sharp reflections to save time (unless you’re using a roughness map for glass). However, if using the transparency trick you need a custom fresnel node to make normals single sided (or else the mix will show a schnell’s window on one of the sides).
For dust to be backlit you need to add a translucency shader.