POV-Ray : Newsgroups : povray.general : Scene optimization Server Time
27 Dec 2024 05:25:49 EST (-0500)
  Scene optimization (Message 1 to 10 of 10)  
From: Anthony D  Baye
Subject: Scene optimization
Date: 13 Mar 2007 20:29:38
Message: <45f75002$1@news.povray.org>
I'm currently working on several large scenes, at least one of which 
rewuires radiosity.  I'd like to remove all the light sources from the 
scene, and light it purely with radiosity, but it contains candle 
objects which use a filtering media that only looks right with light 
sources.

The end result is a scene with five seperate light sources that may look 
nice when rendered, but has a maximum render speed of 1:06:00 per line.

Can anybody provide me with some tips and hints on optimizing textures, 
lighting schemes, and other scene settings for faster render times 
without compromizing image quality?

Any advice would be greatly appreciated.


ADB


Post a reply to this message

From: Chambers
Subject: Re: Scene optimization
Date: 13 Mar 2007 21:23:08
Message: <45f75c8c@news.povray.org>
Anthony D. Baye wrote:
> Can anybody provide me with some tips and hints on optimizing textures, 
> lighting schemes, and other scene settings for faster render times 
> without compromizing image quality?
> 
> Any advice would be greatly appreciated.


Probably not without more information.

Do you use any functions (for instance, in isosurfaces)?  Those can 
often be optimized to provide similar results at much better speeds.

Check the statistics at the end of your render.  If you see that 
something has an extremely low hit rate (say, <5%) you could probably 
provide better bounding for it.

...Chambers


Post a reply to this message

From: Alain
Subject: Re: Scene optimization
Date: 14 Mar 2007 20:42:23
Message: <45f8a47f$1@news.povray.org>
Anthony D. Baye nous apporta ses lumieres en ce 13-03-2007 21:29:
> I'm currently working on several large scenes, at least one of which 
> rewuires radiosity.  I'd like to remove all the light sources from the 
> scene, and light it purely with radiosity, but it contains candle 
> objects which use a filtering media that only looks right with light 
> sources.

> The end result is a scene with five seperate light sources that may look 
> nice when rendered, but has a maximum render speed of 1:06:00 per line.

> Can anybody provide me with some tips and hints on optimizing textures, 
> lighting schemes, and other scene settings for faster render times 
> without compromizing image quality?

> Any advice would be greatly appreciated.


