Re: [osg-users] OpenGL NG: thoughts?

2014-08-13 Thread Alistair Baxter
I think a key issue with OpenGL 3 was that it implemented Cool New Stuff, but 
froze out people from integrating that with the code they'd already written. 
OpenGL NG seems to be about just more efficient access to and control of the 
same old stuff.

If there is any new stuff, then for a while, I expect they will continue to 
include it in minor revisions of OpenGL 4. Mirroring this policy in 
OpenSceneGraph and a new successor seems to be the sensible approach.


As regards the existing device/OS-specific APIs, I'd expect AMD to sideline 
their API in favour of both DirectX 12 and OpenGL NG, and Apple to take up NS 
as a standard alternative to Metal, too. Microsoft? I'm sure they'll keep on 
with DirectX, but they caved on WebGL in IE the end, so they might be persuaded 
to let OpenGL ES or NG on to their mobile/console/store platforms, especially 
if more people are going to just use ANGLE anyway.


Alistair Baxter
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] OpenGL NG: thoughts?

2014-08-12 Thread Paul Martz
I like the idea of revamping the OpenGL API.

In fact, I liked that idea when it was originally proposed in 2007 as
OpenGL 3. Unfortunately, most other developers did not like what Khronos
and the ARB put forth in that design. It was not well-received. The final
OpenGL v3.0 spec came out a year later with almost no mention of the
previous year's promised sweeping API changes. Most hardware vendors found
themselves doing a mea culpa, recommitting to the FFP and promising
software vendors continued support and backwards compatibility. Will OpenGL
NG suffer the same fate? Let's see how it's marketed. They'll have to do
something different this time, that's for certain.

OpenGL v3.1 subsequently introduced the concepts of compatibility and core
profiles. Most of my recent work has been directly with OpenGL v4.x core
profile, and I've found it to be an amazingly flexible and powerful API. I
like the idea that I'm writing code for a state-of-the-art API and not
depending on deprecated functionality.

But apparently this was a false sense of security for me. Little is known
about OpenGL NG at this time, but one thing is almost certain: It will bear
little resemblance to OpenGL core profile. So, while I thought I was
writing state-of-the-art code, and was telling my clients it was the right
thing to do for a long-term investment, it now appears that OpenGL NG is
going to invalidate that.

I've been in the 3D graphics industry for almost 30 years and I've seen
APIs come and go. If you would've told me back in 1994 that I'd still be
working with OpenGL today, I would've laughed in your face. OpenGL FFP has
had an unprecedented run -- testimony to a great API. But there are new
kids in charge now, and they want to take OpenGL in a new direction, to
make it a better fir for today's chips, systems, and programming use cases.

Thus, my first point: Change is going to happen. OpenGL has been very
stable, but maintaining that stability forever would probably be harmful to
the API in the long run. As developers, we like stability. But we also jump
on new technologies as they come out. OpenGL NG? Some of us will like it,
some of us won't.


Secondly: Note that OpenGL NG is just vaporware at this point. The
announcement mentions several other new APIs that have been recently become
available. In my career, I have seen a lot of marketing FUD. I don't know
whether OpenGL NG will ever be a reality or not, but right now it smells a
little like FUD, dangling the promise of a shiny new redesigned OpenGL API
in front of any OpenGL developers considering jumping ship to another API.


Third, and finally. I'm tired of the OpenGL versus DirectX debate. I am so
tired of it. If Khronos feels it needs to churn out an OpenGL NG solely for
the purposes of competing with DirectX, then that is a sad statement.
OpenGL's evolution should not be driven by team mentality.

I hate what Microsoft has done to try to kill OpenGL. Every time I start a
new OpenGL-based project that must be cross-platform, I have to re-evaluate
which one of the crappy GLEW-like kludges I'm going to use to get the code
running on Windows.

Has anyone from Khronos approached Microsoft regarding a single unified
API? I doubt it. Remember Fahrenheit, yeah, yeah. But I have to wonder if
Microsoft is also getting tired of this particular API war. They are in an
especially vulnerable spot now, given the prevalence of OpenGL on embedded
devices, and their recent disastrous Windows 8. They might see some benefit
to contributing to OpenGL, rather than continue to fight it. This is not
the first time I've publicly stated that Khronos/ARB and Microsoft should
work together. It benefits us, and it benefits them. Call me an idealist.


If you've read this far, then you've indulged me much further than I
deserve. Go back to work. :-)


On Mon, Aug 11, 2014 at 5:13 PM, Ethan Fahy ethanf...@gmail.com wrote:

 OpenGL NG was announced today and is a complete API break.  It's not clear
 what the timeframe is on this project, but it does seem like a big deal
 long-term with major implications for OSG.  I'd be curious to hear any
 opinions on this development from the OSG community.


 http://www.anandtech.com/show/8363/khronos-announces-next-generation-opengl-initiative

 --
 Read this topic online here:
 http://forum.openscenegraph.org/viewtopic.php?p=60633#60633





 ___
 osg-users mailing list
 osg-users@lists.openscenegraph.org
 http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




-- 
   -Paul
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] OpenGL NG: thoughts?

2014-08-12 Thread Robert Osfield
Hi Ethan, Paul, et. al.

Having been around OpenGL for a long time and seen various claims of revamp
come and go I'm inclined to like wait and see what happens.  The only
certainty will be that it'd be yet another API that hardware and software
vendors will need to support.  It only really helps if it can replace other
existing or proposed API's, what we want is less API's for hardware and
software vendors to work on so we can all concentrate on making what we
have perform well and work reliably.

