Hi Alex, Have you ever tried Ballon3D? http://www.squeaksource.com/Balloon3D It's an "OpenGL" coded in Smalltalk. It seems like the toolkit you are building, surely you can reuse or enhance it to suit your needs. Seems my previous question was ambiguous, I've meant if you are using Forms as the surface for creating your 3D scenes, (similar as Ballon3D does). If not, if each polygon is a morph in itself, did you modify Morph class? Or you are computing the matrices on your engine, and then converting the scene coordinates into world coordinates? Dont know if this is clear enough, please let me know. If you are talking about Lumiere and the practicality of decoupling it from AlienOpenGL: I'm 99% sure that CroquetOpenGL works on Linux, Windows and Mac VMs. And if COG VMs support FFI, then on those too, because the CroqueOpenGL interfaces to OpenGL by FFI. So you wouldn't have problems in using Lumiere-CroquetOpenGL on every platform. Fernando pd: http://www.squeaksource.com/CroquetGL On Wed, Mar 16, 2011 at 1:39 PM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
I am wondering how this will be practical (I have no mean to be arrogant, I just try to understand). Is this tied to a particular platform? Will it work on Linux and Windows? Cog or No-Cog?
Cheers, Alexandre
On 15 Mar 2011, at 21:01, Igor Stasenko wrote:
from this message i learn that i have to kick my ass and continue working on NativeBoost, including its OpenGL bindings.
Too bad, there is not much people who can do low level assembly + VM hacking + openGL hacking and interested in pushing NB forward and/or collaborating with me :(
On 16 March 2011 00:17, Fernando Olivero <fernando.olivero@usi.ch> wrote:
Hi Alex, Â i'm sad to hear that AlienOpenGL is not working for you, i'm currently not mainting it. IMO opinion the Croquet OpengL and Igor's native boost OpenGL are far better choices for interfacing with OpenGL. Lumiere is conceptually designed to work with any of the above, but currently tied to AlienOpenGL. Wouldn't take much to plug the other two, and you would get the high level abstractions over OpenGL that Lumiere offers.
Regarding the boost, it highly depends on the 3D application being built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node2... Anyway, Croquet OpenGL does the computation on Smalltalk, (but i think FloatArray is using a plugin).With Lumiere i left the matrix calculations to OpenGL, but you get less functionality.
The boost comes not from the matrix calculations but  because of the efficient rendering engine (parallel pipelines) implemented in low level language, as opposed doing everything in Smalltalk. Again, this depends on the 3D application being built.
Regarding the tool that you mentioned, Â how do you simulate 3D, in the 2D Morphic framework? I'm finding hard to understand how can you achieve a Morphic cube.
Saludos, Fernando
On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
Great. Â What about the usual "native code" speed boost? Â Are you writing a plugin, or is it all Smalltalk code?
It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ...
Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it?
Cheers, Alexandre
-- Best regards, Igor Stasenko AKA sig.
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel  http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.