![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Chris Huff <chr### [at] mac com> wrote:
: And I wouldn't call them "incredibly fast"...well, if you compare them
: to the POV-Script parser...and they are surprisingly fast. Just not
: "incredibly" fast. :-)
Well, since isosurfaces are faster than many builtin primitives, like
polys or superellipsoids, I'd say that isosurfaces are incredibly fast.
Polys and superellipsoids don't have to parse anything the user has written.
Only the numeric values are stored at parse time into variables (which don't
differ in any way of any other variable used by the machine code) and at
render time a fixed-type code is run to test intersections etc.
Isosurface functions, however, have to be somehow interpreted each time you
want a value. The function is not coded in a native machine code, but it's
a byte code (or whatever) that has to be interpreted (much like java byte
code, for example).
Moreover, you need to get several values from the function for each
intersection test, which makes its speed even more incredible.
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <39AD60A7.E24533EC@faricy.net> , David Fontaine
<dav### [at] faricy net> wrote:
> What about control aids? They would process much faster in byte-code. Thorsten
> says it already does something like this though...
No, I didn't say it uses byte-code. I said that it does what you were
suggesting, and that was "binary code" :-)
I interpreted "binary code" as using "hash value"...
A hash table is basically a binary shortcut for a string, so all you need to
do is generate the hash value and then compare two integers. Of course
there will be duplicate hash values, so you then compare just a few strings
(or use another method - there are textbooks full of it).
Thorsten
____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trf de
Visit POV-Ray on the web: http://mac.povray.org
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Chris Huff wrote:
> What are "control aids"?
do while for next if then elseif endif
switch case call goto gosub break
teehee ^^^^
EVIL
--
David Fontaine <dav### [at] faricy net> ICQ 55354965
Please visit my website: http://davidf.faricy.net/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Thorsten Froehlich wrote:
> No, I didn't say it uses byte-code. I said that it does what you were
> suggesting, and that was "binary code" :-)
>
> I interpreted "binary code" as using "hash value"...
>
> A hash table is basically a binary shortcut for a string, so all you need to
> do is generate the hash value and then compare two integers. Of course
> there will be duplicate hash values, so you then compare just a few strings
> (or use another method - there are textbooks full of it).
Oh, well then I demand byte-code! :-)
--
David Fontaine <dav### [at] faricy net> ICQ 55354965
Please visit my website: http://davidf.faricy.net/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <39ADE0D3.BE78C21D@faricy.net>, David Fontaine
<dav### [at] faricy net> wrote:
> Chris Huff wrote:
>
> > What are "control aids"?
>
> do while for next if then elseif endif
> switch case call goto gosub break
> teehee ^^^^
> EVIL
Oh...I always called those "flow control keywords". I've never heard
them called "control aids"...
And I agree about goto, I have never used it. In fact, I barely ever use
"break" outside of a switch statement...I think the first time was just
yesterday, in the #set patch...and even there I considered using a while
loop instead.
I don't recognize some of those keywords(elseif, endif, call, teehee),
are they from a BASIC variant?
Hmm, the POV-Script list would be:
#while, #if, #else, #switch, #case, #range, #macro, #end, #break...did I
miss any?
Oh, #include, I guess...and MegaPOV functions.
--
Christopher James Huff
Personal: chr### [at] mac com, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tag povray org, http://tag.povray.org/
<><
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <39adaae1@news.povray.org>, Warp <war### [at] tag povray org>
wrote:
> Well, since isosurfaces are faster than many builtin primitives, like
> polys or superellipsoids, I'd say that isosurfaces are incredibly fast.
...snip...
> Moreover, you need to get several values from the function for each
> intersection test, which makes its speed even more incredible.
Ok, ok...isosurfaces are incredibly fast, especially when you consider
what they have to do. But I think most of this advantage is in the
solving method, not in the functions themselves. I have always wondered
how much faster it would be if the same functions were written in C and
called directly.
--
Christopher James Huff
Personal: chr### [at] mac com, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tag povray org, http://tag.povray.org/
<><
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Chris Huff wrote:
> #while, #if, #else, #switch, #case, #range, #macro, #end, #break...did I
> miss any?
> Oh, #include,
#local
--
Ken Tyler - 1400+ POV-Ray, Graphics, 3D Rendering, and Raytracing Links:
http://home.pacbell.net/tylereng/index.html http://www.povray.org/links/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <39AE849E.C1C91C82@pacbell.net>, lin### [at] povray org
wrote:
> Chris Huff wrote:
>
> > #while, #if, #else, #switch, #case, #range, #macro, #end, #break...did I
> > miss any?
> > Oh, #include,
>
> #local
I wouldn't call #local and #declare flow control keywords/control aids,
sorry. :-)
Though they certainly are necessary for any useful amount of work to be
done.
--
Christopher James Huff
Personal: chr### [at] mac com, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tag povray org, http://tag.povray.org/
<><
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Chris Huff wrote:
> Oh...I always called those "flow control keywords". I've never heard
> them called "control aids"...
> And I agree about goto, I have never used it. In fact, I barely ever use
> "break" outside of a switch statement...I think the first time was just
> yesterday, in the #set patch...and even there I considered using a while
> loop instead.
Yup...
> I don't recognize some of those keywords(elseif, endif, call, teehee),
> are they from a BASIC variant?
Yup, in BASIC you use endif to end an if and elseif instead of
else-if-endif, and call calls a function. BASIC is kinda stupid anyway...
> Hmm, the POV-Script list would be:
> #while, #if, #else, #switch, #case, #range, #macro, #end, #break...did I
> miss any?
> Oh, #include, I guess...and MegaPOV functions.
I suppose in POV #include can redirect flow like anything else, but not in
C.
--
David Fontaine <dav### [at] faricy net> ICQ 55354965
Please visit my website: http://davidf.faricy.net/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Chris Huff <chr### [at] mac com> wrote:
: miss any?
?:
--
main(i,_){for(_?--i,main(i+2,"FhhQHFIJD|FQTITFN]zRFHhhTBFHhhTBFysdB"[i]
):_;i&&_>1;printf("%s",_-70?_&1?"[]":" ":(_=0,"\n")),_/=2);} /*- Warp -*/
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |