This topic is a branch off another where a user is pondering a switch from Mac to Windows and asked for hardware advice. The question arose there of whether SketchUp would consider conversion to use Apple’s Metal graphics Library to get better performance and to avoid issues if Apple deprecated OpenGL. I suppose the same could be asked about Microsoft’s DirectX.
Although I doubt Trimble will disclose anything about their plans, this seems like an interesting topic for discussion and speculation, so here goes…
There is lots of evidence that OpenGL is deeply entangled in the guts of how SketchUp is implemented. All the problems with not-quite-adequate graphics drivers, for example. Only the Trimble team know how big an effort it would be to substitute an alternative. Seems that would hinge a lot on whether OpenGL datatypes and functions are exposed directly in the logic vs wrapped in some layer.
The recent introduction of the web-based versions of SketchUp may provide a hint. They use webGL, which is I think supposed to be pretty much 1-1 port of OpenGL. Perhaps this, rather than breaking the tie to OpenGL, is their view of “future proofing” SketchUp?
Future-proofing SketchUp is (in my opinion) going to web standards, which opens possibilities for any new consumer devices/platforms. This is a strategy independent from SketchUp’s strong connection with OpenGL.
I don’t think it is a question of going DirectX/Metal since OpenGL was (is) an industry standard and the common denominator that also Apple supports. So far, an advantage (apart from a single code base) of OpenGL currently is that WebGL2 has been modelled after OpenGL ES 3 and the emscripten compiler can translate not only C/C++ code to JavaScript but also calls to the graphics API.
The successor of OpenGL is Vulkan. While Apple dropped out of the Vulkan group, there exist also implementations for MacOS/iOS. I have no idea whether any OS platform will deprecate OpenGL as it is so widely used (or whether it’s wise to do so).
However, WebGL is mainly an API that browsers connect to the underlying graphics hardware (e.g. with some security layers inbetween). Whatever will come after can be realized as an implementation of that API (no need for WebVulkan), so I think it is a future-proof target for the web.
Apple is already doing it, starting with 10.14. Is it a good idea? Probably not, but they have a history of adopting then abandoning technologies before anyone else like floppy drives, CD drives, firewire, java…
Deprecation of OpenGL and OpenCL
Apps built using OpenGL and OpenCL will continue to run in macOS 10.14, but these legacy technologies are deprecated in macOS 10.14. Games and graphics-intensive apps that use OpenGL should now adopt Metal. Similarly, apps that use OpenCL for computational tasks should now adopt Metal and Metal Performance Shaders.
Reports of the death of OpenGL have been greatly exaggerated.
Both Microsoft and Apple have alternatives they promote, that’s true. And Apple did announce they would deprecate OpenGL at their developer conference this year. Microsoft tried to do the same with DirectX back in the 90’s. The CAD industry (of which SketchUp is a part) still ships applications running OpenGL on Windows. The big CAD companies (Dassault and Siemens, for example) are very conservative and very influential. Nothing is going to change overnight.
Our team is constantly working on SketchUp’s display pipeline, and there isn’t any technology that we wouldn’t consider if it was genuinely able to improve performance, reliability or capability of the system overall. At the same time, we now ship SketchUp’s rendering pipeline on more than five unique platforms- Windows, macOS, WebGL, iOS, Android and HoloLens. For now, OpenGL is still the only technology supported on all those devices. We’re keenly aware of Vulkan, Metal and DirectX. And we’ll use them when/where appropriate for our users and their needs.
Ideally, SketchUp users shouldn’t really have to care about how we ultimately draw polygons on their screens as long as we are able to make it fast, reliable and beautiful. There’s always a breathless rush of news about rendering after shows like E3 and SIGGRAPH, but in practice these transitions are evolutions… not revolutions. OpenGL is over 25 years old, but is has constantly evolved throughout. Vulkan continues that evolution- in fact, it used to be referred to simply as “OpenGL 5.”
I don’t really have any special insight within the development groups for any of these new APIs, but it seems to me that it is gaming that is really driving them… not CAD. Game engine developers want the freedom to do more custom low-level performance optimization than OpenGL 4 (which is a relatively higher-level API) will naturally allow. These new implementations aren’t inherently faster, they just offer lower-level access for where special optimization can happen.
Always remember that companies like Apple and Microsoft benefit when developers build applications which run exclusively on their environments. Metal only runs on Apple devices. DirectX only runs on Windows. Developers (like us) benefit from running in all environments. OpenGL runs everywhere.
MS ditched OGL and simply let the makers of the graphics cards provide the OGL stack w/ their graphics card drivers. Which is not exactly the same as with a closed ecosystem as macOS where drivers are provided by Apple only (surely based on something delivered by the makers).
Sothat if Apples decides that OGL is deprecated (as lots of stuff in the past) and in consequence delivers graphics card drivers w/o OGL support only… ‘Bootcamp’ or ‘Parallels’ might be still usable
Installing Bootcamp seems to run really well. Then switching between OS’s is quick and painless. Makes the whole virtual desktop thing a bit redundant.
Parallels is first and foremost an emulation environment- it makes sense that their OpenGL implementation would not perform as well as a native one might. Bootcamp actually boots your system fully into Windows, which would give you full native performance.