Jump to content

how to render sss in using 3Delight in Houdini


Recommended Posts

Well, figuring out HOW to render SSS in 3Delight is one story that I cannot help you with but I'll tell you that a good technique for combining the results of two renders is to avoid trying to blend the results of two renders in the compositing stage.

What you should try is:

a) render a non-motion-blurred image of the SSS in 3delight.

B) read this render in your mantra shader using an NDC-space lookup (and output the value into an output variable)

This will help avoid sampling differences between the two renderers, as Mantra will be taking care of all the motion-blur (along with the bulk of the shader).

Link to comment
Share on other sites

i have installed 3delight in H and would like to render only sss in 3delight and render other passes using the H. Can u guys help me out how to render sss since in Maya sss needs an rib statement to render out properly but in H i believe its not there any hack for this? or any way pls...

Having done this in PRman, I would reccomend you read the 3delight docs and find out what it is you need to your RIB file. I would imagine it would be something like some output variables like _area and _radiance, as well as the flags to turn of raster oriented dicing, backface culling, and hidden surface elimitation in your bake pass.

All of this stuff is avaliable from the edit rendering parameters dialog on your RenderMan ROP. If the 3delight workflow is the same as PRman (I imagine it is), it all works seamlessly with Houdini. You shouldn't need to do any sort of rib filtering or anything. The Houdini-Renderman workflow for this sort of baking stuff is really good, very transparent to the user (unlike the RFM stuff).

gl dude

Link to comment
Share on other sites

3Delight has a very nice built-in SSS support. Back in my Maya days, I implemented my own way to fast injecting the necessary code to my RIB and Ma files.

Here is part of a python code that I wrote for my in-house pipeline. This is 3Delight SSS shader part and you should define the variables first:

 contents = ''' 
 surface SSS_%s( ) 
 { 
 float Ka = %f,Kd = %f,Ks = %f ,roughness = %f ; 
 string SaraFaceColor = "%s"; 
 string SaraFaceReflection="%s"; 
 normal Nn = normalize(N); 
 normal Nf = faceforward(Nn, I); 
 vector V = normalize(-I); 
 color faceM; 
 color faceR; 
 if ( SaraFaceColor != "") 
 { 
 faceM = color texture(SaraFaceColor); 
 } 
 else 
 { 
 faceM = 1; 
 } 
 if ( SaraFaceReflection != "") 
 { 
 faceR = color texture(SaraFaceReflection); 
 } 
 else 
 { 
 faceR = 0; 
 } 
 uniform string raytype = "unknown"; 
 rayinfo( "type", raytype ); 
 Oi = Os; 
 if( raytype == "subsurface" ) 
 { 
 Ci = Oi* (Ka * ambient() * Cs * faceM + Kd * diffuse(Nn)); 
 } 
 else 
 { 
 Ci = Oi*((subsurface(P) * Cs * faceM) + (Ks * specular(Nf, V, roughness) * faceR )) ; 
 } 
 } 
 ''' % (sufix, Ambient, Diffuse, Specular, Roughness,cmap ,rmap )


Also make sure that you add this line to your RIB file:

 Add_code = "\t\tAttribute \"visibility\" \"string subsurface\" \"marble\"\r\n\r\n\t\t# parameters taken from the original BSSRDF paper.\r\n\t\tAttribute \"subsurface\"\r\n\t\t\t\"scattering\" [%f %f %f ]\r\n\t\t\t\"absorption\" [%f %f %f]\r\n\t\t\t\"refractionindex\" %f\r\n\t\t\t\"shadingrate\" %f\r\n\t\t\t\"scale\" %f" % (Scat1, Scat2, Scat3, Abso1, Abso2, Abso3, RefIn, Shadr, sca)

As I mentioned you must define all of the variables.

for example:

 Scat1 = 3.19 
 Scat2 = 3.62 
 Scat3 = 5.00 
 Abso1 = 0.0001 
 Abso2 = 0.02 
 Abso3 = 0.08 
 RefIn = 1.50 
 Shadr = 16.0 
 sca = 0.50

 cmap = <your texture address>
 rmap = <your texture address>
 amb, dif, spec, rough = (0.1, 0.9, 0.1, 0.4) 
 for i in ('Ambient', 'Diffuse', 'Specular','Roughness'): 
 globals()[i] = .7

Good luck and keep me posted with your results.

Edited by Farsheed Ashouri
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...