PDA

View Full Version : Need some help with Rendering Concepts


mjkennedy
01-30-2009, 05:25 PM
Hi all,

So... rendering has never been one of my strong points. Thus, lately I've been spending a lot of time reading the XSI guides, watching DT tutorials, etc. etc., trying to learn more about the process.

While I have learned a lot, there are a few questions I have, which haven't been answered by my research, and was hoping someone could help me out. Here are a couple:

Final Gathering Vs. Ambient Occlusion?: Both of these seem to give you similar looks, however, I was wondering if there are any general rules for when or when not to use these techniques?

When should I use the BSP tree?: I'd be lying if I said I fully understood the BSP tree. Of course, I gather it's an optimization tool... however, I also understand it's kind of a last resort. When if ever, should I use it?

What's up with the Elliptical Filtering settings?:Even though I've read (and watched) explinations for what these settings mean, I still can't understand what they actually do. Furthermore, in playing with the settings, I can see barely any difference while changing the settings. The only thing I've managed to figure out is turning the "disc radius" down reduces render times. Here are the settings:

Maximum Eccentricity
Maximum Pixels for Min Radius
Disc Radius
Bilinear Interpolation

finally...

Should I render out in passes?: I gather that rendering in passes gives you more control, but outside of control, is there any advantage to rendering everything out in seperate passes? Will it save significantly on render times?

Oh... and what are your thoughts on compositing with the FX tree... as opposed to say, After Effects?


Any info would be greatly apprecated.

Thanks,

Matt


Edit: Woops... I meant to post this in the XSI forum. Sorry bout that.

Ohmanoggin
01-30-2009, 07:44 PM
Final Gathering Vs. Ambient Occlusion?:

A: Both can have a similar look and produce those soft looking shadow areas.

FG is useful at simulating the diffuse light emitted between objects. For example a red ball laying on a white floor, where you would expect to see a hint of red on the floor due to the diffuse light coming off the ball. A common FG technique is to put a HDRI texture (or any texture) in the environment shaders of your render pass. The light in the scene picks up lots of different colors on everything in an FG render.

AO is better at bringing out details of objects. Details show up stronger and more pronounced.
----------------------------------------
BSP tree should always be used, but most artists seem to ignore it. However, it can definitely speed up render times. It is kind of trial and error, so it doesn't really matter if you understand it, but what parameters to play with.
------------------------------------------
You don't have to render everything in passes, but they are very powerful.
Here is an example:
You want to control the direction of your shadows. Maybe you have a car and you want a nice big shadow in front of it. You get all the lighting looking great for the car, but everytime you move lights to get the shadow to hit where you need it you screw up the nice lighting on the car.

Solution: Render everything but the shadows. Then render a seperate shadow pass just worrying about the shadow you need. Then you can composite it over the rest of the image. You also have the advantage of tweaking the shadow even more in compositing without having to rerender everthing.

Another Example.
One time I had to render a robot on something that looked like a wind tunnel. The walls of the tunnel had thousands of tiny holes. Aliasing was killing me, and I had to set it pretty high to get the holes to show up, but this killed my rendering times. The robot didn't need the same high settings, but tunnel holes wouldn't show up.

Solution:
I renderded the robot and tunnel in seperate passes and used different aliasing settings. I also rendered a seperate shadow pass and composited them all together.

Passes also make it easy to set up objects for different rendering needs. Using partitions (which are nothing more than directories) you can quickly say everthing in your scene is red or has an AO shader without replacing every material in your scene. Or maybe you want to do some tests on some objects without having to constantly turn off the rendering visibity for everything else. Just make a pass for those objects then quickly switch around with different passes.


----------------------------------------------------------
FX Tree is a good compositor and really useful for pluging different layers together to tweak like you would in the RenderTree. However, you would most likely still want AE or other compositor where you can lay our clips out over a timeline.

Hope this helps,
Ohmanoggin

JDex
01-30-2009, 09:14 PM
To add to Ohmanoggin's response:

Final Gathering Vs. Ambient Occlusion?: Both of these seem to give you similar looks, however, I was wondering if there are any general rules for when or when not to use these techniques?
FG creates a simulated bounced light appearance, providing color bleed from reflected light and provides an occlusion effect much like AO techniques. The bounced light/color bleed IMO is the desirable advantage of FG solutions over AO, however that comes at the cost of simple control over occlusion (like AO) and increased render times and added complexity in animated scenes.

