This page intentionally left blank C APPENDIX GLOSSARY AABB Axis-Aligned Bounding Box AOT Ahead-Of-Time compilation; particularly for Java API Application Programming Interface ARB OpenGL Architecture Review Board ARM Advanced RISC Machines; a popular embedded processor family ARM7 ARM processor family with ARMv4 instruction set ARM9 ARM processor family with ARMv5 instruction set ARM11 ARM processor family with ARMv6 instruction set ARMv4 ARM processor instruction set version four ARMv5 ARM processor instruction set version five ARMv6 ARM processor instruction set version six baseband The part of a mobile phone that handles radio communication BRDF Bidirectional Reflectance Distribution Function BREW Binary Runtime Environment for Wireless; an execution environment controlled by Qualcomm BSP Binary Space Partitioning 415 416 GLOSSARY APPENDIX C BVH Bounding Volume Hierarchy CDC Connected Device Configuration; the high-end configuration of mobile Java CL Common Lite; the OpenGL ES profile with no floating-point support CLDC Connected Limited Device Configuration; the mainstream configuration of mobile Java CLZ Count Leading Zeros; machine inst ruction on ARMv5 processors and later CM Common; the mainstream OpenGL ES profile COLLADA COLLAborative Design Activity; an interchange format for digital content creation tools; a Khronos standard CPU Central Processing Unit DAG Directed Acyclic Graph DCC Digital Content Creation; usually relates to tools for creating 3D content, such as 3dsMaxorMaya DCT Discrete Cosine Transform; used in, e.g., JPEG image compression DLL Dynamic Link Library DOM Document Object Model; relates to SVG and other W3C standards DSP Digital Signal Processor EG Expert Group EGL OpenGL ES Native Platform Graphics Interface; a Khronos standard FBO Frame Buffer Object FIFO First-In-First-Out, a queue data structure FPU Floating-Point Unit GCC GNU C Compiler GL Graphics Library (short for OpenGL) GPS Global Positioning System GPU Graphics Processing Unit; graphics hardware GSM Global System for Mobile IEEE Institute of Electrical and Electronics Engineers IVA Imaging and Video Accelerator; particularly in mobile devices Java ME Java Micro Edition; the most ubiquitous application platform for mobile devices JAR Java Archive; the delivery format of Java applications JCP Java Community Process; the Java standardization organization that produces JSRs JIT Just-In-Time compilation; particularly for Java JNI Java Native Interface JPEG Joint Photographic Experts Group; a compressed image file format APPENDIX C GLOSSARY 417 JSR Java Specification Request JSR 135 Mobile Media API (MMAPI) JSR 184 Mobile 3D Graphics API (M3G) JSR 226 Scalable Vector Graphics API JSR 239 Java bindings for OpenGL ES JSR 248 Mobile Service API for CLDC JSR 287 Scalable Vector Graphics API 2.0 JSR 297 Mobile 3D Graphics API (M3G) 2.0 JVM Java Virtual Machine JWT Java Wireless Toolkit by Sun Microsystems LCD Liquid Crystal Display LCDUI Limited Connected Device User Interface, in Java MIDP LOD Level-Of-Detail; a technique for showing simpler models for far-away objects to speed up rendering MAC Multiply-And-Accumulate; a machine instruction for multiplication followed by addition M3G Mobile 3D Graphics API (JSR 184) MHz Megahertz midlet A Java application for mobile Java (Java MIDP); also known as MIDlet MIDP Mobile Information Device Profile; the most widespread Java profile MSA Mobile Service Architecture (JSR 248); combines multiple JSRs into a more unified platform native code Machine code; compiled into the native instruction set of the CPU NDC Normalized Device Coordinates node Element in a scene graph OBB Oriented Bounding Box OpenGL Open Graphics Library OpenGL ES OpenGL for Embedded Systems; a Khronos standard OpenKODE A collection of Khronos multimedia APIs, plus a core API that abst racts operating system resources to minimize source code changes when porting games and applications OpenMAX A Khronos API that provides streaming media codecs (for sound, video) and application portability OpenML Open Multimedia Library; the first standard produced by Khronos (not aimed for embedded devices) OpenSL ES Open Sound Library for Embedded Systems; a Khronos standard 418 GLOSSARY APPENDIX C OpenVG Open Vector Graphics; a Khronos standard OS Operating System PDA Personal Digital Assistant; a handheld data organizer PNG Portable Network Graphics; a popular lossless image format PVS Potentially Visible Set RAM Random Access Memory RISC Reduced Instruction Set CPU ROM Read-Only Memory QV GA Quarter-VGA resolution; 320 × 240 or 240 × 320 pixels RGB Red-Green-Blue RGBA Red-Green-Blue-Alpha RVCT RealView Compiler Tools from ARM S60 Symbian-based UI platform from Nokia, previously known as Series 60 SDK Software Development Kit SVG Scalable Vector Graphics; a W3C standard UI User Interface URL Universal Resource Locator; a link to Internet content VBO Vertex Buffer Object VGA Video Graphics Array, a display resolution of 640 × 480 pixels VM Virtual Machine; particularly for Java WIPI Wireless Internet Platform for Interoperability; mobile platform used in South Korea W3C World Wide Web Consortium XML eXtensible Markup Language XREF eXternal REFerence; particularly in the M3G file format BIBLIOGRAPHY [AB06] Remi Arnaud and Mark C. Barnes. COLLADA: Sailing the Gulf of 3D Digital Content Creation. AK Peters, Ltd., 2006. [Air90] John Airey. Increasing Update Rates in the Building Walk-through System with Automatic Model-Space Subdivision and Potentially Visible Set Calculations. PhD thesis, UNC CH CS Department, 1990. [AMH02] Tomas Akenine-M ¨ oller and Eric Haines. Real-Time Rendering, Second Edition. AK Peters, Ltd., 2002. [AS06] Kurt Akeley and Jonathan Su. Minimum triangle separation for correct Z-buffer occlusion. In Eurographics/SIGGRAPH Workshop on Graphics Hardware, pages 27–30, 2006. [BAC96] Andrew C. Beers, Maneesh Agrawala, and Navin Chaddha. Rendering from compressed textures. In Proceedings of the 23rd annual conference on Computer graphics and interactive techniques (SIGGRAPH), pages 373–378. ACM Press, 1996. [Bat] Batched. Arm gcc inline assembler paper. http://www.milw0rm.com/ papers/128 . [Bly06] David Blythe. The Direct3D 10 system. ACM Transactions on Graphics, 25(3):724–734, 2006. [BN76] James F. Blinn and Martin E. Newell. Texture and reflection in computer generated images. Communications of the ACM, 19(10):542–547, 1976. [Boo01] Carl De Boor. A Practical Guide to Splines. Springer, 2001. [BSD + 89] A.C. Barkans, B.D. Schroeder, T.L. Durant, D. Gordon, and J. Lach. Guardband clipping method and apparatus for 3d graphics display system. U.S. Patent 4,88,712, 1989. [BW95] Armin Bruderlin and Lance Williams. Motion signal processing. In Proceedings of the 22nd annual conference on Computer graphics and interactive techniques, pages 97–104, 1995. [Cat72] Edwin Catmull. A system for computer generated movies. In Proc. ACM Annual Conf., pages 422–431, August 1972. [Cat74] Edwin Earl Catmull. A subdivision algorithm for computer display of curved surfaces. PhD thesis, 1974. 419 420 BIBLIOGRAPHY [CR74] E. Catmull and R. Rom. A class of local interpolating splines. In R. Barnhill and R. Riesenfeld, editors, Computer Aided Geometric Design, pages 317–326. Academic Press, 1974. [Cro77] Franklin C. Crow. Shadow algorithms for computer graphics. In SIGGRAPH ’77: Proceedings of the 4th annual conference on Computer graphics and interactive techniques, pages 242–248. ACM Press, 1977. [EK02] C. Everitt and M. Kilgard. Practical and robust stenciled shadow volumes for hardware-accelerated rendering. Technical report, NVIDIA corporation, 2002. [EMP + 02] David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, and Steven Worley. Text uring & Modeling: A Procedural Approach.Morgan Kaufmann, third edition, 2002. [Fen03] Simon Fenney. Texture compression using low-frequency signal modulation. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, pages 84–91. Eurographics Association, 2003. [FvFH90] James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes. Computer graphics: principles and practice (2nd ed.). Addison-Wesley Longman Publishing Co., Inc., 1990. [Gou71] Henri Gouraud. Computer display of curved surfaces. IEEE Transactions on Computers, 20(6):623–629, 1971. [GW02] Rafael Gonzales and Richard Woods. Digital Image Processing, Second Edition. Prentice Hall, 2002. [H ¨ o7] Claus H ¨ ofele. Mobile 3D Graphics: Lear ning 3D Graphics with the Java Micro Edition. T homson Course Technology, 2007. [HB05] Matthew Hertz and Emery D. Berger. Quantifying the performance of garbage collection vs. explicit memory management. In OOPSLA ’05: Proceedings of the 20th annual ACM SIGPLAN conference on Object orie nted programming, systems, languages, and applications, pages 313–326. ACM Press, 2005. [Hei] Tim Heidmann. Real shadows real time. IRIS Universe, (18):28–31. [Hop99] Hugues Hoppe. Optimization of mesh locality for transparent vertex caching. In Computer Graphics (SIGGRAPH ’99 Proceedings), Computer Graphics Proceedings, Annual Conference Series, pages 269–276. ACM, ACM Press/ACM SIGGRAPH, 1999. [HS98] Wolfgang Heidrich and Hans-Peter Seidel. View-independent environment maps. In Eurographics/SIGGRAPH Wor kshop on Graphics Hardware, pages 39–45, 1998. BIBLIOGRAPHY 421 [HS99] Wolfgang Heidrich and Hans-Peter Seidel. Realistic, hardware-accelerated shading and lighting . In SIGGRAPH ’99: Proceedings of the 26th annual conference on Computer graphics and interactive techniques, pages 171–178. ACM Press/Addison-Wesley Publishing Co, 1999. [JCP03] JCP. Mobile 3D Graphics API (JSR-184). Java Community Process, 2003. http://www.jcp.org/en/jsr/detail?id=184. [JCP05] JCP. Mobile 3D Graphics API (JSR-184) v1.1. Java Community Process, 2005. http://www.jcp.org/en/jsr/detail?id=184. [JCP06] JCP. Mobile Service Architecture (JSR-248). Java Community Process, 2006. http://www.jcp.org/en/jsr/detail?id=248. [KB84] Doris H.U. Kochanek and Richard H. Bartels. Interpolating splines with local tension, continuity, and bias control. In Proceedings of the 11th annual conference on Computer g raphics and interactive techniques (SIGGRAPH), pages 33–41. ACM Press, 1984. [KG03] Lucas Kovar and Michael Gleicher. Flexible automatic motion blending with registration curves. In Proceedings of the 2003 ACM SIGGRAPH/ Eurographics symposium on Computer animation, pages 214–224. Eurogr aphics Association, 2003. [KGP02] Lucas Kovar, Michael Gleicher, and Fr ´ ed ´ eric Pighin. Motion graphs, 2002. [Khr03] Khronos. OpenGL ES Native Platform Graphics Interface (Version 1.0).The Khronos Group, 2003. [Lan98] Jeff Lander. Skin them bones: Game programming for the web generation. Game Developer Magazine, pages 11–16, May 1998. [Lan02] H. Landis. RenderMan in Production. ACM SIGGRAPH course, 2002. [Len04] Eric Lengyel. Mathematics for 3D game programming & computer graphics, second edition. Charles River Media, 2004. [LG95] David Luebke and Chris Georges. Portals and mirrors: Simple, fast evaluation of potentially visible sets. In Symposium of Interactive 3D Graphics. ACM Press, 1995. [LK05] Sing Li and Jonathan Knudsen. Beginning J2ME: From Novice to Professional, Third Edition. Apress, Inc., 2005. [Ltd] ARM Ltd. Arm instruction set quick reference card. http://www.arm. com/pdfs/QRC0001H_rvct_v2.1_arm.pdf . [MB05] Tom McReynolds and David Blythe. Advanced Graphics Programming Using OpenGL. Morgan Kaufmann, 2005. [Mil94] Gavin Miller. Efficient algorithms for local and global accessibility shading. In Proceedings of ACM SIGGRAPH 94, pages 319–326, 1994. 422 BIBLIOGRAPHY [Moo65] Gordon E. Moore. Cramming more components onto integrated circuits. Electronics, 38(8), 1965. [OG97] Marc Olano and Trey Greer. Triangle scan conversion using 2d homogeneous coordinates. In Proceedings of ACM SIGGRAPH/ Eurographics Workshop on Graphics Hardware, pages 89–95, 1997. [PARV05] Kari Pulli, Tomi Aarnio, Kimmo Roimela, and Jani Vaarala. Designing graphics programming interfaces for mobile devices. IEEE Computer Graphics and Applications, 25(8), 2005. [PD84] Thomas Porter and Tom Duff. Compositing digital images. In Computer Graphics (SIGGRAPH ’84 Proceedings), Computer Graphics Proceedings, Annual Conference Series, pages 253–259. ACM, ACM Press/ACM SIGGRAPH, 1984. [Pho75] Bui Tuong Phong. Illumination for computer generated pictures. Communications of the ACM, 18(6):311–317, 1975. [PMTH01] Kekoa Proudfoot, William R. Mark, Svetoslav Tzvetkov, and Pat Hanrahan. A real-time procedural shading system for programmable graphics hardware. In SIGGRAPH ’01: Proceedings of the 28th annual conference on Computer graphics and interactive techniques, pages 159–170. ACM Press, 2001. [POAU00] Mark S. Peercy, Marc Olano, John Airey, and P. Jeffrey Ungar. Interactive multi-pass programmable shading. In Proceedings of the 27th annual conference on Computer graphics and interactive techniques (SIGGRAPH), pages 425–432. ACM Press/Addison-Wesley Publishing Co., 2000. [Por05a] Chris Porthouse. Jazelle DBX white paper. ARM Limited, 2005. http: //www.arm.com/pdfs/JazelleWhitePaper.pdf . [Por05b] Chris Porthouse. Jazelle RCT white paper. ARM Limited, 2005. http: //www.arm.com/pdfs/JazelleRCTWhitePaper_final1.0_.pdf . [PT96] Les A. Piegl and Wayne Tiller. The NURBS Book. Springer, 1996. [RH94] John Rohlf and James Helman. Iris performer: a high performance multiprocessing toolkit for real-time 3d graphics. In Proceedings of the 21st annual conference on Computer g raphics and interactive techniques, pages 381–394. ACM Press, 1994. [Ros04] Randi Rost. OpenGL Shading Language. Addison Wesley, 2004. [S03] S. Sandeep. Gcc-inline-assembly-howto. http://www.ibiblio.org/ gferg/ldp/GCC-Inline-Assembly-HOWTO.html , 2003. [SAM05] Jacob Str ¨ om and Tomas Akenine-M ¨ oller. ipackman: high-quality, low- complexity texture compression for mobile phones. In HWWS ’05: Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, pages 63–70. ACM Press, 2005. BIBLIOGRAPHY 423 [Sho85] Ken Shoemake. Animating rotation with quaternion curves. In Proceedings of the 12th annual conference on Computer graphics and interactive techniques (SIGGRAPH), pages 245–254. ACM Press, 1985. [Sho87] Ken Shoemake. Quaternion calculus and fast animation. In SIGGRAPH Course Notes, pages 101–121, 1987. [SKv + 92] Mark Segal, Carl Korobkin, Rolf van Widenfelt, Jim Foran, and Paul Haeberli. Fast shadows and lighting effects using texture mapping. In Proceedings of the 19th annual conference on Computer graphics and interactive techniques, pages 249–252. ACM Press, 1992. [Smi95] Alvy Ray Smith. A pixel is not a little square, a pixel is not a little square, a pixel is not a little square! (and a voxel is not a little cube). Technical Report Technical Memo 6, Microsoft Research, 1995. [Str03] Gilbert Strang. Introduction to Linear Algebra. Wellesley-Cambridge Press, third edition, 2003. [SWN05] Dave Shreiner, Mason Woo, and Jackie Neider. OpenGL Programming Guide: The Official Guide to Learning Ope nGL, Version 2 (5th Edition). Addison-Wesley, 2005. [Wil83] Lance Williams. Pyr amidal parametrics. SIGGRAPH Comput. Graph., 17(3):1–11, 1983. [WW92] Alan Watt and Mark Watt. Advanced animation and rendering techniques. ACM Press/Addison-Wesley Publishing Co., 1992. [ZSD + 00] Denis Zorin, Peter Schr ¨ oder, Tony DeRose, Leif Kobbelt, Adi Levin, and Wim Sweldens. Subdivision for modeling and animation. SIGGRAPH 2000 Course Notes, ACM SIGGRAPH, http://mrl.nyu.edu/ publications/subdiv-course2000/ , 2000. . SIGGRAPH/EUROGRAPHICS conference on Graphics hardware, pages 84–91. Eurographics Association, 2003. [FvFH90] James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes. Computer graphics: . annual conference on Computer graphics and interactive techniques, pages 171–178. ACM Press/Addison-Wesley Publishing Co, 1999. [JCP03] JCP. Mobile 3D Graphics API (JSR-184). Java Community Process, 2003. http://www.jcp.org/en/jsr/detail?id=184. [JCP05]. image compression DLL Dynamic Link Library DOM Document Object Model; relates to SVG and other W3C standards DSP Digital Signal Processor EG Expert Group EGL OpenGL ES Native Platform Graphics