Candle flame shader (3D mesh) for Poser Firefly (No DAZ Studio version... yet...)
(The materials are Poser only! I've started trying to recreate the flame shader materials for DAZ Studio using Shader Mixer, but I'm not having much luck, so if anybody can help out there I'd be delighted - see next post)
I was getting fed up with those 2D billboard flames that are part of most Poser candles and decided to try creating a candle flame shader that would work on a 3D flame mesh.
This is still very much an ongoing project , so please feel free to post comments (good or bad - constructive criticism preferred), suggestions for improvement, and/or questions about this freebie here.
Link to it in Renderosity Free Stuff: Candle flame shader (3D mesh) for Poser Firefly
Alternative link to it at ShareCG: Candle flame shader (3D mesh) for Poser Firefly
Alternative link to it at DeviantArt: Candle flame shader (3D mesh) for Poser Firefly
Comments
This is the main shader for the orange/yellow/white part of the flame (the blue zone is separate). As you can see there's really not much to it.
So it should be quite straightforward to reproduce in Shader Mixer, shouldn't it ? A Mix brick for the Blend node, some simple maths with the normal and v texture coordinate, and a ColorRamp (I don't think Shader Mixer has an equivalent, but a couple of daisy-chained Mix bricks should work). The outputs of all this drive the Ambient Colour and Transparency.
However, I'm running into problems in ShaderMixer when I take the output of a Mix brick driven by the v-texture coordinate (preview render looks correct) and plug it into the ambient colour of the DAZ surface or whatever it's called (I don't have DS open at the moment) - the ShaderMixer preview render is okay, but the real render is just a solid colour.
Are you working for Iray or 3Delight in Shader Mixer? 3Delight bricks need to say they are for RSL, Iray for MDL. 3Delight shaders are not converted to iray at render time in the way that the default shaders are.
Not sure if I can embed YouTube videos here - it appears not, so here are links to the three short test animations I've done so far.
Poser Firefly candle flame test - YouTube (only 2s long! Quick demo of a simple flame morph, several lights in the scene)
Another very short Poser Firefly candle flame animation - YouTube (5s long - slightly longer flame morph demo, with just a point light, manually moved around to keep it at the top of the flame)
Poser candle flame ver 3 with animated material - YouTube (5s long - static flame, but with a few animated material node inputs)
3Delight - that's enough of a handful for me ! I think that all the bricks I was using had 'Language: RSL' at the bottom, but I didn't save anything because I was getting frustrated - that's what ShaderMixer does to me ;)
(Edit: This post is a bit of a distraction. The DAZ Studio problem I'm having is something to do with (a) ShaderMixer and (b) me. So I've struck through the first sentence as it's incorrect. But I've left all the text for posterity)
My DAZ Studio problem appears to have nothing to do with ShaderMixer. This time I simply imported the candle prop from the freebie zip (none of the materials are correct because they're all Poser shader networks that don't work in Studio - that's as expected). The Opacity Strength of the Flame, BlueZone, and LightEmitter materials are all zero, so they're invisible, which is again as expected.
I set the Opacity Strength of the Flame material to 100% so that it will actually be visible, but I noticed something odd - while the Aux Viewport top right displays the flame as I expect (i.e. ambient colour white, ambient strength 100%, diffuse colour black not showing because diffuse strength is 0%), the main preview and the 3Delight render get it wrong (as if ambient strength and diffuse strength are swapped, or ambient strength is always zero)
Just to be sure I changed the diffuse and ambient colours and strengths. I get the same effect. It's as if the Ambient Strength setting is being completely ignored and zero used instead.
Does anybody have any idea what's going on ?
(Edit: removed inline images as this post is a bit of a distraction)
(Edit: This post is a bit of a distraction.)
It happens even with just a DS created sphere primitive. I must be doing something really stupid or missing something really obvious, mustn't I ?
Tried again - restarted DS (4.20) just to be sure it wasn't anything to do with the candle, created a sphere primitive... same problem. It looks as if the main preview pane and the 3Delight render are completely ignoring Ambient Strength and using zero. But the Aux Viewport is displaying correctly.
I've got sweet FA chance of getting a ShaderMixer version of the flame shader working unless I can work out what's happening here !
(Edit: removed inline images as this post is a bit of a distraction)
The default Daz Studio 3delight shader multiplies the Ambient Colour by the diffuse (which makes sense, Ambient is faking the global lighting and lighting a black surface doesn't make it non-black). In both of your examples the result of the multiplication will be zero (since it is done colour channel-by-colour channel).
Deleted - reposting on the new thread in the DAZ Studio forum to avoid getting too sidetracked on this one. Sorry ! I tried out a few more things before reposting and realized that the screenshots I'd posted here had things set up wrong.
New topic "Trying to recreate a simple Poser shader in ShaderMixer" started in the technical help forum to avoid further cluttering up this one.