When should I use the BSP tree?: I'd be lying if I said I fully understood the BSP tree. Of course, I gather it's an optimization tool... however, I also understand it's kind of a last resort. When if ever, should I use it?
Not a last resort. I strongly recommend coming to grips with the BSP tree. On renders where rendertime is not a concern to me, I generally leave it at default, but those projects aren't common honestly. A basic understanding of it can mean a few minutes can save several hours on animations. Once you "get" the basics of it, the trick becomes the judgement call on when your BSP is "good enough". You don't want to tweak it to death... it's nice though when you start to get a handle on it. See if you can watch the Production Series videos on the subject... perhaps that "Vast" site still hosts them (sorry, don't have a link, perhaps search around a bit).

What's up with the Elliptical Filtering settings?:Even though I've read (and watched) explinations for what these settings mean, I still can't understand what they actually do. Furthermore, in playing with the settings, I can see barely any difference while changing the settings. The only thing I've managed to figure out is turning the "disc radius" down reduces render times. Here are the settings:

Maximum Eccentricity
Maximum Pixels for Min Radius
Disc Radius
Bilinear Interpolation

This is another instance the Production Series videos could help with. EF is not usually going to help your rendertimes - quite the opposite actually, unless you're running out of memory - using pyramidal .map files for large textures, or textures that are too high a resolution for a portion of a shot (i.e. a car that is high res but moving away from the camera across an animation). Learn the principals of it, then use it sparingly.

Should I render out in passes?: I gather that rendering in passes gives you more control, but outside of control, is there any advantage to rendering everything out in seperate passes? Will it save significantly on render times?
Project dependent. I'm a big fan of passes, probably to a fault. A handful of passes can make your life easier in many circumnstances. A large number will drive you crazy unless you manage it and plan it well. Flexibility post-render is really valuable when the "client" really doesn't know what they want, but managing a complex composite can be harder than starting over when your client changes everything. I'd say get good at the science of building passes, and planning/managing them - then keep your projects as simple as the scope allows.

Oh... and what are your thoughts on compositing with the FX tree... as opposed to say, After Effects?
After Effects is a fine compositor with a number of useful plugins. The FXTree is a fine compositor with awesome integration in XSI. Which is better is project/artist dependant. Layers vs. Nodal... both have strengths. Neither is best-of-class.

mjkennedy
01-31-2009, 02:35 PM
This is another instance the Production Series videos could help with. EF is not usually going to help your rendertimes - quite the opposite actually, unless you're running out of memory - using pyramidal .map files for large textures, or textures that are too high a resolution for a portion of a shot (i.e. a car that is high res but moving away from the camera across an animation). Learn the principals of it, then use it sparingly.



Actually, I've watched all those, including the ones on elliptical filtering.:cool:

Unfortunately, at the risk of sounding stupid, I have to say I just don't get that they're trying to say. And while I can get the "look" I want out of the settings, it annoys me not knowing what the settings actually do.

As for saving on render times, it seems as though it would. For example, I have a scene that I'm working on that needs crazy high AA settings to render an element in the scene without flickering. I turned on elliptical filtering, and while the render times were by no means speedy, they were certainly better that what I would have needed to turn the AA to.

Oh, and that's another thing I just didn't "get". Pyrimidal maps. I understand the concept of them, but not really getting how to employ them.



Project dependent. I'm a big fan of passes, probably to a fault. A handful of passes can make your life easier in many circumnstances. A large number will drive you crazy unless you manage it and plan it well. Flexibility post-render is really valuable when the "client" really doesn't know what they want, but managing a complex composite can be harder than starting over when your client changes everything. I'd say get good at the science of building passes, and planning/managing them - then keep your projects as simple as the scope allows.

I guess my biggest problem with passes is how open ended they are, and not really knowing how far to take it. Should I just render out seperate elements... should I break those elements up further, into ambient/diffuse/shadow/etc. Like you said, I'm sure it's project dependant.

As well, would rendering out in multiple passes save on render times? Its my understanding that, if you added up the time it took to render out all those passes, it would often equal what it would have taken to render out the one pass.



After Effects is a fine compositor with a number of useful plugins. The FXTree is a fine compositor with awesome integration in XSI. Which is better is project/artist dependant. Layers vs. Nodal... both have strengths. Neither is best-of-class.

What would be "best of class"... if any such thing exists? As well, could you give some examples of strengths for either layer or nodal systems?


