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

World: r3wp

[rebcode] Rebcode discussion

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
[1337x3]
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 :-)
btw - don't you expect any possible rebol 3D engine, even if we have 
rebcode, as simply slow? Isn't the only chance linking rebol to external 
engine/library (e.g. OpenGL)?
Henrik
1-Dec-2005
[1340]
that's probably the only way... also you shouldn't expect to do any 
serious 3D without access to 3D hardware acceleration. it would be 
nice to do this through openGL somehow, but it would take up too 
much footprint to build this into rebol directly
Rebolek
1-Dec-2005
[1341]
As I'm interested only in pure vectors, REBOL speed is succifient 
for me :)) But yes, REBOL can probably be linked to some external 
library (as Cyphre did with OpenGL) or SDL maybe? But I don't think 
it should be high on priority list, other things are more important.
Volker
1-Dec-2005
[1342]
Cool: IMHO the priority should be on moving camera now. And some 
support for collisions, maybe only in 2d-space. Idea: some kind of 
3d-icons. I can live with colored pyramids and some text, but i need 
to move.
Rebolek
1-Dec-2005
[1343]
Volker: there's camera code, but there's probably bug in invert matrix 
function so the camera does not work right now. I'm trying to find 
some informations on that topic and to fix it.
Volker
1-Dec-2005
[1344]
And then we do a 3d-desktop? :)
Rebolek
1-Dec-2005
[1345x2]
distributed 3d desktop nased on rebservices? :)
nased=based
Volker
1-Dec-2005
[1347]
Yes. Something like this atomic modells. Each ball is a site and 
you can move along the connections :)
Rebolek
2-Dec-2005
[1348]
Just a small update: I've fixed matrix inversion so it's possible 
to move camera now. It's not possible to rotate camera but I'm working 
on it.
Oldes
2-Dec-2005
[1349]
nice demo, it's eating almost no CPU on my computer. But if I click 
and move cursor, everything is stoped.
Rebolek
2-Dec-2005
[1350]
that's because mouse events have higher priority than time events 
and the scene is refreshed only when time event occur. If you move 
your mouse, no time-events are generated.
Anton
2-Dec-2005
[1351]
Every event has a time (event/time), so this could be worked around.
Oldes
3-Dec-2005
[1352x2]
Is there someone interested in making dialect form making rebcodes? 
Or someone already doing it?
form = for
DideC
3-Dec-2005
[1354x2]
I think Gabriele has work on that IIRC
work=worked
Oldes
3-Dec-2005
[1356]
Maybe it would be goot to have some registers in rebcode to store 
temporary values which are needed for more cmplex calculations (no 
need to set named variables)
Anton
3-Dec-2005
[1357]
Yeah, I was thinking about that, too. Maybe someone with more experience 
in this area can comment.
Oldes
3-Dec-2005
[1358x4]
Added to Rambo (with bug in the example:( http://www.rebol.net/cgi-bin/rambo.r?id=-505&
and with bug in my english as well: goot = good :(
Fast atan2 function: do http://box.lebeda.ws/~hmm/rebol/rebcode/latest/rc_atan2.r
Based on this C code: http://www.dspguru.com/comp.dsp/tricks/alg/fxdatan2.htm
Anton
3-Dec-2005
[1362]
How accurate is it ?
Oldes
3-Dec-2005
[1363x3]
just do the usage block to see
It could be more accurate, but I don't know how to do [ r^3 ] in 
rebcode (where r is decimal)
But I think the accuracy is fine if you are doing animations and 
effects based on atan2 function - where speed is more important than 
precision