
Hello, Are there any plans in the pipeline to add a 3d graphics library to boost? If there was an available implementation would something like this be considered? I'm talking about a 3d graphics api wrapper probably around OpenGL in the style of boost. Functionality can include the common subset found in most other rendering APIs (like Direc3D and OpenGL) On the same note, how about an audio library? load audio files, play audio files, etc... I can see some problems, the main one (AFAIK) being supporting all the different window frameworks. If this can be worked around somehow (it could if something like gtk or wxWidgets was added to boost)... Comments? - Ali

ali fareed wrote:
Hello,
Are there any plans in the pipeline to add a 3d graphics library to boost? If there was an available implementation would something like this be considered? I'm talking about a 3d graphics api wrapper probably around OpenGL in the style of boost. Functionality can include the common subset found in most other rendering APIs (like Direc3D and OpenGL)
I wonder how such an interface would look. I would be amazingly nice to have an interface to which one could conform backends to in an efficient manner. The backends I would love to see supported are: OpenGL 1.5 / 2.0 Direct3D 8.1 / 9 / 10, XBOX, XBOX360 OpenGL|ES 1.0 / 1.1 / 2.0 PSGL Of course these libraries have wildly different interfaces, implementations, feature sets etc. Almost all existing 3d graphics abstractions are implemented as rendering engine frameworks. A framework is very hard to buy into and using multiple frameworks together is next to impossible. A toolkit approach ala ASIO would be preferred. Anyways I'd love a discussion about this idea. I'm currently stuck implementing yet another abstraction layer for a subset of the backends I mentioned above. And while the work is interesting it was much more interesting the first time I had to do it and I'd rather be working on the project.
On the same note, how about an audio library? load audio files, play audio files, etc...
Just finished yet another audio wrapper to run on top of several audio backends. For most people I suppose FMOD suffices but FMOD doesn't support every platform so we're back to rolling our own interface wrapper for various implementations because FMOD is closed and commercial.
I can see some problems, the main one (AFAIK) being supporting all the different window frameworks. If this can be worked around somehow (it could if something like gtk or wxWidgets was added to boost)...
Most window frameworks are very hard integrate into existing applications in my experience and are generally diffcult to port to unsupported platforms.
Comments?
Creating interfaces like this seems like a huge beast to tackle but an important one as much wasted effort is being put into reinventing these wheels. I think it is important to create core interfaces that can handle the simple tasks (i.e draw a triangle list with a texture applied, or play a mono looping sound) that can be readily ported to new backends without having to get a whole mess of additional functionality working from the get go. - Michael Marcin

I wonder how such an interface would look.
I wish I knew. I'm guessing it would be something akin to an abstract factory of a sort. First I suppose there'd have to be a 3d maths library implemented into boost. This is something that I can see the design of quite clearly, and should be quite straight forward to get relatively right. Even if that alone was created without a graphics lib it would be a big help. I would be amazingly nice to have an interface to which one could conform
backends to in an efficient manner.
It would indeed :) The backends I would love to see supported are:
OpenGL 1.5 / 2.0 Direct3D 8.1 / 9 / 10, XBOX, XBOX360 OpenGL|ES 1.0 / 1.1 / 2.0 PSGL
Of course these libraries have wildly different interfaces, implementations, feature sets etc.
Yeah, but I was not thinking of a fully featured 3d rendering library. More like a subset of the various graphics apis. Like most of the basic functionality. I don'k know how useful this'd be for the more "cool feature" inclined 3d applications (games come to mind), but it'd be more then sufficient for 3d app that do not require all the razzle dazzle that games would. Like scientific research applications and visualization software (AutoCad?) Almost all existing 3d graphics abstractions are implemented as rendering
engine frameworks. A framework is very hard to buy into and using multiple frameworks together is next to impossible. A toolkit approach ala ASIO would be preferred.
Could you add to this a bit. I'm not familiar with asio (I just spent a little while looking at it), but like what'd be the key differences between a toolkit approach and a framework one? A toolkit one would more closesly resemble a utility library yes?
Most window frameworks are very hard integrate into existing applications in my experience and are generally diffcult to port to unsupported platforms.
So if there was a boost graphcis lib, then it'd have to go through one of the cross platform window frameworks? How about just a basic window object that's just created for the graphics lib? Nothing fancy nothing extra... I'm not really familiar with the topic though as I've only been doing win32 development when it comes to windowing systems.
Comments?
Creating interfaces like this seems like a huge beast to tackle but an important one as much wasted effort is being put into reinventing these wheels.
Yeah, maybe we can manage to gather some ideas on how something like this can be implemented. I think it is important to create core interfaces that can handle
the simple tasks (i.e draw a triangle list with a texture applied, or play a mono looping sound)
Yes, that's exactly what I was thinking, basic functionality. that can be readily ported to new backends without
having to get a whole mess of additional functionality working from the get go.
Do you have anything in mind of how something like this owuld look like? - Ali
participants (2)
-
ali fareed
-
Michael Marcin