POV-Ray : Newsgroups : povray.general : Which would be more efficient? Server Time
15 Nov 2024 13:22:52 EST (-0500)
  Which would be more efficient? (Message 1 to 7 of 7)  
From: Stefan Viljoen
Subject: Which would be more efficient?
Date: 18 Aug 2004 12:50:42
Message: <412388e2@news.povray.org>
Hi guys

I am having some problems with some of my scenes taking absurdly long to
render (months). I suspect this is mostly due to stupid / inexperienced
scene design (I am new to Pov).

My question: how do you ppl optimise offscreen objects / meshes? I. e. parts
of your scene that are not in the camera field of view - a plane I suppose
would make no difference, but what about complicated isosurfaces and so
forth extending "around" the camera? Even just a bit?

For example, is there any advantage to differencing an isosurface when it
goes "offscreen" to prevent calculations being done for the missing piece,
or is this in fact precisely the wrong thing to do?

As far as I can reason out, POV does take "offscreen" stuff in account since
you can for example see reflections of offscreen objects onscreen (i. e. in
the camera's viewfield).

I am aware that I could precisely size stuff to fit exactly in the camera
viewfield, but my specific problem is that I need a certain "part" of an
isosurface and I do not have the mathematical ability to isolate only that
part, for example. So I translate it until I have the "part" I want in the
camera's viewfield. The isosurface is not much bigger than the camera's
view angle (say about two units in its "flat" (screen plane) axis).

Or is this exactly the wrong approach?

My problem is that I see incredible scenes all the time that take literally
thousands of times less time than my uncomplicated scenes and I would
desperately like to optimise my  trace times.

Thanks!
-- 
Stefan Viljoen
Software Support Technician
Polar Design Solutions


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Which would be more efficient?
Date: 18 Aug 2004 13:28:10
Message: <412391aa@news.povray.org>
In article <412388e2@news.povray.org> , Stefan Viljoen 
<rylan@<deletehis>intekom.co.za>  wrote:

> My question: how do you ppl optimise offscreen objects / meshes? I. e. parts
> of your scene that are not in the camera field of view - a plane I suppose
> would make no difference, but what about complicated isosurfaces and so
> forth extending "around" the camera? Even just a bit?

You have a serious misconception how ray-tracing works.  There are no meshes
offscreen or onscreen other than the mesh object, and you gain no speed by
removing objects not visible.  You do decrease memory usage assuming you
already have too little memory in your system if you remove object.  POV-Ray
tells you how much memory it used after each render, so check if it used
more than you have.

After reading <http://www.povray.org/documentation/view/3.6.1/4/> I would
recommend reading
<http://tag.povray.org/povQandT/languageQandT.html#wireframes>
<http://tag.povray.org/povQandT/languageQandT.html#bending>
<http://tag.povray.org/povQandT/miscQandT.html#3dcard>
and of course
<http://tag.povray.org/povQandT/miscQandT.html#renderingspeed>

    Thorsten

____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

From: Stefan Viljoen
Subject: Re: Which would be more efficient?
Date: 18 Aug 2004 16:54:40
Message: <4123c20f@news.povray.org>
Thorsten Froehlich wrote:

> In article <412388e2@news.povray.org> , Stefan Viljoen
> <rylan@<deletehis>intekom.co.za>  wrote:
> 
>> My question: how do you ppl optimise offscreen objects / meshes? I. e.
>> parts of your scene that are not in the camera field of view - a plane I
>> suppose would make no difference, but what about complicated isosurfaces
>> and so forth extending "around" the camera? Even just a bit?
> 
> You have a serious misconception how ray-tracing works.  There are no
> meshes offscreen or onscreen other than the mesh object, and you gain no
> speed by

Thanks Thorsten!

Correction - I have NO conception of how ray-tracing works. I all know is it
makes nicey pictures with de compewter...! :)

Thanks,
-- 
Stefan Viljoen
Software Support Technician
Polar Design Solutions


Post a reply to this message

From: Alain
Subject: Re: Which would be more efficient?
Date: 18 Aug 2004 20:22:07
Message: <4123f2af$1@news.povray.org>
Stefan Viljoen <rylan@ nous apporta ses lumieres ainsi en ce 18/08/2004 
12:53... :