In terms of replacing other new/proposed API's it'd need to replace MS's
Direct3D 12, AMD's Mantel and Apple's Metal in terms of the hardware
vendors focus.  Unfortunately MS, AMD and Apple all have their own agendas
and ego's so it's unlikely they'd just drop their own efforts on
concentrate on OpennGL NG.  This really means it'll be market forces that
will need to force their hand, i.e. the software vendor world needs to tell
MS, AMD and Apple no thanks, please just concentrate on OpenGL as we aren't
going to code for your API.  With OpenGL NG being just vapour-ware right
now it's kinda unlikely that we'll see any real movement away from this
competing for mid-share API's.

For OpenGL NG to work well it also needs to be back-ported to old OS's,
NVidia's recent promo on OpenGL 4.5 and Windows XP support gives me a
little encouragement in this direction, as I it sounds like OpenGL NG might
also fit in this role.

Having one OpenGL API across mobile and desktop just makes sense for
everyone, hardware vendors and software developers, but the difficulty
initially will be that vendors will need to maintain multiple driver teams
for a good deal longer.  Perhaps if adapter libraries could be written that
do OpenGL NG to ES drivers and OpenGL ES to NG drivers would help, a bit
like what ANGLE is doing right now for GLES - Direct3D.

Making an open source reference implementation of OpenGL NG would also be
something that would be useful.  The planned conformance suite is something
that could easily fit into this open source framework.

--

What it means for the OSG and users of the OSG is not something we can make
judgements on right now.  If the new library is major break from OpenGL and
ES in design then it may be an awkard fit for the OSG design, so just
adding into the GL, ES mix would not be easy or elegant to achieve.

Personally I'd love to be able to write a new clean scene graph API in
modern C++ an fully portable OpenGL NG library without need for lots of
platform specific code.  The OSG itself has traditionally retained  a
significant level of backwards compatibility so just like OpenGL itself -
the consequence is an API is bigger and more complex that a clean slate
scene graph would be.  Just like in OpenGL to OpenGL NG, one could also
envisage an OSG NG, however, it's essentially a new project, the old OSG
would still need to live on for a good deal longer simple because it's
needed.

Last year I started talking a little about a new scene graph project to
follow on from the OSG, I labelled it LSG (Lightweight Scene Graph) for
want of better name, and I've continued to think about it over the last
year but haven't done any coding on it.  I was thinking of LSG separating
the scene graph nodes from the graphics implementation in a way that would
allow multiple graphics implementations - so an OpenGL backend, and
separate OpenGL ES backend etc.  OpenGL NG could make the need for multiple
backends mute, which would simply development, but unless OpenGL NG was
quickly rolled out across all platforms, including old ones like XP, old
versions of Android etc., it would heavily limit LSG's use.

Another aspect to the LSG development is that I was looking at ways that
one could utilize LSG objects and rendering from within an existing OSG
application.  A OSG adapter node could enable a LSG scene graph to be added
to an OSG application and have the LSG take over rendering.  This approach
would enable one to retain existing OSG application code and move across to
LSG in a piece wise fashion rather than having to throw out the all the OSG
specific code in your application.  I don't know how seamlessly it could be
made to work, but if you have developers in both camps then it'd be much
easier to make it work.

If I were to spearhead an LSG effort I'd obviously want to make sure it's
leveraged as much as it can from the OSG community and code base.  All the
OSG's viewer and loaders you could potentially leveraged if one had an OSG
adapter node written very early in the projects inception.  If this
integration is their from the start then maintaining it long term becomes
much easier.

Perhaps one could envisage the OSG development slowing to become a
maintenance model, primarily adapting for platform changes rather than new
core features, and then focus new development work on the LSG.  Such a
model might see the last OSG release being finally tagged in a decade or
two's time... I suspect just like fixed function pipeline 

Re: [osg-users] OpenGL NG: thoughts?

2014-08-12 Thread Chris Hanson
I will merely throw in secondary comments because Paul and Robert have said
many of the major points.

I welcome our new direct-state overlords. I think OpenGL NG could be a
great idea. Apple and AMD have clearly seen the light with their own Mantle
and Metal efforts and Microsoft has been pushing this way with DX12. But
they are likely to suffer NIH-syndrome because no competitor wants to sign
on to an API that their opponent controls completely  (cf CUDA, DirectX,
etc).

I too, am wary of past failures like Fahrenheit and the original OpenGL 3.
But recent events (these new APIs, the change in market share to OpenGL ES
devices) have changed a lot of the landscape. Perhaps today they can
succeed where they failed in the past, if properly supported. I suspect
Microsoft might even have a teeny bit of interest in it, but they are so
internally conflicted that who knows. The fact that they are shipping
Office for iPad is a sea change over there and Satya Nadella could be the
difference.

Robert, what you describe as LSG sounds VERY much like the JAG project Paul
has been working on for a couple of years. Right down to the using OSG as a
transitional loader. JAG currently works pretty nicely with OpenGL 4 and
OpenGL ES, leaving out support for legacy/FFP features and leveraging
mature modern library dependencies (BOOST, POCO, GL3W, GMTL).

I can't comment on how JAG's current architecture might map to a NG API,
especially since we have no idea what that API might be. But I think it's
probably adaptable to it somehow, and is a good base to work from in the
future.

I am actually excited about the future potential of the OpenGL NG API. I
hope it goes good places and I'm looking forward to going there with it.

​
___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org