r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[rebcode] Rebcode discussion

Volker
25-Nov-2005
[1289]
abstract: http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/&toc=comp/proceedings/pact/2004/2229/00/2229toc.xml&DOI=10.1109/PACT.2004.10021
Rebolek
25-Nov-2005
[1290]
you can convert ps to pdf on http://www.ps2pdf.comfor free
DideC
25-Nov-2005
[1291]
...and it works well!
Oldes
28-Nov-2005
[1292]
here is example of simple cells animation with custom rebcode's preprocessor 
--> do http://box.lebeda.ws/~hmm/rebol/projects/boids/latest/rc-cells-1.r
Geomol
28-Nov-2005
[1293]
hehe funny! :-)
Oldes
28-Nov-2005
[1294x3]
hm, but now I want to work with decimals as well and wonder if will 
be faster to use block to store the cell variables, or if I will 
use my own decimal format and binary structer as I'm using now
how to write: [ 2 ** exponent ] in rebcode?
stupid question:) mul.d i i
Rebolek
28-Nov-2005
[1297]
mul.d i i is i ** 2 and not 2 ** i
Geomol
28-Nov-2005
[1298]
2 ** exponent:

set a 2.0
log-e a
mul.d a exponent
exp a
Rebolek
28-Nov-2005
[1299]
or you can use set a 0.693147180559945 to save one instruction
Oldes
28-Nov-2005
[1300x4]
thanks, but kru, I will save instruction but will deal with rounding 
error:
>> x: rebcode [exponent][set a 2.0 log-e a mul.d a exponent exp a 
return a] x 3.0
== 8.0

>> x: rebcode [exponent][mul.d exponent 0.693147180559945 exp exponent 
return exponent] x 3.0
== 7.99999999999999
interesting, it looks it will be faster to use rebol blocks to store 
Rebol values instead of binary format I used in the cell example 
before (which was faster in the early rebcode versions)
do http://box.lebeda.ws/~hmm/rebol/projects/boids/latest/rc-cells-2.r
  <--- same like the version 1 but without the rebcode preprocessor 
using Rebol block to store cell variables instead of the binary format.
Henrik
28-Nov-2005
[1304]
how do you tell the speed difference? I can't see it....
Oldes
28-Nov-2005
[1305]
It's not in the script, I did local tests.
Henrik
28-Nov-2005
[1306]
how great is the speed difference?
Oldes
28-Nov-2005
[1307]
using rebol block is 3x faster
Henrik
28-Nov-2005
[1308]
that's quite a lot...
Oldes
28-Nov-2005
[1309]
how to get random number between 0 and 1?
Rebolek
28-Nov-2005
[1310]
I generate random number from 0 to milion and divede it by milion
Oldes
28-Nov-2005
[1311x3]
:) i fought there will be better method
so it's: rnd: rebcode[][set d 1000000000 randz d to-dec d div.d d 
1000000000.0 return d]
how to write atan2(sin,cos) in rebcode?
Gregg
29-Nov-2005
[1314]
Oldes, can we include rc-cells on the rebcode demo page?
Oldes
30-Nov-2005
[1315]
yes, why not
Gregg
30-Nov-2005
[1316]
Thanks! I just want to make sure we get permission from authors.
Rebolek
1-Dec-2005
[1317]
can I return error! from rebcode?
Anton
1-Dec-2005
[1318]
Nice demo Oldes. :)
Rebolek
1-Dec-2005
[1319]
I rewrote my old 3d demo to rebcode to see the speed difference. 
But I found that normal rebol can draw 120+ triangles without slowing 
down and because I became bored adding more objects I stopped testing 
it :) Anyway, rebcode optimalised (just three or four functions - 
matrix multiplication, inversion and 3d to 2d conversion - are rewritten 
to rebcode, it can be optimalized more) version is here - http://krutek.info/rebol/ratrix.r
. z-buffer does not work very well as you can see.
Pekr
1-Dec-2005
[1320x2]
and the speedup is? :-)
maybe it would be nice to have some button, have functions saved, 
and toggle between rebcode/non-rebcode version ....
Rebolek
1-Dec-2005
[1322]
hm, from my tests, matrix operations are just 3x faster, 3d to 2d 
conversion is cca. 11x faster. But old rebol-only version can show 
120+ triangles without problem so in this simple demo, rebcode is 
not needed :)
Pekr
1-Dec-2005
[1323]
:-) hmm, and if you would like to make object movement faster?
Rebolek
1-Dec-2005
[1324]
To make objects move faster you can just change their speed, it's 
not rebol vs. rebcode thing :)
Pekr
1-Dec-2005
[1325]
yes, but if I would like some of them to rotate like mad, rebol limitation 
would just show, so it might become rebol vs rebcode thing ;-)
Rebolek
1-Dec-2005
[1326]
rebol limitation may show but it won't be rebol math speed limitation 
but rebol face refresh speed limitation :)
Pekr
1-Dec-2005
[1327]
not necessarily - you don't have to refresh more than 24/sec, yet 
rebol math speed may become limiting factor, depending upon how complex 
your scene is .... but - I am not here to argue with you about single 
details, just wanted to see those two versions compared, that is 
all ...
Rebolek
1-Dec-2005
[1328]
Pekr as I said, here on this computer, classic rebol is capable of 
updating more than 120 trinagles at full speed (rate: 0) without 
problem. And after 120 triangles I became bored adding more so I 
did not test it :)
Henrik
1-Dec-2005
[1329]
looks neat, but I think people use more than 120 triangles in their 
own demos. :-) is it open or flexible enough to be used as a general 
engine?
Rebolek
1-Dec-2005
[1330]
Henrik I know that 120 triangles is not that much, but I'm adding 
them manually, I have no loader for some 3d files, so that was the 
reason why I stopped :) Basic idea is four years old but I think 
it can be used as general engines after some little changes. Feel 
free to look at the code, if you want to.
Henrik
1-Dec-2005
[1331x2]
I think it would be fun to have a little engine. I'm thinking something 
like:

view 3d-layout [sphere 50 red .... ] etc. :-)
This is also how Maya is built. A powerful 3D engine and a comprehensive 
programming language which builds the editor. A little like Emacs.
Rebolek
1-Dec-2005
[1333]
There are "entities" like "faces" in View. And 3d "pane". It can 
be dialected as you wrote.
Henrik
1-Dec-2005
[1334x2]
a pity pairs don't have a third dimension... otherwise you'd have 
to use tuples except it would be confusing with positions vs. colours.
kru, yes I think dialects would be ideal for describing a 3D environment, 
at least the parts that are not related to motion perhaps.
Rebolek
1-Dec-2005
[1336]
i use blocks of decimals for 3d points, it's much more precise
Pekr
1-Dec-2005
[1337x2]
I remember some talk between Cyphre and Carl about "subpixel accuracy" 
in regards to AGG, but dunno if related. Carl was thinking if he 
should allow decimals for pairs IIRC.
I also remember, that he said that rebol is good fit even for 3D, 
where 3D is another container, and result put back to face (bitmap). 
But dunno if I got it right. I doubt it :-)