PDA

View Full Version : Issue rendering SSS fast skin shader as "straight"


vg1
04-28-2009, 02:17 AM
Hello,

Is there a way to render out the misss_fast_skin_maya shader as "straight" rather than premultiplied. It seems that if premultiplied is unchecked, the render comes out extremely blown out. Here is an image that shows what I mean. As you can see, the straight render is blown out. All I used was a directional light to light the sphere.

http://www.huemanelement.com/v/sss.jpg


I am aware of the mental ray Texture node the misss_fast_skin_maya shader produces. If I change the "File Depth Size" from 32 bits to 16 bits it will render.....but, the color is slightly altered from the premultiplied version. I would like to know a way to render out "straight" and keeping the color values the same as they would be being rendered out as premulitplied.

Anyone happen to have any knowledge of rendering out non-blownout SSS skin shaders as "straight"?

BTW, I am using Maya 2009 on Mac OSX.

MasterZap
04-28-2009, 10:41 AM
Un-premultipled (aka "straight" alpha) is an abomination that should be abolished.

Data comes out of a renderer being inherently in a "premultiplied" mode, and the data must be bastardized (by dividing by alpha) to mangle it into the "unpremultiplied". The SSS shaders utilize the alpha channels in the lightmap as a depth channel, and I would guess the "divide by alpha" will completly mangle the lightmap.

I wonder why you are using "straight" alpha? For what purpouse? I'd avoid it at any cost.

/Z

djx
04-28-2009, 01:21 PM
One use for straight color is in maya's layeredTexture and layeredShader, or anywhere that you use a fileTexture with alpha as a decal. An image with premultiplied color will exhibit a colored fringe (usiall grey if it was premultiplied on black) in these situarions. An image with straight color will work correctly.

Here's an example.

http://www.djx.com.au/cgtalk/preMult_v_straight/preMult_v_straight.jpg

The image at the top is a simple decal texture. Left hand side is straight color, right is premultiplied. The image at the bottom shows the decal rendered over green using a layeredTexture. You can see the fringe on the right.

Obviously you have shown that rendering misss_fast_skin_maya as straight does not work, but you can convert preMult to straight quite easily in aftereffects (and probably other apps). In aftereffects you would choose "Color: Straight (Unmatted)" in the output module options.

The bastard looks like this :p

http://www.djx.com.au/cgtalk/preMult_v_straight/skin_straight.jpg

-- David

vg1
04-28-2009, 02:36 PM
Master Zap and DJX

Thank you both for replying.

To answer your question Master Zap about why I want to render straight...I would like a straight render so that I can have clean alphas. I use After Effects for comping and I always get the dreaded black fringe on my renders, (mainly due to the fact that I render my layers using lights and then "add" all my layers in AE, which creates the fringe) that I usually have to either do multiple track mattes, use simple choke or remove color matting to get rid of the fringe.

If I am doing something wrong with the way I am comping my layers in AE, please let me know. As I said above, I render light passes then "add" them in AE. I am not an expert by any means so any input would be appreciated.

DJX, I am not sure what you mean about your method of converting premult images to straight using output module in AE. How would that method be a solution to have straight alpha images? Do you mean that I should go ahead and render out "premultiplied" images from Maya then export those images out of AE to get correct "straight" alphas with correct non-blown out values?

djx
04-28-2009, 10:40 PM
originally posted by vg1:
Do you mean that I should go ahead and render out "premultiplied" images from Maya then export those images out of AE to get correct "straight" alphas with correct non-blown out values?

Yes, thats what I meant. Its an extra step, but would give you the sequence the way you want it.

However, I should add that I also use after effects and have never had a problem simply using the premultiplied renders. I just set the interpretation to premultiplied with the correct background color when I import them?

-- David

vg1
04-29-2009, 02:11 AM
David,

That sounds like a good work around, thank you for that tip.

As for the fringe halo I'm getting, I think it is occuring due to using "add" blending mode to comp my sequences together. As I said, I render my layers as light passes. I am choosing the correct background color but the "add" blending mode I believe has an incorrect additive side effect that is causing the halo. Typically I add all my layers with the exception of the occlusion pass which is multiplied. Perhaps I am missing something.

Anyway, I will try your method. Thanks David.

CGTalk Moderation
04-29-2009, 02:11 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.