advanced rendering for AutoCAD
This is a concept topic, but can someone explain to me (architect not programmer) how the NXT rendering engine actually works. I just don get it. I will watch a pass go by randomly and generate pixels and then 10 passes later and then WOW didn’t see that light sources! 10 passes later, look there is a new shadow! 20 passes after that and then there is the entire new reflection happening…. Why is it so random? I know more passes make a better rendering and i know how to make it wor, but i don't know why it does. In laymans term, how does this random generation actually happens?
There are three quick things which effect this.
(These comments apply best to the Packet Engine)
1. Lights per pass
If you have 30 lights in your model and have lights per pass set to 3, then some lights will not be processed at all until the 10th pass. You could set lights per pass to 30 and see them all right away - but this usually slows down the rendering process overall - by processing too many lights per pass.
2. Large lights.
If you have a light which covers a larger ares - e.g. a 2 x 4 foot ceiling light - then only one random point in the light is processed for each pass. So with a single, large light you sill see individual shadows in each pass.
Eventually enough points are sampled to make a smooth image with soft lights. But in the first few passes you will see individual shadows appear from individual sampled light points.
3. Indirect and Reflected Light
Light bouncing off a wall or ceiling is not processed until after the light illuminates the wall or ceiling. So even with only 1 small light, you will see additional shadows in the early passes while waiting for the indirect lighiting to process and smooth out.
Sampling of Ceiling Lights
In this model, the ceiling lights have a rectangular area light above a grid.
This provides a good example of how random points in lights are sampled for each pass.
At the end of the first pass, only one point has been sampled from each ceiling light.
At the end of 5 passes, more points have been sampled from each light,
but it will take more than 20 passes to make the lights complete..
At the end of 20 passes, the lights are almost complete. However, this
scene will require 100 passes or more to allow all the light sources to converge.
Full Scene after 100 passes
Can we say that 100 pass is a good mark to judge a image fullness.
Or is it less or more. I use 50 passes should i push on.
By the way, Nice reply to question...........
There is no simple answer for the number of passes.
The conference room image is complex and looks good with 100 passes - but will look even better with 500 or 1,000.
But many outdoor landscape scenes too good with just 5 or 10 passes.
You will also get better renderings with the Path Tracer, or Engine 4, (alternate rendering engines). But they will take even more passes - althoug often with less time per pass.
You just need to get a feeling for this and see what works for you.
any insite into why it is so Random? Conceptualy wouldn't to follow a light ray around? Why does NXT seem to start at the bottom and work horizontally... but even that is random, skipping lines. How does a rendering engine actually work?
All three engines make heavy use of random numbers. In fact, they belong to a large family of algorithms known as "Monte Carlo" for their use of these sorts of numbers. (BTW, the other large family of algorithms which use random numbers are known as "Las Vegas" algorithms.)
In the Path Tracer engine, the use of random numbers manifests itself as visible noise which gradually resolves. In the Packet Tracer, or original engine, the use of random numbers produces discrete errors. These discrete errors can be much less graceful to resolve than the noisy errors-- you can proceed without a lot of change for a while until, suddenly (for example) an extra shadow might occur. The Path Tracer tends to resolve more gracefully-- there are fewer surprises. The trade-off is that it can take a long time for the noise to reach an acceptable level. The Packet Tracer tends to produce more acceptable images earlier in the process since noise is often completely absent. The probability of a "jarring" type of discrete error does decrease as the rendering progresses-- so after 1000 passes, for example, you're far less likely to see a new shadow appear.
The Hybrid engine has characteristics of both-- some discrete error and some noise.
That is where Monte Carlo came from! Never knew it. SO is the HYbrid better?
I really like the way this engine is going. It manages to elegantly solve a bunch of thorny lighting problems with minimal input from the user. I am still working on it so it may be a bit of a moving target for current users.
Whether it's better for you depends a lot on your needs. The original engine is still quite a bit faster for many applications. You can often get a decent image with this engine long before the rendering has converged on the "correct" solution. With the Hybrid engine, 100 passes will very rarely produce a good, noise-free, image-- many more will usually be required.
OTOH, your desert house model is probably a good candidate for the Hybrid or Path Tracer. The effects of indirect lighting, particularly on the underside of the eaves, is significant and is time-consuming to capture using the original engine.
I am actually running interiors of it right now. Used the packet render at 100 passes and got something good enough (1100x800 image). Took hours because of all the trees and cacti and complex glass everywhere (up to 15min for one pass!). Lighting just with indirect sun and lots of reflective bounces.
Going to run a batch of the exact same images with the Path render (300 passes) over the weekend. so far at 20 passes the renderings are softer with less reflective contrast.
Maybe I will cook them with the Hybrid after that... just so i can see the difference.
So, back to the original question. Why do rendering engines use Random numbers in the first place to make noise and redefine it. It doesn't seem to make big blocks of areas and then break it down to smaller areas; it just works off pixel by pixels.
There are lots of random numbers you're not noticing (and shouldn't). For a start, many sample are taken per pixel in an attempt to resolve an image. The positions within each pixel are random. We could subdivide each pixel regularly, but signal theory tells us that we will always get unwanted patterns this way. Adding randomness to pixel positions help alleviate that by trading some noise for the patterns. This is part of a filtering process which used to be called anti-aliasing.
The random numbers you are noticing have to do with solving the light transport equation (LTE). This equation is essentially a giant integral-- a summation of an infinite number of infinitesimally small pieces. If you remember back to calculus, the vast majority of integrals cannot be solved analytically (most of the ones we know how to solve were in the back of your calculus book.) Instead, integrals need to be approximated numerically, by subdividing their domains into little, but finite pieces. You can do this subdivision regularly, or, as we do, randomly.
There are many advantages to random sampling. Multi-dimensional integrals with large discontinuities, such as the LTE, converge much faster when you use random numbers. In addition, many techniques, such as importance sampling, are more easily implemented in a Monte Carlo style approach. nXt makes use of many of these techniques to capture many advanced effects like blurry or matte reflection of light, sklight, interior daylighting, and many others.
That is what i wanted to know! thanks!
Attached are the same images with only the egnine change and number of passes. Not happy with only 300 passes on the Path Render... might take more. Am going to run the same one with the Hybrid and see the diffrence. Any suggestions would be good, but want to show only natural light.