Thanks for all the help!

Matt

mjkennedy
01-31-2009, 02:37 PM
Final Gathering Vs. Ambient Occlusion?:

A: Both can have a similar look and produce those soft looking shadow areas.

FG is useful at simulating the diffuse light emitted between objects. For example a red ball laying on a white floor, where you would expect to see a hint of red on the floor due to the diffuse light coming off the ball. A common FG technique is to put a HDRI texture (or any texture) in the environment shaders of your render pass. The light in the scene picks up lots of different colors on everything in an FG render.

AO is better at bringing out details of objects. Details show up stronger and more pronounced.


I think the "soft shadows" and pronounced details are more of what I'm after, as opposed to bleeding colors (at least with what I'm working on now). Thus, perhaps AO is the preferred option? It would be faster, yes?

Thanks for the help! Appreciate it.

Matt

ThE_JacO
02-01-2009, 10:59 AM
Not a last resort. I strongly recommend coming to grips with the BSP tree.
I would have recommended the same if there was any point left to it.
As of the latest MRay BSP isn't available anymore, since thenew bounding volume acceleration structure superseds it. The only way to use it is to force it on (and configure it) through an environment variable before start-up, and even then if some features dependent on the new acceleration structure are used, BSP gets ignored.

Studying acceleration structures and how a rendering engine works in general is always going to be beneficial, but learning to hit magic numbers for MRay's BSP specifically is going the way of the dodo.

Layers vs. Nodal... both have strengths. Neither is best-of-class.
Sorry, this I strongly disagree with.
The very simple way to look at this is that nodes can always be used and wrapped to do things exactly as layers do, the opposite isn't true however.
Layers are a retarded simplification of something that shouldn't be mistified that way, and Adobe with PS and AE is guilty of contributing to getting a whole chunk of the industry stuck in the dark ages for no reason other than their own stupid dev and business models.

Nodes -are- best of class by a very, very long shot when it comes to compositing, layers are a limitation, a liability, and likely to obscure important parts of your workflow from you.
It doesn't help that AE is also flawed to the core in how it handles basic mixing operations and colour. For anything except some motion graphics AE is the worst possible compositing system one could decide to rely on. That simple.

mjkennedy
02-02-2009, 01:59 PM
For anything except some motion graphics AE is the worst possible compositing system one could decide to rely on. That simple.

Well than it's a good thing I've been using After Effect all this time! :surprised

Would you know of any good resources that explain/illustrate the "benefits" of a nodal system. Or for that matter, any good tutorials?

Thanks,

Matt

JDex
02-03-2009, 12:34 AM
As for saving on render times, it seems as though it would. For example, I have a scene that I'm working on that needs crazy high AA settings to render an element in the scene without flickering. I turned on elliptical filtering, and while the render times were by no means speedy, they were certainly better that what I would have needed to turn the AA to.
Understood. In many instances that would be the case. EF seems to be a pretty intense algorithm, but certainly less-so than very high AA. I can often hide flickering that would be solved w/ higher AA in places where EF would be useful with Motion Blur and DOF (in post being faster). Just depends on the situation and the tools/techniques available.

Oh, and that's another thing I just didn't "get". Pyrimidal maps. I understand the concept of them, but not really getting how to employ them.
It's relatively simple to employ them, simply using the imf_ commandline tool to generate them. As for when to use them, I'm not confident that I'm using best practices myself yet, but I generally use them for any texture map over 1024, or any that's smaller in a material where EF will be applied.


I guess my biggest problem with passes is how open ended they are, and not really knowing how far to take it. Should I just render out seperate elements... should I break those elements up further, into ambient/diffuse/shadow/etc. Like you said, I'm sure it's project dependant.
My biggest problem as well. Sometimes a project starts out and you think it's the best scenario to push passes, then mid-project something changes or things don't go as planned and you suddenly loathe your decision. I think that it continues to get better as your experience in different project types evolves.

As well, would rendering out in multiple passes save on render times? Its my understanding that, if you added up the time it took to render out all those passes, it would often equal what it would have taken to render out the one pass.
Again, experience will help determine that. I had a project that simply required a huge volume of passes. The output size and the complexity of the scenes made it so that passes was the only option to get things done. In another circumstance I broke things out into passes to accommodate perceived uncertainty from the producer, and it was a total waste of time. In yet another circumstance, breaking things out into passes seemed like a big mistake right up until the deadline, when sudden changes were brought up and the ability to make huge adjustments in post, with minimal re-rendering saved the client's neck. Sometimes you just have to go with your gut and learn what you can from the decisions made.


