on 16 April 2014
Originally developed by SGI, OpenGL is the real-time 3D graphics standard that powers applications such as Maya. If memory serves, it’s also the reason why, in 1999, many computer graphics students at Bournemouth University, including myself, begged, stole or borrowed to get an NT box loaded with a 3DLabs graphics card.
At the time of writing this, I feel this potential is largely unrealised. As everything moves to the web, mobile processing power climbs, scripting replaces compiled languages, rendering shifts to realtime and content is increasingly delivered interactively, WebGL is set to become the cross-platform standard for 3D graphics.
The book does not discuss programmatic constructs. It is instead organised around practical methods of working with geometry, lights, layout and camera, effects etc. In all, a very familiar vocabulary for CG artists.
There are some semantic quirks. In three.js a ‘geometry’ plus a ‘material’ equals a ‘mesh’. And I found areas where different programming paradigms interweaved––such as JQuery wrapping another call, or nested references to HTML elements within the document itself––occasionally disorienting. However, this was not a real problem and I think it’s good that the book didn’t waste space on general web coding.
I think, for somebody coming from broadcast CG, the main challenge is to grasp the general context you are working in. Three.js is not an authoring environment. Without an interactive editor, complex modelling or keyframe animation quickly become extremely tedious. Although higher-level tools are beginning to emerge––Verold being an eminent example––interoperability with desktop software remains crucial.
Nevertheless, it would be short-sighted to say that all the technology needs right now is an online version of Maya. Three.js is not a mere wrapper for a rendering engine. While working with it I was constantly reminded that I wasn’t setting up a scene to be rendered for an edit. I was building something interactive, with a wealth of open, web-based functionalities to draw upon.
This experience neatly reflected the schizoid blurring of the line between content authoring and consumption that––at least to an outsider––typifies the web, and made Dirksen’s book a worthwhile, fun, and surprisingly painless, introduction.