|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hello!
Does anybody know how to get the highest safe max_trace_level value
for a scene?
I'm trying to render a scene which consist of a blob and a plane.
It's much like the cheesy checker floor with a crystal ball. But I
happen to love what I've done, and right now I'm trying to render the
scene at it's best. So I added features as I started to understand the
workings of povray.
Anyway let's go back to the problem. When I try to render the scene
with max_trace_level > 120 the program crashes with the known 'stack
overflow' error.
I've noticed a couple of things.
1. If I set max_trace_level >= 200 the program crashes on the
first radiosity pass (I don't know the name for this pass, sorry)
2. If (max_trace_level > 120) and (max_trace_level < 200) it
crashes somewhere in the real rendering (not the radiosity pass).
3. Enabling or disabling area lights, radiosity, anti alias
won't change the point at wich the program crashes.
4. Povwin and povdos behave the same way.
5. It does the same on WinNT, Win98 or pure DOS.
Memory shouldn't be an issue, in using a PIII/450 256Mb Ram 9Gb HD
with a 512Mb swapfile.
Does anybody know if the linux version has the same problem?
Thanks in advance
Luciano Pennini
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Luciano Pennini <lpe### [at] writemecom> wrote:
: Anyway let's go back to the problem. When I try to render the scene
: with max_trace_level > 120 the program crashes with the known 'stack
: overflow' error.
This is a real problem, of course, but you should note that depending
on the scene there is a point where increasing the max_trace_level will
have no effect in the result because adc_bailout will kick in.
Only if you have absolutely transparent objects or objects that reflect
everything the increase of the max_trace_level will have effect (supposing
that these surfaces will be hit in each recursion).
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Nieminen Juha wrote:
> Luciano Pennini <lpe### [at] writemecom> wrote:
> : Anyway let's go back to the problem. When I try to render the scene
> : with max_trace_level > 120 the program crashes with the known 'stack
> : overflow' error.
>
> This is a real problem, of course, but you should note that depending
> on the scene there is a point where increasing the max_trace_level will
> have no effect in the result because adc_bailout will kick in.
Yep, I've read the manual. But when the render ends it reports that 120/120
where used, and I havent't touched adc_bailout default value.
>
> Only if you have absolutely transparent objects or objects that reflect
> everything the increase of the max_trace_level will have effect (supposing
> that these surfaces will be hit in each recursion).
>
That's what this scene is about. I'm looking a transparent blob at point
blank. The effect is beautifull, but the rendering time it's awfull.
I've also tryied to render a more simple scene with adc_bailout = 0 and I
played with max_trace_level to see if I can get a safe value. But this is a
time consuming process, which doesn't yield accurate results. Since the
numbers that i've got with this method won't work on a different scene.
I don't know how the actual code works, so I have no idea which variables come
to play at rendering time.
BTW do you know if the linux version has the same problem?
And if this is true. Any clue 'bout wich code is easier to modify (unix, dos
or windows)??
Thanks in advance
Luciano Pennini
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Luciano Pennini <lpe### [at] writemecom> wrote:
: BTW do you know if the linux version has the same problem?
Probably not, since (AFAIK) there's no stack size limit for programs in
unix (ok, there is, but it's huge).
: And if this is true. Any clue 'bout wich code is easier to modify (unix, dos
: or windows)??
The problem is not in povray itself but in the code generated by the
compiler. When compiling you should tell the compiler to link a bigger stack
to the program. For example watcom links a ridiculously small stack (about 8k)
to its programs by default.
If I'm not completely wrong, this is not a problem in unix since the
stack size usable by programs is determined by the system, not by the
program itself. For example in this SparcStation which has Solaris as OS
the stack size is limited to 2 Gigabytes.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I just tried rendering a scene with an object with filter 1 and reflection 1
and max_trace_level 500 in this sparcstation. It didn't crash.
Of course it will take years to finish that render...
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thanks!!
I'm going to install linux today, and see what happens.
Thanks again
Luciano Pennini
Nieminen Juha wrote:
> I just tried rendering a scene with an object with filter 1 and reflection 1
> and max_trace_level 500 in this sparcstation. It didn't crash.
> Of course it will take years to finish that render...
>
> --
> main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
> ):5;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|