which openGL/GLSL will be supported on max 6

    Jul 14 2011 | 11:26 am
    First of all congrats for the announcement of the upcoming max 6. Curious to see how it will be. So, many changes going on this summer, eh? for the OSX users, we are moving into opengl 3.x, new graphic features will be available. I was wondering, which openGL will be supported now by this jitter 2( or whatever number it is) and what glsl implementation. thanks -emmanuel

    • Jul 14 2011 | 2:50 pm
      There are lots of gotchas with OpenGL Core Profile (3.2) on Mac OS X 10.7. Part of the issue is it is completely incompatible with the legacy profile of older OpenGL 1.x and 2.x "immediate mode" calls. Whats that mean?
      It means any OpenGL code you have that calls glBegin, glEnd, glVertex, leverages the supplied matrix modes, supplied matrix stack controls, client state, shader uniforms, shader varyings, supplied shader attributes (gl_FragColor, gl_ModelViewMatrix, etc) and many more commands I don't recall at this moment, will simply not work at all, and throw and error.
      Secondly, one cannot easily share resources between a legacy and core (3.2) profile. This means no mixing and matching in OpenGL versions in an application. You cannot have your cake and eat (render?) it too.
      This means any existing OpenGL 3rd party extensions would have to be re-written, all internal OpenGL code completely re-done., and support would only exist for 10.7.
      In short, I suspect that wont be the case that Max 6 uses Core (3.2) profile just because it would require re-working damn near everything at the expense of compatibility with 10.6 and below.
      It kind of sucks, but thats how it has to be. The new OpenGL API model is very different than the old, and developers are much more responsible for handling proper OpenGL matrix setup and manipulation. The good news is it is generally faster, and core profile comes with new features that are very powerful (shader instancing, for example). The gotcha is, its typically hard to migrate existing code to Core profile, and it only works in 10.7.
      Sorry to burst bubbles. Core is quite a change in many ways to how one approaches GL programming and requires a lot more leg-work from a developer to get stuff to the screen. Its much more flexible however, and much higher performance. Im starting to look into it, but migration is a *bitch*, especially for systems like Max, Quartz Composer, FFGL etc, where devs have to keep in mind 3rd party compatibility.
    • Jul 14 2011 | 3:20 pm
      Hey vade! thanks (as always) for the super informed report. Yeah, i was scared of an answer like that. You see, openGL is an amazing library but it has so many flavors that becomes quite complicate to keep3rd party compatible apps as max updated with all the recent changes. However that makes me think: 1-Doesn't matter how many tools for easy coding would be available in max, it is a huge pity it will rely on the same shading model/gl implementation. So from here i am wondering if there is a way to have parts of the GL3 API exposed to max, even if that would require some special objects( is that realistic?) 2-I've been reading the posts around the max upgrade and some people are wondering if max will make it to the iOS. Listening to your explanation it sound like having a device support is faaaaaaar from happening. I mean, GLES is so different from the normal openGL(in particular GLES 2) that it sound like an epic task to do the porting. 3-what is your opinion about a gpgpu support? i guess that is another dream…
    • Jul 14 2011 | 3:25 pm
      Actually OpenGL Core (3.2) and OpenGL ES 2.0 are very similar. Both drop the immediate mode overhead, and many calls are the same. Everything moves to buffers and fully programmable pipeline, so its not that different, in fact, they are similar for a reason.
      As for having some aspects of Core (3.2) in Legacy, this is already possible via ARB extensions. Many features in Core are used today in 2.1 on 10.6, but not all drivers/cards support every extension, so you have to be careful on assuming what is and is not available.
      I have absolutely no idea about support for iOS. Maybe Cycling elves have worked some magic with their code gen stuff? Personally id be surprised, but I have absolutely no clue one way or another about that.
      Why do you want Core so bad? Just the "new" and shiny? (even though, admittedly, OpenGL 3.x is already out-dated...)
    • Jul 14 2011 | 3:30 pm
      Well, 'new' is a very open word when it comes to OSX and max, right?
      anyhow very happy because of this new max version