|
|
ok, really weird, but it only seems to seg-fault when I use the leaf-texture
Waggy posted in my thread in p.general
here's the output from a run through gdb:
[New Thread 0xb515bb70 (LWP 13652)]
[New Thread 0xb495ab70 (LWP 13653)]
[Thread 0xb495ab70 (LWP 13653) exited]
[New Thread 0xb495ab70 (LWP 13654)]
[Thread 0xb495ab70 (LWP 13654) exited]
[New Thread 0xb495ab70 (LWP 13655)]
[New Thread 0xb3df7b70 (LWP 13656)]
[New Thread 0xb35f6b70 (LWP 13657)]
File 'lm_pattern.inc' line 26: Possible Parse Error: Recursive function calls
are not allowed!
----------------------------------------------------------------------------
Parser Statistics
----------------------------------------------------------------------------
Finite Objects: 1
Infinite Objects: 1
Light Sources: 1
Total: 3
----------------------------------------------------------------------------
Parser Time
Parse Time: 0 hours 0 minutes 0 seconds (0.022 seconds)
using 1 thread(s) with 0.015 CPU-seconds total
Bounding Time: 0 hours 0 minutes 0 seconds (0.000 seconds)
using 1 thread(s) with 0.000 CPU-seconds total
----------------------------------------------------------------------------
Render Options
Quality: 9
Bounding boxes.......On Bounding threshold: 3
Antialiasing.........Off
==== [Rendering...] ========================================================
Rendered 269312 of 786432 pixels (34%)
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb35f6b70 (LWP 13657)]
0x08123b7c in ?? ()
I modified the code only slightly so that I could use the texture as a declared
texture from an include file. And I used my own leaf pigment. Modified version
follows.
// File: lm_pattern.pov
// Vers: 3.6, 3.7
// Desc: Logistic Map Pattern Example
// Date: 20010-08-03
// Auth: David Wagner
// Cite: http://en.wikipedia.org/wiki/Logistic_map
#include "kolors.inc"
// ----------------------------------------
// Returns the distance to the nearest logistic value after lm_imin iterations.
#declare lm_i_distance_min =
function( lm_r, lm_pop, lm_val, lm_nearestpop, lm_i, lm_istart, lm_iend ) {
select(lm_i > lm_iend, 0,
lm_i_distance_min(
lm_r,
lm_r*lm_pop*(1-lm_pop),
lm_val,
select(lm_i > lm_istart & ( (abs(lm_pop-lm_val) <
abs(lm_nearestpop-lm_val)) ),0,
lm_nearestpop,
lm_pop),
lm_i+1, lm_istart, lm_iend ),
//abs(lm_val-lm_nearestpop) // Includes a straight line along the edge.
select(lm_nearestpop<(1-0.5/lm_iend),0,1,abs(lm_val-lm_nearestpop) )
)//end recursion select
};
// Calls the recursive iterating function.
#declare lm_fn_distance_min =
function( lm_r, lm_val, lm_istart, lm_iend ) {
lm_i_distance_min(lm_r,0.5, lm_val, 1, 1, lm_istart, lm_iend)
};
// ----------------------------------------
#local lm_istart= 20 ;//Minimum iterations.
#local lm_iend =100 ;//Maximum iterations.
#local n_circum = 25 ;//Number of repeats around the circle.
#local r_offset= 0.0;//Can make a rosette in the center. Try 0.01 or larger.
#declare Leaf_Green = rgbt <19, 136, 8, 28>/255 ;
#declare lm_tex =
texture{
pigment {
function { lm_fn_distance_min(z,x, lm_istart, lm_iend) }
// sine_wave
poly_wave 0.25
color_map {
[0 0.25*Leaf_Green ]
[1 Leaf_Green ]
}
warp{ repeat x flip x} //circumferential
warp{ repeat z*4 } //radial
warp{turbulence 0.1*(x+y) }
translate z*r_offset
scale 0.5/ n_circum *(x) +y+z
warp{ cylindrical orientation z dist_exp 0 }
warp{ black_hole <0,0,0>, 4 inverse falloff 0.5}
warp{turbulence 0.1*(x+y)}
}//end pigment
}//end texture
"Anthony D. Baye" <Sha### [at] spamnomorehotmailcom> wrote:
> pressing any key but (q) while render window is open causes crash with
> segmentation fault.
>
> A.D.B.
Post a reply to this message
|
|
|
|
"Anthony D. Baye" wrote:
> ok, really weird, but it only seems to seg-fault when I use the leaf-texture
> Waggy posted in my thread in p.general
>
> here's the output from a run through gdb:
> [New Thread 0xb515bb70 (LWP 13652)]
> [New Thread 0xb495ab70 (LWP 13653)]
> [Thread 0xb495ab70 (LWP 13653) exited]
> [New Thread 0xb495ab70 (LWP 13654)]
> [Thread 0xb495ab70 (LWP 13654) exited]
> [New Thread 0xb495ab70 (LWP 13655)]
> [New Thread 0xb3df7b70 (LWP 13656)]
> [New Thread 0xb35f6b70 (LWP 13657)]
> File 'lm_pattern.inc' line 26: Possible Parse Error: Recursive function calls
> are not allowed!
[snip]
Ah, I forgot to include my standard warnings. The following should go near the
top of the code.
// WARNING: Declare this function first in a scene.
// WARNING: This recursive function is invalid SDL and can crash POV-Ray.
If you have a recursive function in an include file, include it before all
others in case they have a function declaration. Also, as I recall, you can
only get away with breaking the no recursion rule with one function in a scene.
I hope this helps.
~David
Post a reply to this message
|
|