View Full Version : about rendering pixar occlusion and rendering other passes
creaminds 04-16-2004, 07:43 AM I'm interested in learnig how to use occlusion shaders. I'm using Pixar Renderman. The problem is that I can't understand how this thing works. I found out from the Adrew's site that I have to render passes separately. I know to render the occlusion pass but I didn't understand how I can render the other passes.
Can anyone help ?
:cry:
|
|
lazzhar
04-16-2004, 11:43 AM
Just setup your lighting as usual then render. After that you assign your AO shader to all the geometries in your scene and without need to use light, render another picture. You end up with 2 pictures, one colored , the second grayed. Compose in your 2d program by puttin the AO pass over the other pass with Multiply mode, or play a little bit by duplicating layers and trying other modes.
Good luck.
creaminds
04-16-2004, 12:51 PM
First of all thnks for your reply. I love your picture with the pot and the wall. I'm trying myself to achieve something like this.
Yes I think I can do the color pass and the occ. pass but what avout the light pass and indirect ilumm pass ?
I'm thinking of doing some tests so everyone can see what I do.
This is my occlusion pass: (i know it has some artifacts but I don't know to resolve it)
http://www.workaholics.latodis-med.com/rendere/oale_occ.jpg
lazzhar would you be so kind and show me the light setup for your scene (if you want you can send me a screenshot trough email)
playmesumch00ns
04-16-2004, 02:24 PM
1. Just render the lighting (with full colour, textures etc) seperately, then multiply with the AO pass.
2. Then if you want indirect illumination from an HDRI, render this out, mult with the AO pass then add onto the result of 1.
lazzhar
04-16-2004, 08:11 PM
>>lazzhar would you be so kind and show me the light setup for your scene (if you want you can send me a screenshot trough email)
No problem, just drop me an email to lazzhar@hotmail.com
Andrew W
04-17-2004, 12:39 PM
I would recommend doing some reading on "arbitrary outs" also known as "secondary outputs". This is a method of writing shaders to output more than one pass per render. You will need to code a shader yourself, but that's good practice anyway. On projects I've worked on we've used up to 35 arb outs so don't hold back! It'll help give you more control in the composite. There's some quite detailed tutorials in the RAT docs. You still need to compute the ambient occlusion first if your using my old-fashioined method, but to be honest these days now that PRMan ray-traces I'd recommend using the Pixar method, it's a lot less hassle. I think depth-map based ambient occlusion is well past its sell-by date now.
All the best,
Andrew
fxjeane
04-17-2004, 09:28 PM
Originally posted by Andrew W
I would recommend doing some reading on "arbitrary outs" also known as "secondary outputs". This is a method of writing shaders to output more than one pass per render. You will need to code a shader yourself, but that's good practice anyway.... There's some quite detailed tutorials in the RAT docs.
Andrew
Hi there!... here is a tutorial that I published some time ago. I hope it helps you get the ball rolling with AOV's (arbitrary output variables)
http://www.rendermanacademy.com/docs/multipass.htm
Cheers
Rudy
rendermaniac
04-19-2004, 01:49 AM
Personally at the moment I would render a seperate ambient occlusion pass and mutliply in 2D. Secondary outputs can definitely help you get this first pass, but really you only want to render out an occlusion pass once if you can help it.
Raytracing is definitely becoming practical, unfortunately when you have animated occlusion (especially between independent objects)...and your animation then changes... then you have to recalculate it which can take a lot of time. You then have to either just raytrace each time, or be more clever and rebake the changed objects. This takes a lot of setup time of course.
To improve the quality change the max error to about 0.1 - this is the amount of adaptive sampling that is done (ie send more rays to where there is more detail on the model). Personally I fidn the default of 0.5 is really rubbish. Also if you want ot get occlusion from displacement you need to turn on trace displacement and you will need to bring down the max pixel distance. I find that this needs to be zero to properly get displacement effects and does not give you practical render times. If anyone knows how to get fast occusion on displacement I would love to know!
with pro server 11.5 things have got a lot better with ambient occlusion, but you still will probably need to go beyond the default RAT shaders to get a good setup.
Simon
creaminds
04-19-2004, 06:40 AM
thnks for all of your replys.
Reading a SIGGRAPH course on ambient occlusion I found out that the people from ILM use for their renderings a bent normal pass. (Does anyone knows where I can find other courses?)
What is this pass ? and how I can render it?
And if I have an animation ? How can I improve my occlusion pass rendering times ? (it' huge just for one frame).
Reading other posts here on Cgtalk I found out that I can bake the occlusion passes in a texture. How I can do that ? And also If I have an animation how can I achieve this ?
In the pixar's movies they use occlusion shaders ?(just beeing curios, because I love them)
rendermaniac
04-20-2004, 12:14 AM
Ambient Occlusion litterally is finding out how occluded an object is from its environment. THi usually gives you shadows due to the object itself and objects very close to it. This is a good approximation of real life.
The "bent normal pass" is actually a pass of the average direction the illumination came from. You can work this out because the ambient occlusion pass works by firing off rays and seeing if they hit anything (ie it is shadowed in those directions). By definition any other directions allow light from the environment to hit the object.
The ILM siggraph paper then averaged these directions together and use it as a directional lookup into an environment map. THis is far more acurate thay using the surface normal (normal lambertian surfaces receive the strongest light contribution directly from the normal direction) because obviously the result will be wrong if you have a large object (like the ground!) in that direction.
It is called a bent normal pass because this vector was saved out as an rgb image with the red channel recording the x value, y in the green and z in the blue (order in not important though as long as you know which is which) for every screen pixel. This is usually taken away from the normal to keep the number low. It is likely the average illumination direction will be pretty close to the normal direction.
You can then read this image with your shader and get back this average lighting vector.
This is exactly what Andrew's shaders do.
You can get an even better global illumination approximation using RenderMan's occlusion() function if you pass it an environment map directly. In this case there is a lookup everytime the ray tracing isn't shadowed. This accounts for effects where you have an object close to the sample point with a really bright rim. In this case the average illumination direction is directly towards the shadowing object and so a more accurate approximation is needed.
Unfortunately ambient occlusion is still pretty slow. It is faster than proper GI because you only need one raytrace bounce and you do not need to calculate the colour of the surface it hits. However you still have to send off a hell of a lot of rays!
I agree with Andrew that raytracing is prefered over shadow maps. Shadow maps do give you a smoother result, but involve a lot more setup and quickly become unmaneagable with lots of objects. Plus they break down where you have a situation like an indoor scene. There has been some really nice work done with them though.
For most of the RenderMan siggraph courses (I think this is the 2002 one) have a look at http://renderman.org/RMR/Books/index.html Tal Lancaster maintains a really great site and he has very kindly made these available for download.
Simon
rendermaniac
04-20-2004, 12:36 AM
PS from what I have heard The Incredibles will be the first Pixar movie to use ambient occlusion. I may be wrong though.
Simon
creaminds
04-21-2004, 08:23 AM
simon thnks for the info .......
but because i'm just a begginer ... i can't quite understand everything you said.
what you say sounds exactly like the people from ILM are saying.
using their tehnique I've tried to render my scene using a HDRI image follwoing the tutorial in the pixar's docs so I can obtain my ambient environment light pass. I come out with this image (it didn't loks quite right).
The hdri images is taken fron Paul Debevec's site. I think that my mistake is that I haven't unfold the picture using HDRI Shop from his site.
http://www.workaholics.latodis-med.com/rendere/02.jpg
Reading the presentation from ILMIi found out that they are using occlusion for every pass: reflection occlusion , spot lights rendered with occlusion and saving the occlusion in files wich are read by specific shaders (reflection, light, etc).
http://www.workaholics.latodis-med.com/rendere/01.jpg
http://www.workaholics.latodis-med.com/rendere/03.jpg
I have read that chapter a lot of times but unfortunately is a little complicate for me at this moment, so I came to the conclusion that I have to take it a little slow. So I'm asking you:if I want to use their method where I start ?
ps: is there on the net some good tutorials on configuring a render farm? if so please post some links. I do wish to configure one.
thnks everyone for help.
CGTalk Moderation
01-18-2006, 02:00 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.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.