File Name: computer graphics using java 2d and 3d zhang.zip
This third edition covers fundamental concepts in creating and manipulating 2D and 3D graphical objects, including topics from classic graphics algorithms to color and shading models.
All rights reserved. No part of this publication may be reproduced, stored or distributed in any form or by any means, electronic or mechanical, including photocopying, without written permission from the publisher. Product or company names used in this set are for identification purposes only. Inclusion of the names of the products or companies does not indicate a claim of ownership by IGI Global of the trademark or registered trademark.
Java Computer program language 3. Computer graphics. Three-dimensional display systems. Virtual reality. Cheng, Chang Dong. All work contributed to this encyclopedia set is new, previously-unpublished material. The views expressed in this encyclopedia set are those of the authors, but not necessarily of the publisher. With the emergence of the Java 3D API, the creation of high quality 3D animated graphics for Java applications and applets has become a possibility.
Numerous applications in fields ranging from. One well known example is the Maestro project, which allows users to navigate the 3D world of Mars from a desktop computer based on inputs from eight degree cameras onboard the rover. In one of our research projects in this area, we have used Java 3D to develop a Web-based real time 3D oscilloscope experimentation system, which has been launched at National University of Singapore.
This application enables users to carry out a physical electronic experiment that involves the use of an actual oscilloscope, a signal generator, and a circuit.
Specifically, the control of the various instruments are. Apart from the room and instrument geometry, three important and difficult issues that have been tackled are navigating behavior, collision detection and picking behavior. The use of appropriate collision detection ensures that the user is not able to traverse any solid objects such as walls, tables and instruments, while a customized picking behavior is necessary for the user to adjust the controls on the instruments precisely.
To satisfy these requirements and noting that the users will not be familiar with the use of special keys for 3D navigation, a more sophisticated and customized navigating system has been designed and developed. In this system, navigation can be done by using either. Specifically, the position and direction of the view platform or.
This will change the delays used in the main processing steps of the navigating function. An icon with six straight arrows allows the user to move in a straight translational manner.
Pressing a ball in the center of the icon will reset the viewpoint to its initial position. The other icon with four curved arrows allows the user to rotate around the current position. The ball in the center will reset the viewpoint to a horizontal one. With 3D scene-based navigation and manipulation implemented, the system is able to provide a more realistic 3D feel to users who are conducting real-time Web-based experi-mentations. In the course of designing and developing this application, a large number of Java 3D example and program codes has been written, and an API library for the creation.
Specifically, the library includes a series of code segments and classes for defining the geometry and appearance of control. This has culminated in the writing of this book, which aims to provide programmers with a simple but yet complete, comprehensive, and detailed coverage of all the important topics in Java 3D.
In particular, this book includes a large number of programming examples for the reader. Specifically, the use and significance of keywords, syntax, classes, methods, and features that make up the API are illustrated with figures, code fragments, and examples throughout.
All of the important Java 3D topics, including geometry, appearance, navigation, pick-ing, animation, interaction, texture, light, background, fog, shade, input device, sound, and advanced view will be covered. Both novice and advanced graphics programmers, including.
In addition, each chapter. In total, the book consists of 13 chapters covering the various topics, and is organized in a step-by-step style. Discussions on basic 3D graphics, Java 3D overview, 3D geometry,. Subsequently, more advanced topics on navigating, picking, input device and are explored.
The use of more complicated multiple views and audio are then discussed, culminating in the last chapter, which presents the Web-based 3D experiment application in detail.
The following gives a brief synopsis on each of the chapters. The main purpose is to give an outline on the relation-ship between these related technologies and applications. This also serves to place Java 3D in the appropriate context from the general perspective of 3D graphics creation and presentation. As a result, while other tools are also briefly introduced, this.
Subsequent chapters in this book will focus on various aspects of Java 3D with an aim to provide a comprehensive experience in terms of understanding and programming using Java 3D technology. It will be pointed out that, as one of the two important development tools for Web-based virtual reality, Java 3D has established itself as an important model-ing and rendermodel-ing languages for more specialized applications that involve, for example, database accesses, customized behaviors and home use mobile devices such as PDA, mobile phone, and pocket PC.
Chapter II is a relatively short chapter laying the ground work for the creation of a virtual world in Java 3D. This chapter introduces the programming paradigm or the scene. SimpleUniverse, Locale, BranchGroup, and TransformGroup objects, which form the virtual world framework, this chapter outlines how one can build a virtual world through specifying a scene graph.
The scene graph in Java 3D is for the purpose of describing the objects in a virtual 3D world, and is a tree like structure consisting of a hierarchy of nodes containing information on objects or groups of objects on geometries, shapes, lights, sounds, interactions, and so.
Specifically, the root of the scene graph is a virtual universe that may have several local. Also, each locale may hold related objects that are next to one another at a certain location in the 3D world, and may be made up of many branch and transform groups.
Also, by setting certain capabilities, branch groups can be attached or removed for. Alternatively, multiple views of the same virtual world can be obtained for applications involving multiple displays.
Chapter III focuses on creating shapes and 3D objects that can be rendered by Java 3D using both core and utility classes. Different approaches to object creation will be explored, helping programmers to construct complex shapes using simple building blocks.
In this chapter, several basic geometry classes that can be used to specify the geometry of. Specifically, PointArray, LineAr -ray, TriangleAr-ray, and QuadArray are useful for building objects using a series of points, lines, triangles and quadrilaterals, while for structures where the series of lines or triangles are adjacent to each other in a certain manner, the use of LineStripArray, TriangleStripArray, and TriangleFanArray may be more convenient and lead to faster rendering.
The problem of requiring certain vertices to be repeated when these basic classes are used can be overcome through using their indexed versions, where the sequence of vertices can be supplied via some integer indexing arrays. Complex objects can also be created through appropriately combining objects built from different classes.
Also, simple geometrical shapes. In Chapter IV, the appearance of the created 3D objects is discussed, including some parameters that control how they will be presented to the user. Important appearance attributes are illustrated by using examples so that the effected changes can be better appreciated. For most virtual reality or game applications, point, line and polygon are the basic primitives for constructing objects in the 3D world. The chapter therefore gives an in depth account of the various basic attribute settings, including rendering modes, visibilities, colors and material properties, that can be applied to these primitives.
Although extensive use of basic attributes such as color and material will be able to make an object realistic to the human user, the amount of programming codes needed will in general be very lengthy and time consuming to develop if the object has complicated geometry or appearance.
As an example, to create an object with many color patterns on,. Since this is time consuming, Java 3D allows the use of what is known as texturing and image mapping, which will be discussed in the next chapter. Building on Chapter IV, Chapter V describes the technique of texture mapping to add realism to virtual scenes. The use of texture modes and attributes in Java 3D, which is relatively straightforward and effective for adding color and realistic details to the surface of a visual object, will be presented to give programmers a reasonable palette of texturing techniques with which to work on.
Specifically, texture objects are referenced by appearance objects, and have a variety of. The application of multiple textures to a surface can give a very realistic visual effect on the visual objects created in the virtual universe. Chapter VI explores other issues that lead to better environmental realism.
These includ-ing lightinclud-ing, fog, and background that can be used to further enhance the appearance of the virtual world.
In general, these environmental factors affect the appearance of the object through their interaction with its material attribute. Specifically, the use of ambient, directional, point and spot lights will be presented. Topics involving material and normal settings, which determine how light will be reflected,. Some examples on the use of linear and exponential fog to smooth a scene and to prevent the sudden appearance of distant objects so as to enhance its emo-tional appearance will be given.
Then, the use of simple color, image, and geometry based backgrounds will be illustrated. Chapter VII discusses the use of interpolators and alpha classes for object animation in the virtual world.
Simple animated movements such as rotation, translation and their combinations will be covered. More advanced animation techniques such as scaling, trans-parency, and morphing will also be discussed.
In addition, The billboard and the level of detail LOD classes, which are useful for creating animation at a reduced rendering level, will be presented. Very often, just a few parameters will be sufficient to implement a.
For more. The movements of objects in a 3D world are very often the result of the user manipulat-ing these objects or just navigation through them. As an example, the animation that allows a 3D clock hand to turn may need to be re-initiated if the user presses a certain reset button in the 3D world. The issue of interactions is therefore closely related to animation and is the main concern of the next chapter. To detect and deal with interactions from the user, Chapter VIII delves into some basic issues on event detection and processing.
These include capturing the key pressed, mouse. In Java 3D, the. Specifically, to specify and implement an interaction, it is necessary to make use of some special behaviors and events that Java 3D provides or to refine or customize these. After giving a basic foundation of event detection and processing, the next two chapters provide a more advanced coverage of the topic in two important interaction scenarios.
These correspond to the picking of objects and use navigation in the 3D world. Chapter IX discusses the use of the picking behavior class for the purpose of picking objects of interest. In general, the simple operation of picking an object in the real world is actually very complicated and involves many senses. To allow the user to pick objects in the virtual 3D world as realistically as possible, Java 3D has a variety of picking shapes, such as PickRay, PickConeRay PickCylinder and PickBounds, that can be used to customize the picking behavior.
After discussing these in some detail in this chapter, an application example involving the use of the controls in a 3D instrument panel will be provided. Chapter X is on another important interaction behavior, that for the user to navigate or move in the virtual world.
All rights reserved. No part of this publication may be reproduced, stored or distributed in any form or by any means, electronic or mechanical, including photocopying, without written permission from the publisher. Product or company names used in this set are for identification purposes only. Inclusion of the names of the products or companies does not indicate a claim of ownership by IGI Global of the trademark or registered trademark. Java Computer program language 3.
Ignoreeri ja kuva leht. Alates Computer Graphics for Java Programmers 3rd ed. Kang Zhang , Leen Ammeraal. Suurem pilt.
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below! Its accessible approach and in-depth coverage features the high-level Java 2D and Java 3D APIs—offering an elegant and easy-to-understand presentation of 2D and 3D graphics without compromising the fundamentals of the subject. Daniel Liang p.
Computer Graphics Using Java™ 2D and 3D by Hong Zhang, Y. Daniel Liang - Armstrong Atlantic State University. Publisher: Prentice Hall.
Embed Size px x x x x This Java based graphics text introduces advanced graphic features to a student audience mostly trained in theJava language. Its accessible approach and in-depth coverage features the high-level Java 2D and Java 3DAPIsoffering an elegant and easy-to-understand presentation of 2D and 3D graphics without compromising thefundamentals of the subject. Zhang, Hong. Daniel Liang p.
Daniel Liang Published on by Prentice Hall. It contains in-depth coverage of basic computer graphics concepts and techniques, and introduces advanced graphic features to an audience mostly trained in the. Marc Levoy Display hardware vector displays — — modified oscilloscope — — Evans and Sutherland.
Computer science mcq book pdf paula isabel allende english pdfReply