Java 3 D Introduction http www htabi bfh
Java 3 D Introduction http: //www. hta-bi. bfh. ch/~rfs/pwf/java 3/ Stefan Rufer Assistant Computer Science Departement rfs@hta-bi. bfh. ch
Todays Contents n n n Start Introduction to Computer Graphics Java 3 D Tutorial Chapters – Layout: n n n Technical Introduction Application in Java 3 D Example Programs Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Start n n n Foreword Installing Java 3 D Running Java 3 D Programs Warm-up Course overview References & Sources Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Start Objectives n n n Appetizer for the Course. Know how to compile and run Java 3 D programs. Know where to search in case of troubles or further interest. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Start Foreword n n n Determine the correct color for every pixel. This course is programming oriented. Why to learn Java 3 D? n n n It is object oriented. It is 3 D. It is fun. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Start Installing Java 3 D n School PCs have Java 3 D installed n n Make sure that JDK 1. 2. 2 or later has been initialized (NAL -> Java -> Initialize. . . ). The SUN environment does not include Java 3 D per default # Add some directories to your PATH #original: PATH ${HOME}/bin: ${PATH}: PATH /tools/java/JDK-1. 2 -AND-Java 3 D-1. 1/bin: ${HOME}/bin: ${PATH}: n Check web-page for details and troubleshooting Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Start Running Java 3 D Programs n Copy source from intranet >javac Program. java >java Program n It is so simple – but IF. . . have a look on the web page for troubleshooting (all JARs at the right place, also in the JRE? ). Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Start Warm-up n Simply let us try some examples. . . ! http: //www. hta-bi. bfh. ch/~rfs/pwf/java 3/ Chapter Start, paragraph Warm-up. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Date Subject Remark 23. 10. 00 Start / Introduction to Computer Graphics 30. 10. 00 Hello World! / The Virtual Universe Tutorial Chapter 1, 2 6. 11. 00 Transformations / Scene. Builder 13. 11. 00 Creating Geometry / Easier Content Creation Tutorial Chapter 2, 3 20. 11. 00 Interaction Tutorial Chapter 4 27. 11. 00 Animation Start Tutorial Chapter 5 4. 12. 00 Lights Tutorial Chapter 6 Course Overview 11. 12. 00 Textures Tutorial Chapter 7 18. 12. 00 Spline, Ray-Tracing, Future 8. 1. 01 Project Work Kick-off Project work by one, two or three people. Proposals for projects will be accepted. 15. 1. 01 Project Work 22. 1. 01 Project Work 29. 1. 01 Project Work 5. 2. 01 Project Work 12. 2. 01 Project Work 19. 2. 01 Project Work 26. 2. 01 Presentations of the Project Works Stefan Holiday Rufer, HTA Biel, 2000 5. 3. 01 Java 3 D – an Introduction
Start References & Sources n n SUN and intranet web pages, links found in documentation. Use the glossary, it makes live easier if you know about what exactly you are talking. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Intro to Computer Graphics n n n Why Java 3 D 2 D versus 3 D Color Models Hardware Java 3 D Tutorial Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Introduction to Computer Graphics Objectives n n Understand some essential basics of computer graphics like color models. Get an idea of what hardware is involved if doing computer graphics. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Introduction to Computer Graphics Why Java 3 D n 3 D-modelers like Art*lantis n n 3 D-languages like Java 3 D or Open. GL n n Easy content creation Pre-programmed „static“ behaviour Many pre-defined shapes, extrusions, textures. . . High degree of user interaction Start on the „green field“ Create new 3 D applications (CAD, Simulator, . . . ) 3 D-renderers like Pov. Ray n No interaction, only one picture Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Introduction to Computer Graphics 2 D versus 3 D n 2 D n n R 2 => R 2 Simply two dimensional picture on 2 D-Screen. 3 D n n n R 3 => R 2 Match three dimensional mathematical model to two dimensional Screen. A new approach are Holography techniques R 3 => R 3 but that‘s maybe beyond the scope of this course. . . Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Introduction to Computer Graphics Color Models n RGB is the most important color model for computer graphics. n n n Additive system Red, Green, Blue, 8 bit each Java 3 D: each color has values 0. . 1 Application example: Color. Space Other systems: CMYK, HSB. . . Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Introduction to Computer Graphics Hardware (1) n Graphic Cards minimize processor load by executing graphic commands in hardware. n n n Direct. X Open. GL Raster Screen have an x-y pixel array (=raster) to display our graphics n n n CRT LCD Counterpart: Vector graphic devices such as analog cathode-ray oscilloscopes. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Introduction to Computer Graphics Hardware (2) Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Introduction to Computer Graphics Java 3 D Tutorial n n n Tutorial by SUN Great (as usual, it is SUN. . . ) Use this and the API as your reference! Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe n n n n Basics Scene Graph Locales Content Branch View Branch Understanding My. Universe Recipe for a simple Program Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Objectives n n n Know what a virtual universe and a scene graph is. Understand the basic parts and elements of a scene graph. Know the basic recipe for a Java 3 D program. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Basics n n A virtual universe can be seen as a 1: 1 representation of our own universe. Represent structures from astronomical to subatomic. n n n Floating point 3 D space: 2^256 (!!) for each x, y, z. Decimal point for 1 meter at 2^128 -> incredible precision at incredible extend. There is one VU-instance only (Singleton). Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Virtual. Universe Scene Graph (1) n n Locale Scene Graph is the graphical representation of the objects in our VU. Directed Acyclic Graph (Tree) n Nodes, arcs, parents, childs, leaves, references and other Reference objects. Node. Component Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction Group Link Leaf Other objects
The Virtual Universe Scene Graph (2) n n A Java 3 D program may have more objects than those in the scene graph. A scene graph drawing is the correct documentation for the 3 D part of a Java 3 D program. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Scene Graph (3) n Basic parts of a scene graph my. Virtual. Universe my. Locale Content Branch Group a 3 Dobject Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction Locale(s) Branch Group View Branch my. View. Platform
The Virtual Universe Locales (1) n n n How to handle the huge extend of a virtual universe efficiently? Our virtual universe contains at least one Locale. The locale is a 3 D-reference point inside the virtual universe. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Locales (2) n n Standard Locale resides at (0, 0, 0) in the VU. We can have several Locales, eg: n n n One as reference point of the swiss coordinate system (located in Bordeaux, France). A second as the architects reference point of a building plan. The both are related, but depending on the point of view it is more convenient (and precise) to work with one or the other. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Content Branch (1) n n n Contains all „visible“ objects of our scene. Contains all transformations for those objects (displacement, animation, . . . ). We distinguish between group nodes and leaf nodes (see following slide). Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Content Branch (2) n The most common object types Branch Group . . . Transform Group . . . Appearance Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction Shape 3 D
The Virtual Universe View Branch The Canvas 3 D will be inserted in our application or applet -> most important! Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Recipe for a simple Program 1. 2. 3. 4. Create a Frame & a Canvas 3 D object. Create a Simple. Universe object which gets a reference to the Canvas 3 D. Construct the content branch. Insert the content branch into the Locale of the Simple. Universe. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
The Virtual Universe Exercises n Check Web-Page, chapter „Virtual Universe“ http: //www. hta-bi. bfh. ch/~rfs/pwf/java 3/ Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Hello World n n n The Java 3 D API Finally: Hello World! Source Code Class Diagram of Hello. Java 3 D What happens when running? Exercises Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Hello World Objectives n n Understand the high-level structure of the APIs involved in a Java 3 D program. Understand the code of the Hello. Java 3 Da example line by line. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Hello World The Java 3 D API n Packages related to the Java 3 D API: n n Core classes: Utility classes: Math classes: AWT classes: Stefan Rufer, HTA Biel, 2000 javax. media. j 3 d com. sun. j 3 d. utils javax. vecmath javax. swing Java 3 D – an Introduction
Hello World Finally: Hello World! n Probably the most simple Scene Graph Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Hello World Source Code public class Hello. Java 3 Da extends Applet { public Hello. Java 3 Da() { set. Layout(new Border. Layout()); Canvas 3 D canvas 3 D = new Canvas 3 D(null); add("Center", canvas 3 D); Simple. Universe simple. U = new Simple. Universe(canvas 3 D); simple. U. get. Viewing. Platform(). set. Nominal. Viewing. Transform(); } Branch. Group scene = create. Scene. Graph(); simple. U. add. Branch. Graph(scene); public Branch. Group create. Scene. Graph() { Branch. Group obj. Root = new Branch. Group(); obj. Root. add. Child(new Color. Cube(0. 4)); } } return obj. Root; public static void main(String[] args) { Frame frame = new Main. Frame(new Hello. Java 3 Da(), 256); } Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Hello World Class Diagram of Hello. Java 3 D Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Hello World What happens when running? while (true) { Process input Perform Behaviours //none at the moment Traverse scene graph and render visual objects if (request to exit) break } Cleanup and exit Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Hello World Exercises n Check Web-Page, chapter „Hello World“ http: //www. hta-bi. bfh. ch/~rfs/pwf/java 3/ Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Creating Content n n n n n Geometic Utility Classes Mathematical Classes Geometry. Array Classes Geometry. Strip Array Classes Indexed Geometry Appearance and Attributes Point- + Line. Attributes Polygon. Attributes Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Creating Content Objectives n n Get an overview on how to handle polygones in Java 3 D. Know the most important attributes that determine the look of a polygone. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 2 -6 Creating Content Geometric Utility Classes n Box (2 x 2 x 2 m) n Cone (Ø 2 m, height 2 m) n Cylinder (Ø 2 m, height 2 m) n Sphere (Ø 2 m) n Stefan Rufer, HTA Biel, 2000 Default color white Java 3 D – an Introduction
Creating Content Tutorial Page 2 -15 Mathematical Classes (1) n n Tuples are simply pairs or triples of numbers. For each vertex there can be up to four javax. vecmath objects: n n Points for coordinates Colors Vectors for normals Tex. Coords for texture coordinates Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Creating Content Mathematical Classes (2) n n Vectors: mostly used for normals and position information in 3 D-space. Normals: determined using the right hand (remember: we have a righthanded system). P 2 n P 0 P 1 Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Creating Content Tutorial Page 2 -20 Geometry Classes n n n What to do if our shape is not a box or a cylinder? Create Shape 3 D-object, use set. Geometry() method! For a triangle: n n Three-element array One point per element Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 2 -21 2 -26 Creating Content Geometry. Array Classes n n n Most primitive form to create shapes: Points or lines are one pixel wide per default. Colors are interpolated from vertex to vertex if specified. (see code page 2 -24, line 9+10) P 0 Stefan Rufer, HTA Biel, 2000 P 1 Java 3 D – an Introduction
Creating Content Tutorial Page 2 -27 Geometry. Strip. Array Classes n n More convenient: share some vertices: Example Yoyo: Ever tried to model a Jumbo-Jet by hand? Often geometry is generated by mathematical calculations. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Creating Content Tutorial Page 2 -27 Indexed Geometry n Best re-use of vertices but we lose performance using the index array. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Creating Content Tutorial Page 2 -34 Appearance and Attributes n Appearance class does not specify the appearance directrly but contains many links to appearance objects: Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Creating Content Tutorial Page 2 -37 Point- + Line. Attributes n n Points and Lines are 1 pixel wide by default. Zooming does not affect this. Let‘s try to change: n n Thikness of the line Antialiasing Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Creating Content Tutorial Page 2 -38 2 -42 Polygon. Attributes n We can set the Polygon. Mode: n n Fill: fill the interior of the polygones Line: connect vertices with lines („Drahtigttermodell“) Point: draw only points at the vertices Face culling: Hide front, back or none of the faces of a polygon. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Easier Content Creation n n Class Loaders Handle a bunch of objects Text in 2 D and 3 D Background Bounding Leaf Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Easier Content Creation Objectives n n Be able to load and display non-Java 3 D objects in a scene. Understand background and bounding leaf and why one of the two is not enough. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Easier Content Creation Tutorial Page 3 -2 Class Loaders n Load 3 D scene files and create Java 3 D representations (branch graph). n n n Read and parse file Create Java 3 D objects Return branch group object with all the scene contents Insert branch group in the scene -> J 3 D API Demos: n . . Obj. Loadjava Obj. Load. . geometrygalleon. obj Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Easier Content Creation Tutorial Page 3 -7 Handle a bunch of points n n First create a Geometry. Info object. Now many operations can be performed on this object (and on our data): n n Generate Normals „Stripifying“ „Compacting“ Example: Geometry. Info. App. java Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Easier Content Creation Tutorial Page 3 -13 3 -16 Text in 2 D and 3 D n n Text 2 D creates a rectangular polygone and a texture on it. Text 3 D creates geometry objects for the text that have an extrusion. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Easier Content Creation Tutorial Page 3 -22 Background n n Background can be a solid color, an image and/or a geometry. Background is infinitely far away, you can not go or see what‘s behind. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Easier Content Creation Bounding Leaf n n Used for different classes: Light, Fog, Behaviour or Background. Only an intersection with the bounding leaf of such an object makes it visible. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Animation n n Interpolators Alpha Object Billboard Level of Detail (LOD) Morphing Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Animation Objectives n n Get an impression of the different forms of animation. Be able to animate objects using an Interpolator and Alpha object. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 5 -11 Animation Interpolators n n Change all important 3 D -object data easily. Interpolators do not change the corresponding value automatically -> Alpha object needed. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 5 -7 Animation Alpha Object (1) n n n Alpha objects generate events distributed over time. They are used as trigger events for the interpolators. Some of the possible wave-forms f(t): Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 5 -7 Animation Alpha Object (2) Alpha. At. One. Duration Trigger. Time Phase. Delay. Duration Stefan Rufer, HTA Biel, 2000 Alpha. At. Zero. Duration Java 3 D – an Introduction
Animation Put it together Transform. Group obj. Rotate = new Transform. Group(); obj. Rotate. set. Capability(Transform. Group. ALLOW_TRANSFORM_WRITE); Alpha alpha = new Alpha (); Rotation. Interpolator rot. Int = new Rotation. Interpolator (alpha, obj. Rotate); rot. Int. set. Scheduling. Bounds(bounds); alpha Trigger events obj. Rotate rot. Int Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction e Chang m 3 D or Transf
Tutorial Page 5 -26 Animation Billboard n n n Show complex (background) geometry, e. g. trees. Troubles with different views. These objects are flat: Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 5 -30 5 -31 Animation Level of Detail (LOD) n n n As closer you are as more details you want to see -> LOD. Several childs of a Switch node, choose the right one. Long developement time for creating the objects with different detail levels. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 5 -36 Animation Morphing n n „Interpolator for geometry“. You have to define the key frames. The Morph class will interpolate between the key frames. -> Try the Java 3 D example jdk 1. 3demojava 3 dMorphing. java Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 5 -36 Animation Exercises n Find description on the web page (chapter animation): www. hta-bi. bfh. ch/~rfs/pwf/java 3/ Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Lights n n n n Java 3 D Lighting Model Influence Different Light Types Mixing Lights Material Objects Other Coloring Possibilities Shadows Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 6 -2 Lights Objectives n n n Understand the Java 3 D lighting system. Know about the different ways to give a color to an object. Recall theory about additive light mixing. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 6 -2 Lights Java 3 D Lighting Model n There are three different reflections: n n n Ambient (caused by ambient light) Diffuse („normal“ reflection) Specular (highlight reflections of polished material) No inter-object reflections in Java 3 D. Light sources are not visible itself. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 6 -8 6 -9 Lights Influence n n n There is no warning for leaving light out of a scene. There is no warning for not setting a light source its influencing bounds. Some light types have a attenuation setting. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 6 -11 ff Lights Different Light Types n Ambient light As if the sky was cloudy. n Directional light For the virtual „sun“. n Point light For virtual lamps. n Spot light Virtual spot lamps. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 6 -17 Lights Mixing Light n n Why does an object appear in a certain color? White sphere, red and blue light -> result? Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 6 -21 Lights Material Object n n Color settings of the material object represent „reflection coefficients“. Shininess is an interesting value. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Tutorial Page 6 -23 Lights Other Coloring Possibilities n No lights needed, but no „shiny“ effects: n n Coloring. Attributes Per-vertex color (Kick. Can example: class Floor). Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Lights Shadows n n There are no built-in shadows in Java 3 D. Shadows in the tutorial are created using hand-made classes and polygones. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Textures n n Basic Principles Create a Simple Texture Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Textures Objectives n n Know what a texture is and why we need it. Be able to program simple textures. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Textures Basic Principles n n n Detailed surface structures are hard and expensive to build in 3 D -> Texture! „Texel“ is „texture element“ -> one pixel of a texture. Texture mapping: Fit image to a given geometry. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Textures Create a Simple Texture n n n Load an image String filename = "earth. jpg"; Texture. Loader loader = new Texture. Loader(filename, this); Image. Component 2 D image = loader. get. Image(); Create a texture Texture 2 D texture = new Texture 2 D(Texture. BASE_LEVEL, Texture. RGBA, image. get. Width(), image. get. Height()); texture. set. Image(0, image); Create 3 Dobject with appearance Appearance appear = new Appearance(); appear. set. Texture(texture); Stefan Rufer, HTA Biel, 2000 Sphere earth = new Sphere(1. 0 f, Primitive. GENERATE_TEXTURE_COORDS, appear)); Java 3 D – an Introduction
Project n n n Information Gathering Set-up Deliverables Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Objectives n n n Apply all what you have learned. Learn more of the Java 3 D API and 3 D computer graphics. Know what you want to do -> concept, system design, . . . Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Information Gathering n n Search the web, get ideas. Do a brain storming or something similar -> write down your ideas. Form project groups. Discuss your ideas so that you get ready to start with a concept. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Set-up n n Participants of the project. Discussed your idea with the teacher. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Deliverables n n n The deliverables are: source and documentation of the project. Documentation as HTML page or paper. Turn in source and documentation: ZIP file by mail (or link for download if size > 1 MB) or n CD-ROM n Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
A Bit More. . . n n Spline Functions 3 D-modelling Professional Rendering POVRay Example Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
A Bit More… Objectives n n n Get a little outlook on what happens outside of Java 3 D. Have an idea of professional tools used in computer graphics. Hands-on experience with POVRay. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
A Bit More… Spline Functions n n Base: Spline Functions Applications of Spline Functions in: Spline Curves, Spline Surfaces Advantages: Smooth surfaces (!) Application in Java 3 D: com. sun. j 3 d. utils. behaviors. interpolators. TCBSpline. Interpolator Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
A Bit More… 3 D-modelling n n Light. Wave (www. newtek. com) ZOOM Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
A Bit More… Professional Rendering n n n Rendering for films like Toy Story or Titanic is done with rendering products. Performance is far from real time but the experience pretty close to real world. Examples of Products: n n n PRMan (www. pixar. com) BMRT (www. bmrt. org) POVRay (www. povray. org) Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
A Bit More… POVRay Example n n Download POVRay from ftp. hta-bi. bfh. ch (Windows Version) Install locally Create a ready-made scene Play around Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project What to do? n n A Paper describing a 3 D computer graphics related aspect. A Java 3 D program (little demo, game, a start for a bigger project…). A demo with an other 3 D software (PRMan, BRMT, Pov. Ray). A picture of a 3 D-contest (e. g. Pov. Ray). Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Presentations n n Deliverables Presentations! Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Presentations Deliverables n Turn in source and documentation: ZIP file by mail (or link for download) or n CD-ROM n n Due Date: 2 nd March 2001 rfs@hta-bi. bfh. ch Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Presentations! 1 Daniel Glauser 3 D-Bomberman 2 Ramon Keller 3 D-Schach 3 Nicolas Leuba Fisch-Aquarium 4 Roger Mathys Pascal Moser Murmelbahn 5 Philippe Schnyder Philippe Schoch Markus Trachsel 6 Stefan Rufer 3 D-Würfel Stefan Rufer, HTA Biel, 2000 Render. Man / BMRT Java 3 D – an Introduction
Project Render. Man / BMRT n n n What is Render. Man? What is BMRT? What is Radiosity? Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Render. Man / BMRT What is Render. Man? n n Open interface by Pixar. Interface for 3 D-model rendering. Provides extension possibilities for custom shading and gadgets. This is NOT an implementation. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Render. Man / BMRT What is BMRT? n n n BMRT is a free 3 D-renderer by Blue. Mountain Corp. BMRT is partly Render. Man compatible. Contains various tools. Most important: n rgl: Simple, fast renderer for previews. n rendrib: High-end renderer providing ray- tracing, radiosity, programmable shading… Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Render. Man / BMRT What is Radiosity? n n Imagine: Blue room with white chair appears a bit blue! Compute diffuse, inter-object reflections Ray. Tracing uses Ambient. Light to simulate this not too good. Radiosity approximates diffuse, interobject reflections. Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
Project Render. Man / BMRT Radiosity examples rgl preview rendrib quality Stefan Rufer, HTA Biel, 2000 Java 3 D – an Introduction
- Slides: 101