This Java handbook makes a practical tutorial on Java 2D and Java 3D for computer professionals. It contains in-depth coverage of basic computer graphics concepts and techniques, and introduces advanced graphic features to an audience mostly trained in the Java language. Chapter topics include mathematical background for computer graphics, .geometric transformation, views, lighting and texturing, behavior and interaction, and animation. For computer programmers and engineers, data analysts, graphic designers/animators, and game developers.
On March 3, 2001, the first Oscar of the new millennium was awarded to three computer scientists, Rob Cook, Loren Carpenter, and Ed Catmull, "for their significant advancements to the field of motion picture rendering as exemplified in Pixar's 'RenderMan.'" This incredible event symbolizes the emergence of computer graphics and its applications, once an esoteric research subject, as an essential part of the digital community. The rapid development of computer hardware, graphical applications, and network technologies has made computer graphics indispensable in mainstream computing.
Modeling and rendering virtual graphics objects with digital computers are the main objectives of computer graphics. The topics involved in this process span a wide range of disciplines from mathematics and computer science to psychology and arts. From the big model of the universe to the small details of rasterizing a graphical primitive, sophisticated and ingenious methods, algorithms, and paradigms have been developed to address the problems of modeling and rendering in computer graphics. A thorough treatment of this subject, therefore, would require a broad and deep coverage of many related areas. A traditional computer graphics course, due to its complexity and mathematical sophistication, is usually beyond the scope of a standard undergraduate computer science curriculum.
However, we believe that the new technological developments and the availability of well-designed and easy-to-use graphics programming packages have made an elementary graphics course feasible. This development is analogous to the evolution of programming languages. Programming used to be a very tedious task when only low-level languages such as machine instructions were available. The development of high-level languages freed programmers from the low-level technical details. Programs at the more abstract levels are much more manageable and logical. The performance loss due to the abstraction has become negligible with the improvement of hardware and compiler technologies. Most programmers today may never need to program in machine or assembly languages. Computer graphics programming is going through a similar process. High-level, portable systems are rapidly replacing the tedious low-level approaches in many aspects of computer graphics. The rapid development of hardware technologies is also erasing the performance gap.
The primary focus of this book is the fundamental concepts of computer graphics and applications of Java 2D and Java 3D to graphics programming. Rather than studying the technical details of low-level implementations, we will emphasize the techniques of developing practical applications using existing graphics packages. This approach enables us to provide an introductory computer graphics text that is accessible to undergraduate computer science and engineering students and most computer professionals.
Java 2D and Java 3D are the ideal graphics packages for such a purpose. They are high-level comprehensive graphics packages that offer a much-needed layer of abstraction. They are also platform independent and provide state-of-the-art graphics programming capabilities.
Java 2D and Java 3D are parts of the Java platform. Java is a relatively new programming language, yet it has quickly gained popularity because of its unique characteristics and features, such as platform independence, simplicity, and object-oriented programming support. Java 2D and Java 3D provide powerful, natural, and object-oriented interfaces for graphics modeling and rendering.
This book is intended for students and computer professionals who want to learn basic computer graphics concepts and techniques and to get started in programming with Java 2D and Java 3D. However, it is not just another tutorial on Java 2D or Java 3D. Its purpose is to introduce the fundamentals of computer graphics to the readers, and the powerful Java packages serve as useful and convenient tools to achieve the goal.