POV-Ray : Newsgroups : povray.programming : Which code evaluate Math functions (ie: isosurfaces) ? : Re: Which code evaluate Math functions (ie: isosurfaces) ? Server Time
9 May 2024 07:36:29 EDT (-0400)
  Re: Which code evaluate Math functions (ie: isosurfaces) ?  
From: virtualmeet
Date: 1 Feb 2007 10:50:00
Message: <web.45c20b9df1edfe3e3abda59f0@news.povray.org>
Christoph Hormann <chr### [at] gmxde> wrote:
> Note you can speed up isosurface renders using precalculations as
> outlined on:
>
> http://www.imagico.de/fast_iso/patch.html

Christoph Hormann <chr### [at] gmxde> wrote:
> Note you can speed up isosurface renders using precalculations as
> outlined on:
> ...
> http://www.imagico.de/fast_iso/patch.html
 Hi,
Thanks for the link and for the article.
You technique is excellent because it's traying also to reduce the time
processing by reducing the number of use of the parser. Inforttunately in
my case the number of use of the parser is fixed in advance...I had no hope
to make things better with such strategy. Also, optimising the marching cube
and the drawing was almost useless since the time saving is a fraction of
seconds. I had to look inside this black box called the parser and make
things work better inside it.
There was almost nothing to add to make it work better because Warp has done
the humainly possible optimisation (he said to me after that JIT compiling
will work better). The only ways left were :
Make it run faster ----> parallelising calculations
Make it smarter   -----> Give it the maximum informations about the math
object (it's geometry caracteristics).
Both of them can be achieved by using the "geometrical parser" sheme I
showed before with some code.
I hope to make some skilled people interested too and if I'm enthousiastic,
I really think that it's time to be : The results goes far further than
what I was hoping!
The last "discovery" :
It can do huge optimisation FOR EVERY UNARY DEFINED FUNCTIONS, like with
"cos(x)" I showed in one example.
ex: F(x) = log(cos(x) +x*sin(cos(log(x))) + x^3,9 *log(x*cos(x))
f(x,y,z) = z*F(x) +cos(F(y)) + F(z)*F(y) + log(F(z))*cos(F(x))
The geometrical parser will calculate this as fast as an isosurface defined
like this :
f(X,Y,Z) = c*X + Y + Z*Y +Z*X
It reduce to almost nothing and the time processing is almost the time it
tooks to read 7 single values from memory when A normal parser will take
huge time.
This is also available for user defined binarys fcts.
Scientific software are usually using data with dimension > 3, this parser
is the ultimate solution for most of them.
Taha


Post a reply to this message

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