What would be "best of class"... if any such thing exists? As well, could you give some examples of strengths for either layer or nodal systems?
Best of class was probably not the best cliche to use. AE and Combustion would be the two main Layered Compositors that I have used... I honestly haven't used either recently enough to be in any way authoritative about their relative strengths and weaknesses of their current versions to provide insight, but in past versions - Combustion could (in my hands) wallop AE in the compositing areas, while AE held it's strengths in Motion Graphics areas. In the Nodal realm, the FXtree holds up quite well in many of the core areas (especially for those already comfortable w/ XSI and it's look/workflow), but there are large areas of modern post-work that some of the other Nodals just fill the gaps better. Examples of other Nodal systems would be Nuke, Fusion and Shake. Lot's of good places to get more info on them out in internet-land...

As for Layers vs Nodal... Nodal offers a great deal of flexibility. The organization of complex composites can be very easy to manage and allows for easier reuse of elements and data than Layered systems provide IMO. Of course the way you think, impacts which will suit you. Layered is familiar (as a Photoshop user), and Nodal is weird voodoo until it becomes familiar. It's actually quite difficult to quantify in writing, others can hopefully chime in w/ better insight.

I would have recommended the same if there was any point left to it.
As of the latest MRay BSP isn't available anymore, since thenew bounding volume acceleration structure superseds it. The only way to use it is to force it on (and configure it) through an environment variable before start-up, and even then if some features dependent on the new acceleration structure are used, BSP gets ignored.

Studying acceleration structures and how a rendering engine works in general is always going to be beneficial, but learning to hit magic numbers for MRay's BSP specifically is going the way of the dodo.
Aye... I probably haven't been in v7 enough to be relevant on the matter anymore - I still open 5.11 when I want something to get done quickly. I applaud the reduced complexity, but to a degree feel like I'm being stripped of control - now that I've come to grips with the practice of optimization (though my theory is probably still very lacking).

Sorry, this I strongly disagree with.
The very simple way to look at this is that nodes can always be used and wrapped to do things exactly as layers do, the opposite isn't true however.
Layers are a retarded simplification of something that shouldn't be mistified that way, and Adobe with PS and AE is guilty of contributing to getting a whole chunk of the industry stuck in the dark ages for no reason other than their own stupid dev and business models.

Nodes -are- best of class by a very, very long shot when it comes to compositing, layers are a limitation, a liability, and likely to obscure important parts of your workflow from you.
It doesn't help that AE is also flawed to the core in how it handles basic mixing operations and colour. For anything except some motion graphics AE is the worst possible compositing system one could decide to rely on. That simple.
Sorry my poorly chosen, subjective cliche was ineffective. I was referring to AE not necessarily being all-around the best layered compositor, and likewise for the FXTree in the Nodal "class". Not comparing the Apple (Nodal) to 10 year old Frozen Apple Juice from Concentrate (Layered). =)

ThE_JacO
02-03-2009, 06:50 AM
Aye... I probably haven't been in v7 enough to be relevant on the matter anymore - I still open 5.11 when I want something to get done quickly. I applaud the reduced complexity, but to a degree feel like I'm being stripped of control - now that I've come to grips with the practice of optimization (though my theory is probably still very lacking).

To be honest, the fact that the acceleration structure needed manual tweaking to be effective wasn't symptom of a high degree of control, just of a very, very poor implementation forcing the user to provide input in something that in many other engines is efficiently and transparently taken off the user burdens.

The new acceleration structure simply can't be configured the same way, so in no way you are relinquishing control in favour of user nannying. Said that, it needs more work, since the way it is now it often is much slower than hand tweaking the older straight simil-BSP. That's a fault with Mental Images implementation though, not a bad decision di per se' or the wrong choice of paradigm.

Simply put, forcing the user to deal with acceleration structures population (especially with the debugging tools being as poor and approximative as they've always been) was and remains a necessary evil due to shortcomings of the software provider, not something you should want to do.
Understanding them is good, as is understanding the basics of rendering even if you suffer them rather than manipulating them directly, having to deal with magic numbers when not strictly necessary though is something that simply shouldn't happen.

CGTalk Moderation
02-03-2009, 06:50 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.