>Hi guys
>
>I am having some problems with some of my scenes taking absurdly long to
>render (months). I suspect this is mostly due to stupid / inexperienced
>scene design (I am new to Pov).
>
>My question: how do you ppl optimise offscreen objects / meshes? I. e. parts
>of your scene that are not in the camera field of view - a plane I suppose
>would make no difference, but what about complicated isosurfaces and so
>forth extending "around" the camera? Even just a bit?
>
>For example, is there any advantage to differencing an isosurface when it
>goes "offscreen" to prevent calculations being done for the missing piece,
>or is this in fact precisely the wrong thing to do?
>
>As far as I can reason out, POV does take "offscreen" stuff in account since
>you can for example see reflections of offscreen objects onscreen (i. e. in
>the camera's viewfield).
>
>I am aware that I could precisely size stuff to fit exactly in the camera
>viewfield, but my specific problem is that I need a certain "part" of an
>isosurface and I do not have the mathematical ability to isolate only that
>part, for example. So I translate it until I have the "part" I want in the
>camera's viewfield. The isosurface is not much bigger than the camera's
>view angle (say about two units in its "flat" (screen plane) axis).
>
>Or is this exactly the wrong approach?
>
>My problem is that I see incredible scenes all the time that take literally
>thousands of times less time than my uncomplicated scenes and I would
>desperately like to optimise my  trace times.
>
>Thanks!
>  
>
Off field objects don't take time during render time unless they are 
made visible by a reflection or refraction: no direct ray are shoot at 
them. They do, owever, take some parse time.
When using isosurfaces, try to set the containing shape as tight as 
possible. If that shape is to large, POV Ray need to needlessly evaluate 
many samples that are outside of the actual isosurface. Usualy, you use 
a box or sphere, but for some cases, a torus, cone or some other 
primitive can be more effecient. Make a transparent copy of the 
contained_by shape for your test to see how efficient you containement 
is. Check the max_gradient, and set it as low as possible as long as it 
don't cause black spots in your shape.
Do the test with only a pigment and no other texture component, remove 
all filter and transmit, use only one light_source. Use a lower quality 
setting to speed up composition/placing tests.
If you know that an object can only be seen in a reflection (not visible 
in a test without reflection), give it a simplified texture.
Lower max_trace_level a little and adjust adc_bailout to compensate.
Using area_light, use adaptive to optimize the shade evaluation. Don't 
replace area_light with an array of lights, the many lights will take 
much more time to evaluate, and probably produce more banding.

Alain


Post a reply to this message

From: Alain
Subject: Re: Which would be more efficient?
Date: 18 Aug 2004 20:24:19
Message: <4123f333$1@news.povray.org>
Stefan Viljoen <rylan@ nous apporta ses lumieres ainsi en ce 18/08/2004 
12:53... :

>Hi guys
>
>I am having some problems with some of my scenes taking absurdly long to
>render (months). I suspect this is mostly due to stupid / inexperienced
>scene design (I am new to Pov).
>
>My question: how do you ppl optimise offscreen objects / meshes? I. e. parts
>of your scene that are not in the camera field of view - a plane I suppose
>would make no difference, but what about complicated isosurfaces and so
>forth extending "around" the camera? Even just a bit?
>
>For example, is there any advantage to differencing an isosurface when it
>goes "offscreen" to prevent calculations being done for the missing piece,
>or is this in fact precisely the wrong thing to do?
>
>As far as I can reason out, POV does take "offscreen" stuff in account since
>you can for example see reflections of offscreen objects onscreen (i. e. in
>the camera's viewfield).
>
>I am aware that I could precisely size stuff to fit exactly in the camera
>viewfield, but my specific problem is that I need a certain "part" of an
>isosurface and I do not have the mathematical ability to isolate only that
>part, for example. So I translate it until I have the "part" I want in the
>camera's viewfield. The isosurface is not much bigger than the camera's
>view angle (say about two units in its "flat" (screen plane) axis).
>
>Or is this exactly the wrong approach?
>
>My problem is that I see incredible scenes all the time that take literally
>thousands of times less time than my uncomplicated scenes and I would
>desperately like to optimise my  trace times.
>
>Thanks!
>  
>
If you have several objects using the same texture, bind them in an 
union. That way, the texture is created only once, saving memory, parce 
time and render time.

Alain


Post a reply to this message

From: Stefan Viljoen
Subject: Re: Which would be more efficient?
Date: 19 Aug 2004 01:55:49
Message: <412440e5@news.povray.org>
Alain wrote:

>>would
>>desperately like to optimise my  trace times.
>>
>>Thanks!
>>  
>>
> If you have several objects using the same texture, bind them in an
> union. That way, the texture is created only once, saving memory, parce
> time and render time.
> 
> Alain

Thanks Alain. I have tried setting max_trace_level to 5 and adc bailout to
0.05 - will see if it helps any.

Regards,

-- 
Stefan Viljoen
Software Support Technician
Polar Design Solutions


Post a reply to this message

From: Warp
Subject: Re: Which would be more efficient?
Date: 19 Aug 2004 05:43:18
Message: <41247636@news.povray.org>
Alain <aze### [at] qwertygov> wrote:
> Off field objects don't take time during render time unless they are 
> made visible by a reflection or refraction

  Actually that might not be completely true.
  For each ray sent from the camera POV-Ray has to test if it hits the
off-screen object. This is usually done by testing the ray against the
bounding box of the object which is often faster, but still takes its
little amount of time (which is more than would be if there was no
object at all).
  The bounding box of the off-screen object may even be partially inside
the view (even though the object itself isn't) and thus POV-Ray will make
a full ray intersection test against that object.

  Btw, the vista buffer technique probably alleviates a lot the problem
of off-screen object testing (if the object is not in the vista buffer
it can be skipped completely for rays sent from the camera). However,
vista buffer doesn't work eg. on infinite objects (eg. planes) and it
doesn't help if the bounding box of the object is partially on screen.

  But all in all, removing off-screen objects should not usually have
any big impact on rendering times (excluding some pathological cases).

-- 
plane{-x+y,-1pigment{bozo color_map{[0rgb x][1rgb x+y]}turbulence 1}}
sphere{0,2pigment{rgbt 1}interior{media{emission 1density{spherical
density_map{[0rgb 0][.5rgb<1,.5>][1rgb 1]}turbulence.9}}}scale
<1,1,3>hollow}text{ttf"timrom""Warp".1,0translate<-1,-.1,2>}//  - Warp -


Post a reply to this message

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