Transparent colors with NBOpenGL?
Hi! Is there a way to have transparent colors with NBOpenGL? Iâve tried the following (using Roassal 3d): -=-=-=-=-=-=-=-=-=-= | view el1 el2 | view := R3View new. el1 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el2 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. view add: el1; add: el2. el2 translateByZ: -2. view addInteraction: R3MouseControl new; addInteraction: R3KeyControlForMac new. view open -=-=-=-=-=-=-=-=-=-= But I get something like: Would it be possible to have translucent cubes? Any OpenGL expert around? Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On 23 December 2013 22:04, Alexandre Bergel <alexandre.bergel@me.com> wrote:
Hi!
Is there a way to have transparent colors with NBOpenGL? Iâve tried the following (using Roassal 3d):
-=-=-=-=-=-=-=-=-=-= | view el1 el2 | view := R3View new. el1 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el2 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. view add: el1; add: el2.
el2 translateByZ: -2.
view addInteraction: R3MouseControl new; addInteraction: R3KeyControlForMac new. view open -=-=-=-=-=-=-=-=-=-=
But I get something like: Would it be possible to have translucent cubes? Any OpenGL expert around?
Come on, Alex, sometimes you make me think you just came from the Moon. http://www.opengl.org/archives/resources/faq/technical/transparency.htm http://www.openglsuperbible.com/ google: opengl transparency
Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
-- Best regards, Igor Stasenko.
Hi Alex, Translucent objects requires a singlepass lighting model, which I took the opportunity to complete and make it the default one. I put your example with a slight modification under R3Example>>translucentCubes Translucent elements require a reception of the message makeTranslucent since their rendering must be handled in a special way. They must rendered after all the opaque objects, in a back to front order without depth writing. Currently only depth writing disabling per element is supported, so their rendering is not going to be perfect, but at least some transparency can be seen. Greetings, Ronie Salgado 2013/12/23 Igor Stasenko <siguctua@gmail.com>
On 23 December 2013 22:04, Alexandre Bergel <alexandre.bergel@me.com>wrote:
Hi!
Is there a way to have transparent colors with NBOpenGL? Iâve tried the following (using Roassal 3d):
-=-=-=-=-=-=-=-=-=-= | view el1 el2 | view := R3View new. el1 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el2 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. view add: el1; add: el2.
el2 translateByZ: -2.
view addInteraction: R3MouseControl new; addInteraction: R3KeyControlForMac new. view open -=-=-=-=-=-=-=-=-=-=
But I get something like: Would it be possible to have translucent cubes? Any OpenGL expert around?
Come on, Alex, sometimes you make me think you just came from the Moon.
http://www.opengl.org/archives/resources/faq/technical/transparency.htm http://www.openglsuperbible.com/ google: opengl transparency
Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
-- Best regards, Igor Stasenko.
Wow!! Impressive Ronie! Works pretty well! Iâve played a bit: Transparency + lighting model -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | view el1 el2 | view := R3View new. view lightingModel: R3MultipassPerPixelLighting new. el1 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el2 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el1 makeTranslucent. el2 makeTranslucent. view add: el1; add: el2. el2 translateByZ: -2. view add: (R3SpotLight position: (R3Vector3 newX: 0 y: 2 z: 0) direction: (R3Vector3 newX: 0 y: -1 z: 0) cutoff: 45 exponent: 10 color: Color cyan). view addInteraction: R3MouseControl new; addInteraction: R3KeyControlForMac new. view open -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Just posted on https://www.facebook.com/photo.php?fbid=562076237212311&set=a.55251838816809... Cheers, Alexandre On Dec 24, 2013, at 3:23 AM, Ronie Salgado <roniesalg@gmail.com> wrote:
Hi Alex,
Translucent objects requires a singlepass lighting model, which I took the opportunity to complete and make it the default one. I put your example with a slight modification under R3Example>>translucentCubes Translucent elements require a reception of the message makeTranslucent since their rendering must be handled in a special way. They must rendered after all the opaque objects, in a back to front order without depth writing. Currently only depth writing disabling per element is supported, so their rendering is not going to be perfect, but at least some transparency can be seen.
Greetings, Ronie Salgado
2013/12/23 Igor Stasenko <siguctua@gmail.com>
On 23 December 2013 22:04, Alexandre Bergel <alexandre.bergel@me.com> wrote: Hi!
Is there a way to have transparent colors with NBOpenGL? Iâve tried the following (using Roassal 3d):
-=-=-=-=-=-=-=-=-=-= | view el1 el2 | view := R3View new. el1 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el2 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. view add: el1; add: el2.
el2 translateByZ: -2.
view addInteraction: R3MouseControl new; addInteraction: R3KeyControlForMac new. view open -=-=-=-=-=-=-=-=-=-=
But I get something like: <Screen Shot 2013-12-23 at 10.03.37 PM.png> Would it be possible to have translucent cubes? Any OpenGL expert around?
Come on, Alex, sometimes you make me think you just came from the Moon.
http://www.opengl.org/archives/resources/faq/technical/transparency.htm http://www.openglsuperbible.com/ google: opengl transparency
Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
-- Best regards, Igor Stasenko.
<translucent.png>
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi 2013/12/24 Alexandre Bergel <alexandre.bergel@me.com>
el1 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el2 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el1 makeTranslucent.
Can it be automatic? Element has color which know about its transparency
Hi Denis, The shape color is not enough to know about its transparency, because it could have a texture with partially transparent elements. Despite that, there's another kind of transparency, fully opaque or fully transparent, which doesn't require special rendering. That other kind of transparency is supported by the multi-pass lighting models. Greetings Ronie Salgado 2013/12/24 Denis Kudriashov <dionisiydk@gmail.com>
Hi
2013/12/24 Alexandre Bergel <alexandre.bergel@me.com>
el1 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el2 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el1 makeTranslucent.
Can it be automatic? Element has color which know about its transparency
On 24 December 2013 21:01, Ronie Salgado <roniesalg@gmail.com> wrote:
Hi Denis,
The shape color is not enough to know about its transparency, because it could have a texture with partially transparent elements. Despite that, there's another kind of transparency, fully opaque or fully transparent, which doesn't require special rendering. That other kind of transparency is supported by the multi-pass lighting models.
... and there are many different techniques for rendering scenes with semi-transparent objects, including ray-tracing. Some solutions are simple some are complex, and require significant efforts for implementing them, like properly organizing/adjusting data structures and rendering pipeline. So, answering question if it 'can be automatic', - yes, if someone will implement it. OpenGL out-of-the-box, don't have such automagic.
Greetings
Ronie Salgado
2013/12/24 Denis Kudriashov <dionisiydk@gmail.com>
Hi
2013/12/24 Alexandre Bergel <alexandre.bergel@me.com>
el1 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el2 := (R3CubeShape new color: (Color purple alpha: 0.2)) element. el1 makeTranslucent.
Can it be automatic? Element has color which know about its transparency
-- Best regards, Igor Stasenko.
Ronie I was talking about 3D with Igor (because Igor came to Smalltalk because he wanted to use it as a game engine and built rendering engine in Pascal long long time ago :). So I was brainstorming to see what you could do. the last time alex show roassal 3D we were thinking that it would be good to build a kickstarter show case on something sexy (maybe bridging a physical model to 3D)â¦. Now what would like to build with NBOpenGL? What are your dreams and how could we slice them into tasks that could be reached in a limited amount of time. Stef
Stef That sounds very interesting. I dream of a virtual world environment such as Second Life, highly dynamic and completely open source. But currently I would like to do a simple video game, with toon like graphic, using bullet for physics. I think that making an actual game development pipeline would be very interesting. I would not create a full level editor, modeling software because it takes too much time, and there is Blender which is open source and very complete. Some tasks required are as follow: - An easy way to make bindings for C++ libraries. For this I am going to start extending SWIG(http://www.swig.org/) so it can generate bindings for Pharo NativeBoost. - Bindings for the Bullet physics engine(http://bulletphysics.org/wordpress/). With the extensions for swig, this is trivial. - An importer for COLLADA. COLLADA is a XML based asset exchange format, with a wide support in different 3d model editors, such as Blender. - For Linux, a new VM display module is required. The current that uses just X11 suffers of severe tearing and flickering. I would like to make a display module for the VM that uses SDL2, which is a cross platform library that supports hardware accelerated graphics, or cross platform creation of an OpenGL context. - I think that garbage collection would require some determinism/time constraint or write some guidelines to avoid triggering the gargbage collector. When I'm testing the particles, I can see some noticeable pause, that I attribute to the garbage collector. Greetings, Ronie Salgado 2013/12/25 Stéphane Ducasse <stephane.ducasse@inria.fr>
Ronie
I was talking about 3D with Igor (because Igor came to Smalltalk because he wanted to use it as a game engine and built rendering engine in Pascal long long time ago :). So I was brainstorming to see what you could do.
the last time alex show roassal 3D we were thinking that it would be good to build a kickstarter show case on something sexy (maybe bridging a physical model to 3D)â¦.
Now what would like to build with NBOpenGL? What are your dreams and how could we slice them into tasks that could be reached in a limited amount of time.
Stef
Ronie, You mention libSDL. Do you know how it compares with Cairo? They look similar, but I could not find a detailed comparison Alexandre
Le 26-12-2013 à 0:12, Ronie Salgado <roniesalg@gmail.com> a écrit :
Stef
That sounds very interesting. I dream of a virtual world environment such as Second Life, highly dynamic and completely open source.
But currently I would like to do a simple video game, with toon like graphic, using bullet for physics. I think that making an actual game development pipeline would be very interesting. I would not create a full level editor, modeling software because it takes too much time, and there is Blender which is open source and very complete.
Some tasks required are as follow: - An easy way to make bindings for C++ libraries. For this I am going to start extending SWIG(http://www.swig.org/) so it can generate bindings for Pharo NativeBoost. - Bindings for the Bullet physics engine(http://bulletphysics.org/wordpress/). With the extensions for swig, this is trivial. - An importer for COLLADA. COLLADA is a XML based asset exchange format, with a wide support in different 3d model editors, such as Blender. - For Linux, a new VM display module is required. The current that uses just X11 suffers of severe tearing and flickering. I would like to make a display module for the VM that uses SDL2, which is a cross platform library that supports hardware accelerated graphics, or cross platform creation of an OpenGL context. - I think that garbage collection would require some determinism/time constraint or write some guidelines to avoid triggering the gargbage collector. When I'm testing the particles, I can see some noticeable pause, that I attribute to the garbage collector.
Greetings, Ronie Salgado
2013/12/25 Stéphane Ducasse <stephane.ducasse@inria.fr>
Ronie
I was talking about 3D with Igor (because Igor came to Smalltalk because he wanted to use it as a game engine and built rendering engine in Pascal long long time ago :). So I was brainstorming to see what you could do.
the last time alex show roassal 3D we were thinking that it would be good to build a kickstarter show case on something sexy (maybe bridging a physical model to 3D)â¦.
Now what would like to build with NBOpenGL? What are your dreams and how could we slice them into tasks that could be reached in a limited amount of time.
Stef
Alex, libSDL and libSDL2 are low-level multi-media libraries designed for games. Those libraries are best suited for basic pixel blitting, some lines and rect in a cross platform way. Both libraries allows you to use a custom software rendering or create a window in a cross-platform way. As for Cairo, that's a full featured vector graphics library, practically designed for SVG rendering. So, those two libraries cannot be compared, but I think that Cairo can be used to render into a texture and then use SDL to display it on screen. Actually, I don't have any experience with Cairo. As for the VM, I was looking at his Unix platform module, suspecting that the tearing and flickering was caused by using just XLib for blitting the main pharo window after Milton told that those issues aren't seen in Windows. If we add to the mix some always buggy AMD drivers, it seems that the solution goes by rewriting the display to uses OpenGL for blitting the main window, with VSync enabled, or using a separate native window for OpenGL graphics. By the way, what I found most strange about display VM code is that there's support for creating an OpenGL context already in place, with an accompanying -glxdebug flag, for verbose output. When I tried that option, I didn't get any output, so I could assume that these is not used for fast blitting under Linux. As for SDL2, it provides all the required facilities for a VM display module, without having to deal with X11 or platform specifics. Window creation, multiple OpenGL context creation, clipboard handling, input support, multi-threading, sound support, drag and drop. That version of SDL had a strong contribution by Valve, they needed something to start pushing heavily Linux, even the latest versions of Steam uses it. Anyway, I am planning to discuss this matter with Igor, during my stay at Lille. Greetings, Ronie Salgado 2013/12/26 Alexandre Bergel <alexandre.bergel@me.com>
Ronie,
You mention libSDL. Do you know how it compares with Cairo? They look similar, but I could not find a detailed comparison
Alexandre
Le 26-12-2013 à 0:12, Ronie Salgado <roniesalg@gmail.com> a écrit :
Stef
That sounds very interesting. I dream of a virtual world environment such as Second Life, highly dynamic and completely open source.
But currently I would like to do a simple video game, with toon like graphic, using bullet for physics. I think that making an actual game development pipeline would be very interesting. I would not create a full level editor, modeling software because it takes too much time, and there is Blender which is open source and very complete.
Some tasks required are as follow: - An easy way to make bindings for C++ libraries. For this I am going to start extending SWIG(http://www.swig.org/) so it can generate bindings for Pharo NativeBoost. - Bindings for the Bullet physics engine( http://bulletphysics.org/wordpress/). With the extensions for swig, this is trivial. - An importer for COLLADA. COLLADA is a XML based asset exchange format, with a wide support in different 3d model editors, such as Blender. - For Linux, a new VM display module is required. The current that uses just X11 suffers of severe tearing and flickering. I would like to make a display module for the VM that uses SDL2, which is a cross platform library that supports hardware accelerated graphics, or cross platform creation of an OpenGL context. - I think that garbage collection would require some determinism/time constraint or write some guidelines to avoid triggering the gargbage collector. When I'm testing the particles, I can see some noticeable pause, that I attribute to the garbage collector.
Greetings, Ronie Salgado
2013/12/25 Stéphane Ducasse <stephane.ducasse@inria.fr>
Ronie
I was talking about 3D with Igor (because Igor came to Smalltalk because he wanted to use it as a game engine and built rendering engine in Pascal long long time ago :). So I was brainstorming to see what you could do.
the last time alex show roassal 3D we were thinking that it would be good to build a kickstarter show case on something sexy (maybe bridging a physical model to 3D)â¦.
Now what would like to build with NBOpenGL? What are your dreams and how could we slice them into tasks that could be reached in a limited amount of time.
Stef
On 26 December 2013 07:52, Ronie Salgado <roniesalg@gmail.com> wrote:
Alex,
libSDL and libSDL2 are low-level multi-media libraries designed for games. Those libraries are best suited for basic pixel blitting, some lines and rect in a cross platform way. Both libraries allows you to use a custom software rendering or create a window in a cross-platform way. As for Cairo, that's a full featured vector graphics library, practically designed for SVG rendering. So, those two libraries cannot be compared, but I think that Cairo can be used to render into a texture and then use SDL to display it on screen. Actually, I don't have any experience with Cairo.
As for the VM, I was looking at his Unix platform module, suspecting that the tearing and flickering was caused by using just XLib for blitting the main pharo window after Milton told that those issues aren't seen in Windows. If we add to the mix some always buggy AMD drivers, it seems that the solution goes by rewriting the display to uses OpenGL for blitting the main window, with VSync enabled, or using a separate native window for OpenGL graphics.
By the way, what I found most strange about display VM code is that there's support for creating an OpenGL context already in place, with an accompanying -glxdebug flag, for verbose output. When I tried that option, I didn't get any output, so I could assume that these is not used for fast blitting under Linux.
As for SDL2, it provides all the required facilities for a VM display module, without having to deal with X11 or platform specifics. Window creation, multiple OpenGL context creation, clipboard handling, input support, multi-threading, sound support, drag and drop. That version of SDL had a strong contribution by Valve, they needed something to start pushing heavily Linux, even the latest versions of Steam uses it.
Anyway, I am planning to discuss this matter with Igor, during my stay at Lille.
Yes, i want to do some improvements in this area of VM.
Greetings, Ronie Salgado
2013/12/26 Alexandre Bergel <alexandre.bergel@me.com>
Ronie,
You mention libSDL. Do you know how it compares with Cairo? They look similar, but I could not find a detailed comparison
Alexandre
Le 26-12-2013 à 0:12, Ronie Salgado <roniesalg@gmail.com> a écrit :
Stef
That sounds very interesting. I dream of a virtual world environment such as Second Life, highly dynamic and completely open source.
But currently I would like to do a simple video game, with toon like graphic, using bullet for physics. I think that making an actual game development pipeline would be very interesting. I would not create a full level editor, modeling software because it takes too much time, and there is Blender which is open source and very complete.
Some tasks required are as follow: - An easy way to make bindings for C++ libraries. For this I am going to start extending SWIG(http://www.swig.org/) so it can generate bindings for Pharo NativeBoost. - Bindings for the Bullet physics engine( http://bulletphysics.org/wordpress/). With the extensions for swig, this is trivial. - An importer for COLLADA. COLLADA is a XML based asset exchange format, with a wide support in different 3d model editors, such as Blender. - For Linux, a new VM display module is required. The current that uses just X11 suffers of severe tearing and flickering. I would like to make a display module for the VM that uses SDL2, which is a cross platform library that supports hardware accelerated graphics, or cross platform creation of an OpenGL context. - I think that garbage collection would require some determinism/time constraint or write some guidelines to avoid triggering the gargbage collector. When I'm testing the particles, I can see some noticeable pause, that I attribute to the garbage collector.
Greetings, Ronie Salgado
2013/12/25 Stéphane Ducasse <stephane.ducasse@inria.fr>
Ronie
I was talking about 3D with Igor (because Igor came to Smalltalk because he wanted to use it as a game engine and built rendering engine in Pascal long long time ago :). So I was brainstorming to see what you could do.
the last time alex show roassal 3D we were thinking that it would be good to build a kickstarter show case on something sexy (maybe bridging a physical model to 3D)â¦.
Now what would like to build with NBOpenGL? What are your dreams and how could we slice them into tasks that could be reached in a limited amount of time.
Stef
-- Best regards, Igor Stasenko.
Thanks Ronie for these explanation Alexandre On Dec 26, 2013, at 7:52 AM, Ronie Salgado <roniesalg@gmail.com> wrote:
Alex,
libSDL and libSDL2 are low-level multi-media libraries designed for games. Those libraries are best suited for basic pixel blitting, some lines and rect in a cross platform way. Both libraries allows you to use a custom software rendering or create a window in a cross-platform way. As for Cairo, that's a full featured vector graphics library, practically designed for SVG rendering. So, those two libraries cannot be compared, but I think that Cairo can be used to render into a texture and then use SDL to display it on screen. Actually, I don't have any experience with Cairo.
As for the VM, I was looking at his Unix platform module, suspecting that the tearing and flickering was caused by using just XLib for blitting the main pharo window after Milton told that those issues aren't seen in Windows. If we add to the mix some always buggy AMD drivers, it seems that the solution goes by rewriting the display to uses OpenGL for blitting the main window, with VSync enabled, or using a separate native window for OpenGL graphics.
By the way, what I found most strange about display VM code is that there's support for creating an OpenGL context already in place, with an accompanying -glxdebug flag, for verbose output. When I tried that option, I didn't get any output, so I could assume that these is not used for fast blitting under Linux.
As for SDL2, it provides all the required facilities for a VM display module, without having to deal with X11 or platform specifics. Window creation, multiple OpenGL context creation, clipboard handling, input support, multi-threading, sound support, drag and drop. That version of SDL had a strong contribution by Valve, they needed something to start pushing heavily Linux, even the latest versions of Steam uses it.
Anyway, I am planning to discuss this matter with Igor, during my stay at Lille.
Greetings, Ronie Salgado
2013/12/26 Alexandre Bergel <alexandre.bergel@me.com> Ronie,
You mention libSDL. Do you know how it compares with Cairo? They look similar, but I could not find a detailed comparison
Alexandre
Le 26-12-2013 à 0:12, Ronie Salgado <roniesalg@gmail.com> a écrit :
Stef
That sounds very interesting. I dream of a virtual world environment such as Second Life, highly dynamic and completely open source.
But currently I would like to do a simple video game, with toon like graphic, using bullet for physics. I think that making an actual game development pipeline would be very interesting. I would not create a full level editor, modeling software because it takes too much time, and there is Blender which is open source and very complete.
Some tasks required are as follow: - An easy way to make bindings for C++ libraries. For this I am going to start extending SWIG(http://www.swig.org/) so it can generate bindings for Pharo NativeBoost. - Bindings for the Bullet physics engine(http://bulletphysics.org/wordpress/). With the extensions for swig, this is trivial. - An importer for COLLADA. COLLADA is a XML based asset exchange format, with a wide support in different 3d model editors, such as Blender. - For Linux, a new VM display module is required. The current that uses just X11 suffers of severe tearing and flickering. I would like to make a display module for the VM that uses SDL2, which is a cross platform library that supports hardware accelerated graphics, or cross platform creation of an OpenGL context. - I think that garbage collection would require some determinism/time constraint or write some guidelines to avoid triggering the gargbage collector. When I'm testing the particles, I can see some noticeable pause, that I attribute to the garbage collector.
Greetings, Ronie Salgado
2013/12/25 Stéphane Ducasse <stephane.ducasse@inria.fr> Ronie
I was talking about 3D with Igor (because Igor came to Smalltalk because he wanted to use it as a game engine and built rendering engine in Pascal long long time ago :). So I was brainstorming to see what you could do.
the last time alex show roassal 3D we were thinking that it would be good to build a kickstarter show case on something sexy (maybe bridging a physical model to 3D)â¦.
Now what would like to build with NBOpenGL? What are your dreams and how could we slice them into tasks that could be reached in a limited amount of time.
Stef
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
This sounds really exciting :)
That sounds very interesting. I dream of a virtual world environment such as Second Life, highly dynamic and completely open source.
Croquet was going in that direction and this is good to improve the infrastructure of Pharo in that direction. Better interaction with C and C++ is definitively a big plus.
But currently I would like to do a simple video game, with toon like graphic, using bullet for physics. I think that making an actual game development pipeline would be very interesting.
Yes :) Now let us start small and focus on key elements. Clement was suggesting that we could even launch a kick starter :)
I would not create a full level editor, modeling software because it takes too much time, and there is Blender which is open source and very complete.
Some tasks required are as follow: - An easy way to make bindings for C++ libraries. For this I am going to start extending SWIG(http://www.swig.org/) so it can generate bindings for Pharo NativeBoost.
- Bindings for the Bullet physics engine(http://bulletphysics.org/wordpress/). With the extensions for swig, this is trivial. Did you see that esteban and JB did a binding to another physic engine (forgot his name).
- An importer for COLLADA. COLLADA is a XML based asset exchange format, with a wide support in different 3d model editors, such as Blender. We could turn that into a student project.
- For Linux, a new VM display module is required. The current that uses just X11 suffers of severe tearing and flickering. I would like to make a display module for the VM that uses SDL2, which is a cross platform library that supports hardware accelerated graphics, or cross platform creation of an OpenGL context.
Iâm sure that igor wants to have a look at that.
- I think that garbage collection would require some determinism/time constraint or write some guidelines to avoid triggering the gargbage collector. When I'm testing the particles, I can see some noticeable pause, that I attribute to the garbage collector.
Eliot Miranda is working a new GC and it is much much much better. No global GC needed anymore. So for Pharo 40 we will get a lot of improvements from this part. We are really excited because it opens a lot of space
Greetings, Ronie Salgado
2013/12/25 Stéphane Ducasse <stephane.ducasse@inria.fr> Ronie
I was talking about 3D with Igor (because Igor came to Smalltalk because he wanted to use it as a game engine and built rendering engine in Pascal long long time ago :). So I was brainstorming to see what you could do.
the last time alex show roassal 3D we were thinking that it would be good to build a kickstarter show case on something sexy (maybe bridging a physical model to 3D)â¦.
Now what would like to build with NBOpenGL? What are your dreams and how could we slice them into tasks that could be reached in a limited amount of time.
Stef
On 26 Dec 2013, at 16:44, Stéphane Ducasse <Stephane.Ducasse@inria.fr> wrote:
This sounds really exciting :)
That sounds very interesting. I dream of a virtual world environment such as Second Life, highly dynamic and completely open source.
Croquet was going in that direction and this is good to improve the infrastructure of Pharo in that direction. Better interaction with C and C++ is definitively a big plus.
But currently I would like to do a simple video game, with toon like graphic, using bullet for physics. I think that making an actual game development pipeline would be very interesting.
Yes :) Now let us start small and focus on key elements. Clement was suggesting that we could even launch a kick starter :)
I would not create a full level editor, modeling software because it takes too much time, and there is Blender which is open source and very complete.
Some tasks required are as follow: - An easy way to make bindings for C++ libraries. For this I am going to start extending SWIG(http://www.swig.org/) so it can generate bindings for Pharo NativeBoost.
- Bindings for the Bullet physics engine(http://bulletphysics.org/wordpress/). With the extensions for swig, this is trivial. Did you see that esteban and JB did a binding to another physic engine (forgot his name).
it is chipmunk, but is for 2d physics. Esteban
- An importer for COLLADA. COLLADA is a XML based asset exchange format, with a wide support in different 3d model editors, such as Blender. We could turn that into a student project.
- For Linux, a new VM display module is required. The current that uses just X11 suffers of severe tearing and flickering. I would like to make a display module for the VM that uses SDL2, which is a cross platform library that supports hardware accelerated graphics, or cross platform creation of an OpenGL context.
Iâm sure that igor wants to have a look at that.
- I think that garbage collection would require some determinism/time constraint or write some guidelines to avoid triggering the gargbage collector. When I'm testing the particles, I can see some noticeable pause, that I attribute to the garbage collector.
Eliot Miranda is working a new GC and it is much much much better. No global GC needed anymore. So for Pharo 40 we will get a lot of improvements from this part. We are really excited because it opens a lot of space
Greetings, Ronie Salgado
2013/12/25 Stéphane Ducasse <stephane.ducasse@inria.fr> Ronie
I was talking about 3D with Igor (because Igor came to Smalltalk because he wanted to use it as a game engine and built rendering engine in Pascal long long time ago :). So I was brainstorming to see what you could do.
the last time alex show roassal 3D we were thinking that it would be good to build a kickstarter show case on something sexy (maybe bridging a physical model to 3D)â¦.
Now what would like to build with NBOpenGL? What are your dreams and how could we slice them into tasks that could be reached in a limited amount of time.
Stef
participants (6)
-
Alexandre Bergel -
Denis Kudriashov -
Esteban Lorenzano -
Igor Stasenko -
Ronie Salgado -
Stéphane Ducasse