I am a relatively new Juce user myself and the company I’m working for presently has a big 3D engine project to complete and if we can do it cross-platform all the better. I have been working to extend Juce to support 3D better and have made some initial notes in this post http://www.rawmaterialsoftware.com/viewtopic.php?f=2&t=9541. Indeed it doesn’t appear anyone has tried to do any 3D apps (OpenGL ES 2.x at least) since the framework didn’t have matrix uniform support extension points enabled until last week or so. This is now the case though and I have not found any problems thus far except that there are some timing irregularities with the Android side of things. IE the Timer callbacks are not happening correctly on Android and I have yet to get a chance to debug. I’d say this should be a bug that can be squashed relatively soon though, however Jules’ and co will have to comment on this. There should be no problems hitting 60 FPS especially if you are fully managing the rendering and not using a Juce graphics context to draw. IE all GL code and you’re fine. The default OpenGL demo uses the graphics context to draw a dynamic texture on the cube and for the background path component and the locking between the message thread and usage of the graphics context in this manner gives FPS irregularities.
I have since that post a week or so ago started on extending Juce to support child GL components that render into the same OpenGLContext since presently an app can only have one top level GL component. I’ll be done with the basic use case (IE without child rotation stacking / clipping) in the next day or so and it’s super handy to be able to use child Components to contain GL code without managing an entirely different scene graph of sorts. I’m basically for now have a separate render stage for each component into an FBO and a composite stage that clips the GLComponent textures. I’d really like to contribute back this effort and am still trying to get things cleared with my employer. Hopefully if this comes through it will provide a starting point for official Juce support for GL child components.
Now I’ll mention another cross-platform abstraction framework you should take a look at that is geared toward game development. It’s called BatteryTech (http://www.batterypoweredgames.com/batterytech). I evaluated BT before Juce and it’s nice, but with limited GUI support, but nice integration w/ Lua, Bullet, Box2D, etc. The app I’m working on is fairly heavy on the GUI side + 3D rendering, so Juce was a better fit though it does need to be extended for this use case. Also the one feature that I like in Juce that BT doesn’t have is the IntroJucer or a separate project management tool that auto-updates all the build and project configurations for the end targets being deployed too. It definitely helps for larger teams. There are of course other cross-platform abstraction frameworks more specific for game dev too, but Juce certainly isn’t out of the running per se and should be more capable soon enough. It depends on the use case really.