render time question

Started by Kevin F, April 13, 2007, 07:35:56 AM

Previous topic - Next topic

Kevin F

Why is it that render times are not directly proportional to image size? for example, I've rendered an image at 320 x 240 which took 13min 42 secs, then the same image, same settings but at 640 x 480 takes 3hrs 8min! This is 14 times as long and not the 4 times as indicated by the increase in size of 4 fold.
At this rate (if linear) a 1280 x 960 image will take over 14 x 3hrs!
Am I overlooking something obvious?javascript:void(0);
Huh
Kevin.

rcallicotte

Maybe someone who programs procedural graphics could explain it with more scientific insight.    :o
So this is Disney World.  Can we live here?

DiscoBall

Perhaps your scene is complicated and rendering at a higher resolution may make Terragen work a lot harder ;)

old_blaggard

The way Matt explained it to me, if you make an image 4 times bigger and don't change anything else, it should only take four times as long.  Are you sure you only changed the render size?  Also, did you have any other applications going in the background?  Perhaps you had lots of objects and they had to populate for the large render but had already been populated for the small one.  There are lots of things that could account for a sharp increase in render time.
http://www.terragen.org - A great Terragen resource with models, contests, galleries, and forums.

Harvey Birdman

I believe the non-linear relationship is due to system memory limitations, either in hardware or in the address space allocated for an app by the OS. If a machine had unlimited RAM and an unlimited address range for an app, then I think OB's theoretical linear relationship would hold true. But what I think happens is you exceed the available RAM for the app and it has to read/write an exorbitant amount of data to the disk. This slow things down considerably. There is probably an optimum image size, depending on the amount of RAM you're consuming with objects in the image and the amount your machine has to begin with. It's definitely non-linear, though - you can sometimes get much better performance (depending on the image, of course) by tiling it into smaller chunks than by trying to render the whole thing at once.

Kevin F

Quote from: old_blaggard on April 13, 2007, 11:54:31 AM
The way Matt explained it to me, if you make an image 4 times bigger and don't change anything else, it should only take four times as long.  Are you sure you only changed the render size?  Also, did you have any other applications going in the background?  Perhaps you had lots of objects and they had to populate for the large render but had already been populated for the small one.  There are lots of things that could account for a sharp increase in render time.

Well, no other applications going on, no populations (other than 3 lots of fake stones) and 2Gig of memory. I am using the reflective shader though.
Kevin.

sonshine777

When you render at 320 x 240 are you using the quick render camera? Likewise when you render at 640 x 480 are you using the Full render camera? If so, the detail settings are higher for the full as opposed to the quick.

This will make a big difference in render time.

Kevin F

Quote from: sonshine777 on April 13, 2007, 12:54:00 PM
When you render at 320 x 240 are you using the quick render camera? Likewise when you render at 640 x 480 are you using the Full render camera? If so, the detail settings are higher for the full as opposed to the quick.

This will make a big difference in render time.

no, both at full render.

sonshine777


child@play

well, technically it should be the same camera, just with different default settings, so i see no problem in rendering a preview with 'full render' when the quality settings are downsampled accordingly.
perfection is not when there's nothing more to add, it's reached when nothing more can be left out


Oshyan

#10
Generally speaking if you *only* change render resolution then render time should be in direct proportion to the number of pixels rendered. If you increase the total number of pixels by 4x (2x resolution in each direction) then render time should be about 4 times longer. I've confirmed this with my own tests on several reasonably varied scenes. This of course assumes that memory is not a limitation which in some cases it very well may be.

Note also that GI seems to have a somewhat unpredictable affect on the math for projecting render times based on resolution. Generally it works out fairly close to the expected time but it can be longer when GI is in use. Perhaps the GI sample density is nonlinear for scene resolution or something along those lines.

Without knowing more about the specific scene in question it's hard to say what might have been going on. We'd have to reproduce the problem here in order to troubleshoot it.

- Oshyan