> ADB
In the radiosity section, do you change error_bound? To what extent? When you 
push it down, the rendering time increase. It also requires a higher count to 
prevent splotshiness, resulting in still longer renders. One of the main reason 
to use small error_bound is to produce sharper and deeper shadows.
You can try lowering pretrace_end. At the cost of more pretrace time, it may 
allows you to use more relaxed settings elsewhere, resulting in globaly faster 
renders.
Do you have "normals on" in the radiosity block? Normal computation in radiosity 
is very computationaly heavy. If you can do without, remove normals on.
Do you have large difference/intersection where you remove 100's small pieces 
from a large base object? You may try diferencing a blob instead of many spheres 
and cylinders. You may also try using merge to combine all the pieces that you 
remove. That way, you only test 2 bounding box instead of one for each components.
If you use area_light, also use adaptive 0. If this give artefacts, try adaptive 
1 (need light array at least 5*5 to be benefical) or 2 (min of 9*9). When using 
adaptive, it's best to use powers of 2 +1 to get the best efficiency.
Do you use media? The default sampling method is method 3. When using that, 
using intervals larger than 1 is a speed killer. Stay with intervals 1 and 
increase samples. samples 10 interval 5 is way slower than samples 100. I've 
done the tests.
If you have an isosurface that looks like it can be simulated with a blob, try 
using a blob to get a similar shape.
If you have an isosurface with some very large max_gradient, Using the log, 
square root or cube root of the function may allows you to reduce max_gradient 
to a more reasonable range, speeding up it's rendering.
Many reflection or refractions? Lots of total internal reflections? Try 
increasing adc_bailout. In some cases, the visual impact is negligeale, but the 
resulting speed up very interesting. The default is 1/256, depending on the 
scane, you may get by with as much as 1/100 or even 1/64 without to much 
negative impact!
Any glossy object? phong and specular don't work with radiosity. You can get a 
similar effect using a small amount of blured reflection, but it will increase 
the rendering time.
Filtering and scattering media never react to radiosity, they need actual 
lights. Emissive media can illuminate radiosity if you use "media on" in the 
radiosity block.
Simple textures can't be optimised, they are as simple as can be. Layered ones 
can be worked upon. You need some test scene with some simple objects to receive 
your test textures. Start with your layered texture on one object. Now, on 
another object in the same scene, try to emulate the complex texture with a 
simpler one. Once you find a suitable, simpler texture, copy it to your real scene.
Using blured reflections? Do you have any object with blured reflection 
reflecting in another surface also using blured reflection? High quality blured 
reflection can have as many as 256 components, resulting in 256 reflected rays 
for each pixel. If it reflect another such surface, you end up with as many as 
65536 rays to evaluate! Duplicating those objects and having the original with 
the blured reflection and "no_reflection"(don't show in reflection) and a copy 
with normal reflection and "no_image" (visible only in reflections) can help 
aleviate the problem.
In some cases, using light_group can significatively improve your rendering time.

-- 
Alain
-------------------------------------------------
'I had to hit him -- he was starting to make sense.'


Post a reply to this message

From: Anthony D  Baye
Subject: Re: Scene optimization
Date: 15 Mar 2007 14:00:02
Message: <web.45f99727927a0a0a2de2099c0@news.povray.org>
> In the radiosity section, do you change error_bound? To what extent? When you
> push it down, the rendering time increase. It also requires a higher count to
> prevent splotshiness, resulting in still longer renders. One of the main reason
> to use small error_bound is to produce sharper and deeper shadows.
> You can try lowering pretrace_end. At the cost of more pretrace time, it may
> allows you to use more relaxed settings elsewhere, resulting in globaly faster
> renders.
> Do you have "normals on" in the radiosity block? Normal computation in radiosity
> is very computationaly heavy. If you can do without, remove normals on.

/> My radiosity settings are pretty default, the count is set to 35, the
error_bound is 0.2.  I do use media on, but I don't think I have normals
on.

> Do you have large difference/intersection where you remove 100's small pieces
> from a large base object? You may try diferencing a blob instead of many spheres
> and cylinders. You may also try using merge to combine all the pieces that you
> remove. That way, you only test 2 bounding box instead of one for each components.

/> I do use a macro that creates my circular brick walls, I tried several
methods for creating rounded brick walls, and finally came up with an
isosurface that could do it from the outside, but I needed texture on the
inside, so i was forced to use CSG.
I used merge wherever possible, and tried bounding the wall manually, but
there was no significant speed increase.

> If you have an isosurface with some very large max_gradient, Using the log,
> square root or cube root of the function may allows you to reduce max_gradient
> to a more reasonable range, speeding up it's rendering.

/> My heaviest isosurfaces are the ones I used to carve runes into the
floor, they typically have a ridiculous max_gradient, and I'm looking for a
suitable runic font to replace them with.

> Many reflection or refractions? Lots of total internal reflections? Try
> increasing adc_bailout. In some cases, the visual impact is negligeale, but the
> resulting speed up very interesting. The default is 1/256, depending on the
> scane, you may get by with as much as 1/100 or even 1/64 without to much
> negative impact!

/> I have considered trying that.

> Any glossy object? phong and specular don't work with radiosity. You can get a
> similar effect using a small amount of blured reflection, but it will increase
> the rendering time.

/> This is the real killer, besides the light sources, or perhaps because of
them.  I have many glossy and reflective surfaces, the floor is highly
polished, as are the columns, and there are silver accents and features
throughout the scene.

> Filtering and scattering media never react to radiosity, they need actual
> lights. Emissive media can illuminate radiosity if you use "media on" in the
> radiosity block.

/> I use massive amounts of emitting media in the scene for flame effects,
and it does render rather slowly, but I've learned to live with it,
considering the effects.

> Simple textures can't be optimised, they are as simple as can be. Layered ones
> can be worked upon. You need some test scene with some simple objects to receive
> your test textures. Start with your layered texture on one object. Now, on
> another object in the same scene, try to emulate the complex texture with a
> simpler one. Once you find a suitable, simpler texture, copy it to your real scene.

/> I am currently pulling almost all of my textures straight from the
standard texture library, specifically stones.inc (The textures there are
much better than most of my attempts.)

> In some cases, using light_group can significatively improve your rendering time.

/> I did introduce a light group, to limit the effect of the light_sources
to the candles only, the speed increase that resulted was nothing short of
incredible (Well in excess of 500%.  In twelve hours, it had rendered
almost half of the scene, when previously, it had taken several days to
render less than a quarter.)

Thanks for the input.

ADB


Post a reply to this message

From: Alain
Subject: Re: Scene optimization
Date: 15 Mar 2007 16:56:27
Message: <45f9c10b$1@news.povray.org>
Anthony D. Baye nous apporta ses lumieres en ce 15-03-2007 14:57:
>> In the radiosity section, do you change error_bound? To what extent? When you
>> push it down, the rendering time increase. It also requires a higher count to
>> prevent splotshiness, resulting in still longer renders. One of the main reason
>> to use small error_bound is to produce sharper and deeper shadows.
>> You can try lowering pretrace_end. At the cost of more pretrace time, it may
>> allows you to use more relaxed settings elsewhere, resulting in globaly faster
>> renders.
>> Do you have "normals on" in the radiosity block? Normal computation in radiosity
>> is very computationaly heavy. If you can do without, remove normals on.

> /> My radiosity settings are pretty default, the count is set to 35, the
> error_bound is 0.2.  I do use media on, but I don't think I have normals
> on.
With an error_bound in that range, you need a larger count, 350 still been 
"low", you may need count 1000!
error_bound 0.2 is far from default (1.8)

>> Do you have large difference/intersection where you remove 100's small pieces
>> from a large base object? You may try diferencing a blob instead of many spheres
>> and cylinders. You may also try using merge to combine all the pieces that you
>> remove. That way, you only test 2 bounding box instead of one for each components.

> /> I do use a macro that creates my circular brick walls, I tried several
> methods for creating rounded brick walls, and finally came up with an
> isosurface that could do it from the outside, but I needed texture on the
> inside, so i was forced to use CSG.
> I used merge wherever possible, and tried bounding the wall manually, but
> there was no significant speed increase.
Merge may help if you have lots of objects to remove. If you use it in place of 
an union, you get longer render times in most cases.

>> If you have an isosurface with some very large max_gradient, Using the log,
>> square root or cube root of the function may allows you to reduce max_gradient
>> to a more reasonable range, speeding up it's rendering.

> /> My heaviest isosurfaces are the ones I used to carve runes into the
> floor, they typically have a ridiculous max_gradient, and I'm looking for a
> suitable runic font to replace them with.
I you use an object_pattern, you are stuck. If that's the case, try fidling with 
the treshold value, I suspect that setting it close to 1 or 0 could help, but 
nover got around to test that...

>> Many reflection or refractions? Lots of total internal reflections? Try
>> increasing adc_bailout. In some cases, the visual impact is negligeale, but the
>> resulting speed up very interesting. The default is 1/256, depending on the
>> scane, you may get by with as much as 1/100 or even 1/64 without to much
>> negative impact!

> /> I have considered trying that.

>> Any glossy object? phong and specular don't work with radiosity. You can get a
>> similar effect using a small amount of blured reflection, but it will increase
>> the rendering time.

> /> This is the real killer, besides the light sources, or perhaps because of
> them.  I have many glossy and reflective surfaces, the floor is highly
> polished, as are the columns, and there are silver accents and features
> throughout the scene.
Ading no_reflection on some of those may help. The floor can be a decent 
candidate, if you want it to show in reflections, add another one without 
reflection, no_image and no_shadow. That second "floor" will show in 
reflections, but you won't see what's reflected on it in other reflections.
If you want those objects to still show in reflections, add a copy of the object 
with a non-reflective texture and no_image and no_shadow.

>> Filtering and scattering media never react to radiosity, they need actual
>> lights. Emissive media can illuminate radiosity if you use "media on" in the
>> radiosity block.

> /> I use massive amounts of emitting media in the scene for flame effects,
> and it does render rather slowly, but I've learned to live with it,
> considering the effects.
Emissive media is perty fast as there is no shadow tests to do.

>> Simple textures can't be optimised, they are as simple as can be. Layered ones
>> can be worked upon. You need some test scene with some simple objects to receive
>> your test textures. Start with your layered texture on one object. Now, on
>> another object in the same scene, try to emulate the complex texture with a
>> simpler one. Once you find a suitable, simpler texture, copy it to your real scene.

> /> I am currently pulling almost all of my textures straight from the
> standard texture library, specifically stones.inc (The textures there are
> much better than most of my attempts.)

>> In some cases, using light_group can significatively improve your rendering time.

> /> I did introduce a light group, to limit the effect of the light_sources
> to the candles only, the speed increase that resulted was nothing short of
> incredible (Well in excess of 500%.  In twelve hours, it had rendered
> almost half of the scene, when previously, it had taken several days to
> render less than a quarter.)

> Thanks for the input.

> ADB






-- 
Alain
-------------------------------------------------
   Last night my wife met me at the front door. She was wearing a Sexy negligee. 
The only trouble was, she was coming home.
	Rodney Dangerfield


Post a reply to this message

From: Verm
Subject: Re: Scene optimization
Date: 19 Mar 2007 10:19:44
Message: <45feaa10$1@news.povray.org>
Anthony D. Baye wrote:

>> Do you have large difference/intersection where you remove 100's small pieces
>> from a large base object? You may try diferencing a blob instead of many spheres
>> and cylinders. You may also try using merge to combine all the pieces that you
>> remove. That way, you only test 2 bounding box instead of one for each components.
> 
> /> I do use a macro that creates my circular brick walls, I tried several
> methods for creating rounded brick walls, and finally came up with an
> isosurface that could do it from the outside, but I needed texture on the
> inside, so i was forced to use CSG.
> I used merge wherever possible, and tried bounding the wall manually, but
> there was no significant speed increase.

Do you need proper brick walls or could you live with a cylinder with a 
brick texture on? I know the default brick texture is just for planar 
surfaces but you could roll your own for curved surfaces - my tina-chep 
entry is a *very* primitive example of this.

http://myweb.tiscali.co.uk/3dextra/tc2.jpg


Post a reply to this message

From: Kenneth
Subject: Re: Scene optimization
Date: 21 Mar 2007 03:15:04
Message: <web.4600e87e927a0a0ad41bc31b0@news.povray.org>
> >> Filtering and scattering media never react to radiosity, they need actual
> >> lights. Emissive media can illuminate radiosity if you use "media on" in the
> >> radiosity block.
>
> > /> I use massive amounts of emitting media in the scene for flame effects,
> > and it does render rather slowly, but I've learned to live with it,
> > considering the effects.

While it's true that none of the three media types *react* to radiosity
lighting, both emission AND scattering media can *contribute* to it.  But
scattering media does that only if lit by light sources. Otherwise, it has
no effect. I think that's what Alain meant to say.

Is it possible to reduce the number of samples in your media (without
causing visual problems)? That would reduce rendering time somewhat.

Ken W.


Post a reply to this message

From: Kenneth
Subject: Re: Scene optimization
Date: 21 Mar 2007 03:45:01
Message: <web.4600ef86927a0a0ad41bc31b0@news.povray.org>
"Anthony D. Baye" <ant### [at] goldsdsmtedu> wrote:
> I'm currently working on several large scenes, at least one of which
> rewuires radiosity.  I'd like to remove all the light sources from the
> scene, and light it purely with radiosity, but it contains candle
> objects which use a filtering media that only looks right with light
> sources.
>

Here's a trick I use in my own radiosity-only scenes. Say I have a small
torch flame (emission and absorption media) that, used by itself, would
require a radiosity count of 1000 to give a good smooth lighting effect to
the scene. If I use five of those flames in the scene, I find that I can
reduce the count to (very roughly) 1/5 of that and still get good overall
lighting. The radiosity light "patches" from *all* the flames add together
and nicely overlap. How well this works depends on other factors,
of course -- mainly, whether or not each flame is lighting all
parts of the scene.

Ken W.


Post a reply to this message

From: Alain
Subject: Re: Scene optimization
Date: 21 Mar 2007 19:32:03
Message: <4601ce83$1@news.povray.org>
Kenneth nous apporta ses lumieres en ce 21-03-2007 04:10:
>>>> Filtering and scattering media never react to radiosity, they need actual
>>>> lights. Emissive media can illuminate radiosity if you use "media on" in the
>>>> radiosity block.
>>> /> I use massive amounts of emitting media in the scene for flame effects,
>>> and it does render rather slowly, but I've learned to live with it,
>>> considering the effects.

> While it's true that none of the three media types *react* to radiosity
> lighting, both emission AND scattering media can *contribute* to it.  But
> scattering media does that only if lit by light sources. Otherwise, it has
> no effect. I think that's what Alain meant to say.

> Is it possible to reduce the number of samples in your media (without
> causing visual problems)? That would reduce rendering time somewhat.

> Ken W.


Just tested a purely scattering media in a radiosity scene.
Case 1:
A very bright parallel cylinder light (color rgb 8000) parallel to and just 
above a plane.
Scene filled with scattering media.

Result: ABSOLUTELY no lighting of the plane as I expected.

Case 2:
The same light slightly tilted up to hit a second plane above.
Media contained in a cylinder or a box between the 2 planes.

Result:
It don't cast radiosity shadow.

-- 
Alain
-------------------------------------------------
Jehovah's Witnesses: Shit has been prophesied and is imminent; only the 
righteous shall survive its happening.


Post a reply to this message

From: Kenneth
Subject: Re: Scene optimization
Date: 25 Mar 2007 04:30:02
Message: <web.46063fc9927a0a0a74bc043d0@news.povray.org>
Alain <ele### [at] netscapenet> wrote:

> Just tested a purely scattering media in a radiosity scene.
> Case 1:
> A very bright parallel cylinder light (color rgb 8000) parallel to and just
> above a plane.
> Scene filled with scattering media.
>
> Result: ABSOLUTELY no lighting of the plane as I expected.
>

That's a strange result.  The plane *should* be literally blasted with
light! I just ran a slightly different experiment, and the scattering media
is definitely creating radiosity lighting on the object  in my scene.

I'm using a media-filled sphere.. not atmospheric media... lit by a very
narrow-beam parallel cylinder light from below, with a white cylinder
object off to the side, outside of the media sphere, to pick up the
radiosity effect. (Media_on in the radiosity block, of course.) The "cone"
of light and the long cylinder object are parallel to each other, as in
your scene. Just to make absolutely sure that the parallel light isn't
somehow lighting my object, I enclose the light and the media sphere in a
light_group.  Rendering this, the cylinder shows a very nice radiosity
effect.

Perhaps there's something odd going on with atmospheric scattering media (?)

Ken W.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.