ABSTRACT

An important consideration for any WebGL application is the implementation of the camera. Cameras must perform a series of matrix transformations that move the world, translating and rotating the geometry to obtain a vantage point. However, WebGL does not provide a construct to represent cameras, and each developer needs to implement his or her own. This is challenging, in particular, for a JavaScript developer with no experience in computer graphics: The math behind the operation of cameras is not developer friendly and it is a source of confusion and code bugs. Additionally, the JavaScript language does not provide native operations on matrices; therefore, extra coding or relying on a matrix library is required. Although these problems are addressed by several

23.1 Introduction 23.2 Transforming Scene Geometry 23.3 Building the Camera Transform 23.4 Cameras in WebGL Applications 23.5 Designing Cameras for WebGL Apps 23.6 Camera Landmarks: Saving and Retrieving Camera States 23.7 Landmark-Based Navigation 23.8 Existing Implementations 23.9 Future Directions 23.10 Resources Bibliography

publicly available, high-level WebGL libraries, each library implements cameras in a particular way, which might not necessarily address all the required behaviors in the project at hand.