Java 3d introduction
This presentation is the property of its rightful owner.
Sponsored Links
1 / 101

Java 3D Introduction PowerPoint PPT Presentation


  • 93 Views
  • Uploaded on
  • Presentation posted in: General

Java 3D Introduction. http://www.hta-bi.bfh.ch/~rfs/pwf/java3/ Stefan Rufer Assistant Computer Science Departement [email protected] Todays Contents. Start Introduction to Computer Graphics Java 3D Tutorial Chapters – Layout: Technical Introduction Application in Java 3D

Download Presentation

Java 3D Introduction

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Java 3d introduction

Java 3D Introduction

http://www.hta-bi.bfh.ch/~rfs/pwf/java3/

Stefan Rufer

Assistant Computer Science Departement

[email protected]


Todays contents

Todays Contents

  • Start

  • Introduction to Computer Graphics

  • Java 3D Tutorial Chapters – Layout:

    • Technical Introduction

    • Application in Java 3D

    • Example Programs

Java 3D – an Introduction


Start

Start

  • Foreword

  • Installing Java 3D

  • Running Java 3D Programs

  • Warm-up

  • Course overview

  • References & Sources

Java 3D – an Introduction


Start objectives

StartObjectives

  • Appetizer for the Course.

  • Know how to compile and run Java 3D programs.

  • Know where to search in case of troubles or further interest.

Java 3D – an Introduction


Start foreword

StartForeword

  • Determine the correct color for every pixel.

  • This course is programming oriented.

  • Why to learn Java 3D?

    • It is object oriented.

    • It is 3D.

    • It is fun.

Java 3D – an Introduction


Start installing java 3d

StartInstalling Java 3D

  • School PCs have Java 3D installed

    • Make sure that JDK 1.2.2 or later has been initialized (NAL -> Java -> Initialize ...).

  • The SUN environment does not include Java 3D per default

  • Check web-page for details and troubleshooting

# Add some directories to your PATH#original: PATH ${HOME}/bin:${PATH}:PATH /tools/java/JDK-1.2-AND-Java3D-1.1/bin:${HOME}/bin:${PATH}:

Java 3D – an Introduction


Start running java 3d programs

StartRunning Java 3D Programs

  • Copy source from intranet

  • 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?).

>javac Program.java>java Program

Java 3D – an Introduction


Start warm up

StartWarm-up

  • Simply let us try some examples...!

    http://www.hta-bi.bfh.ch/~rfs/pwf/java3/Chapter Start, paragraph Warm-up.

Java 3D – an Introduction


Start course overview

StartCourse Overview

Java 3D – an Introduction


Start references sources

StartReferences & Sources

  • 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.

Java 3D – an Introduction


Intro to computer graphics

Intro to Computer Graphics

  • Why Java 3D

  • 2D versus 3D

  • Color Models

  • Hardware

  • Java 3D Tutorial

Java 3D – an Introduction


Introduction to computer graphics objectives

Introduction to Computer GraphicsObjectives

  • Understand some essential basics of computer graphics like color models.

  • Get an idea of what hardware is involved if doing computer graphics.

Java 3D – an Introduction


Introduction to computer graphics why java 3d

Introduction to Computer GraphicsWhy Java 3D

  • 3D-modelers like Art*lantis

    • Easy content creation

    • Pre-programmed „static“ behaviour

    • Many pre-defined shapes, extrusions, textures...

  • 3D-languages like Java 3D or OpenGL

    • High degree of user interaction

    • Start on the „green field“

    • Create new 3D applications (CAD, Simulator, ...)

  • 3D-renderers like PovRay

    • No interaction, only one picture

Java 3D – an Introduction


Introduction to computer graphics 2d versus 3d

Introduction to Computer Graphics2D versus 3D

  • 2D

    • R2 => R2

    • Simply two dimensional

    • picture on 2D-Screen.

  • 3D

    • R3 => R2

    • Match three dimensional mathematical model to two dimensional Screen.

    • A new approach are Holography techniques R3 => R3 but that‘s maybe beyond the scope of this course...

Java 3D – an Introduction


Introduction to computer graphics color models

Introduction to Computer GraphicsColor Models

  • RGB is the most most important color model for computer graphics.

    • Additive system

    • Red, Green, Blue, 8bit each

    • Java 3D: each color has values 0..1

    • Application example: ColorSpace

  • Other systems: CMYK, HSB...

Java 3D – an Introduction


Introduction to computer graphics hardware 1

Introduction to Computer GraphicsHardware (1)

  • Graphic Cards minimize processor load by executing graphic commands in hardware.

    • DirectX

    • OpenGL

  • Raster Screen have an x-y pixel array (=raster) to display our graphics

    • CRT

    • LCD

    • Counterpart: Vector graphic devices such as analog cathode-ray oscilloscopes.

Java 3D – an Introduction


Introduction to computer graphics hardware 2

Introduction to Computer GraphicsHardware (2)

Java 3D – an Introduction


Introduction to computer graphics java 3d tutorial

Introduction to Computer GraphicsJava 3D Tutorial

  • Tutorial by SUN

  • Great (as usual, it is SUN...)

  • Use this and the API as your reference!

Java 3D – an Introduction


The virtual universe

The Virtual Universe

  • Basics

  • Scene Graph

  • Locales

  • Content Branch

  • View Branch

  • Understanding MyUniverse

  • Recipe for a simple Program

Java 3D – an Introduction


The virtual universe objectives

The Virtual UniverseObjectives

  • 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 3D program.

Java 3D – an Introduction


The virtual universe basics

The Virtual UniverseBasics

  • A virtual universe can be seen as a 1:1 representation of our own universe.

  • Represent structures from astronomical to subatomic.

    • Floating point 3D 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).

Java 3D – an Introduction


The virtual universe scene graph 1

VirtualUniverse

The Virtual UniverseScene Graph (1)

Locale

  • Scene Graph is the graphical representation of the objects in our VU.

  • Directed Acyclic Graph (Tree)

    • Nodes, arcs, parents, childs, leaves, references and other objects.

Group

Link

Leaf

Reference

NodeComponent

Other objects

Java 3D – an Introduction


The virtual universe scene graph 2

The Virtual UniverseScene Graph (2)

  • A Java 3D program may have more objects than those in the scene graph.

  • A scene graph drawing is the correct documentation for the 3D part of a Java 3D program.

Java 3D – an Introduction


The virtual universe scene graph 3

The Virtual UniverseScene Graph (3)

myVirtualUniverse

  • Basic parts of a scene graph

myLocale

Locale(s)

BranchGroup

BranchGroup

Content

Branch

View

Branch

a3Dobject

myViewPlatform

Java 3D – an Introduction


The virtual universe locales 1

The Virtual UniverseLocales (1)

  • How to handle the huge extend of a virtual universe efficiently?

  • Our virtual universe contains at least one Locale.

  • The locale is a 3D-reference point inside the virtual universe.

Java 3D – an Introduction


The virtual universe locales 2

The Virtual UniverseLocales (2)

  • Standard Locale resides at (0,0,0) in the VU.

  • We can have several Locales, eg:

    • 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.

Java 3D – an Introduction


The virtual universe content branch 1

The Virtual UniverseContent Branch (1)

  • 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).

Java 3D – an Introduction


The virtual universe content branch 2

The Virtual UniverseContent Branch (2)

  • The most common object types

Branch

Group

...

Transform

Group

...

Appearance

Shape3D

Java 3D – an Introduction


The virtual universe view branch

The Virtual UniverseView Branch

The Canvas3D will be inserted in our application or applet -> most important!

Java 3D – an Introduction


The virtual universe recipe for a simple program

The Virtual UniverseRecipe for a simple Program

  • Create a Frame & a Canvas3D object.

  • Create a SimpleUniverse object which gets a reference to the Canvas3D.

  • Construct the content branch.

  • Insert the content branch into the Locale of the SimpleUniverse.

Java 3D – an Introduction


The virtual universe exercises

The Virtual UniverseExercises

  • Check Web-Page, chapter „Virtual Universe“

    http://www.hta-bi.bfh.ch/~rfs/pwf/java3/

Java 3D – an Introduction


Hello world

Hello World

  • The Java 3D API

  • Finally: Hello World!

  • Source Code

  • Class Diagram of HelloJava3D

  • What happens when running?

  • Exercises

Java 3D – an Introduction


Hello world objectives

Hello WorldObjectives

  • Understand the high-level structure of the APIs involved in a Java 3D program.

  • Understand the code of the HelloJava3Da example line by line.

Java 3D – an Introduction


Hello world the java 3d api

Hello WorldThe Java 3D API

  • Packages related to the Java 3D API:

    • Core classes: javax.media.j3d

    • Utility classes:com.sun.j3d.utils

    • Math classes:javax.vecmath

    • AWT classes:javax.swing

Java 3D – an Introduction


Hello world finally hello world

Hello WorldFinally: Hello World!

  • Probably the most simple Scene Graph 

Java 3D – an Introduction


Hello world source code

Hello WorldSource Code

public class HelloJava3Da extends Applet {

public HelloJava3Da() {

setLayout(new BorderLayout());

Canvas3D canvas3D = new Canvas3D(null);

add("Center", canvas3D);

SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

simpleU.getViewingPlatform().setNominalViewingTransform();

BranchGroup scene = createSceneGraph();

simpleU.addBranchGraph(scene);

}

public BranchGroup createSceneGraph() {

BranchGroup objRoot = new BranchGroup();

objRoot.addChild(new ColorCube(0.4));

return objRoot;

}

public static void main(String[] args) {

Frame frame = new MainFrame(new HelloJava3Da(), 256, 256);

}

}

Java 3D – an Introduction


Hello world class diagram of hellojava3d

Hello WorldClass Diagram of HelloJava3D

Java 3D – an Introduction


Hello world what happens when running

Hello WorldWhat 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

Java 3D – an Introduction


Hello world exercises

Hello WorldExercises

  • Check Web-Page, chapter „Hello World“

    http://www.hta-bi.bfh.ch/~rfs/pwf/java3/

Java 3D – an Introduction


Creating content

Creating Content

  • Geometic Utility Classes

  • Mathematical Classes

  • Geometry Classes

  • GeometryArray Classes

  • GeometryStrip Array Classes

  • Indexed Geometry

  • Appearance and Attributes

  • Point- + LineAttributes

  • PolygonAttributes

Java 3D – an Introduction


Creating content objectives

Creating ContentObjectives

  • Get an overview on how to handle polygones in Java 3D.

  • Know the most important attributes that determine the look of a polygone.

Java 3D – an Introduction


Creating content geometric utility classes

Tutorial Page 2-6

Creating ContentGeometric Utility Classes

  • Box (2x2x2 m)

  • Cone (Ø2m, height 2m)

  • Cylinder (Ø2m, height 2m)

  • Sphere (Ø2m)

  • Default color white

Java 3D – an Introduction


Creating content mathematical classes 1

Tutorial Page 2-15

Creating ContentMathematical Classes (1)

  • Tuples are simply pairs or triples of numbers.

  • For each vertex there can be up to four javax.vecmath objects:

    • Points for coordinates

    • Colors

    • Vectors for normals

    • TexCoords for texture coordinates

Java 3D – an Introduction


Creating content mathematical classes 2

Creating ContentMathematical Classes (2)

  • Vectors: mostly used for normals and position information in 3D-space.

  • Normals: determined using the right hand (remember: we have a right-handed system).

P2

n

P0

P1

Java 3D – an Introduction


Creating content geometry classes

Tutorial Page 2-20

Creating ContentGeometry Classes

  • What to do if our shape is not a box or a cylinder?

  • Create Shape3D-object, use setGeometry() method!

  • For a triangle:

    • Three-element array

    • One point per element

Java 3D – an Introduction


Creating content geometryarray classes

Tutorial Page 2-212-26

Creating ContentGeometryArray Classes

  • 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)

P0

P1

Java 3D – an Introduction


Creating content geometrystriparray classes

Tutorial Page 2-27

Creating ContentGeometryStripArray Classes

  • More convenient: share some vertices:

  • Example Yoyo: Ever tried to model a Jumbo-Jet by hand? Often geometry is generated by mathematical calculations.

Java 3D – an Introduction


Creating content indexed geometry

Tutorial Page 2-27

Creating ContentIndexed Geometry

  • Best re-use of vertices but we lose performance using the index array.

Java 3D – an Introduction


Creating content appearance and attributes

Tutorial Page 2-34

Creating ContentAppearance and Attributes

  • Appearance class does not specify the appearance directrly but contains many links to appearance objects:

Java 3D – an Introduction


Creating content point lineattributes

Tutorial Page 2-37

Creating ContentPoint- + LineAttributes

  • Points and Lines are 1 pixel wide by default. Zooming does not affect this.

  • Let‘s try to change:

    • Thikness of the line

    • Antialiasing

Java 3D – an Introduction


Creating content polygonattributes

Tutorial Page 2-382-42

Creating ContentPolygonAttributes

  • We can set the PolygonMode:

    • 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.

Java 3D – an Introduction


Easier content creation

Easier Content Creation

  • Class Loaders

  • Handle a bunch of objects

  • Text in 2D and 3D

  • Background

  • Bounding Leaf

Java 3D – an Introduction


Easier content creation objectives

Easier Content CreationObjectives

  • Be able to load and display non-Java 3D objects in a scene.

  • Understand background and bounding leaf and why one of the two is not enough.

Java 3D – an Introduction


Easier content creation class loaders

Tutorial Page 3-2

Easier Content CreationClass Loaders

  • Load 3D scene files and create Java 3D representations (branch graph).

    • Read and parse file

    • Create Java 3D objects

    • Return branch group object with all the scene contents

    • Insert branch group in the scene

  • -> J3D API Demos:

    • ..\ObjLoad\java ObjLoad ..\geometry\galleon.obj

Java 3D – an Introduction


Easier content creation handle a bunch of points

Tutorial Page 3-7

Easier Content CreationHandle a bunch of points

  • First create a GeometryInfo object.

  • Now many operations can be performed on this object (and on our data):

    • Generate Normals

    • „Stripifying“

    • „Compacting“

  • Example: GeometryInfoApp.java

Java 3D – an Introduction


Easier content creation text in 2d and 3d

Tutorial Page 3-133-16

Easier Content CreationText in 2D and 3D

  • Text2D creates a rectangular polygone and a texture on it.

  • Text3D creates geometry objects for the text that have an extrusion.

Java 3D – an Introduction


Easier content creation background

Tutorial Page 3-22

Easier Content CreationBackground

  • 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.

Java 3D – an Introduction


Easier content creation bounding leaf

Easier Content CreationBounding Leaf

  • Used for different classes: Light, Fog, Behaviour or Background.

  • Only an intersection with the bounding leaf of such an object makes it visible.

Java 3D – an Introduction


Animation

Animation

  • Interpolators

  • Alpha Object

  • Billboard

  • Level of Detail (LOD)

  • Morphing

Java 3D – an Introduction


Animation objectives

AnimationObjectives

  • Get an impression of the different forms of animation.

  • Be able to animate objects using an Interpolator and Alpha object.

Java 3D – an Introduction


Animation interpolators

Tutorial Page 5-11

AnimationInterpolators

  • Change all important 3D-object data easily.

  • Interpolators do not change the corresponding value automatically -> Alpha object needed.

Java 3D – an Introduction


Animation alpha object 1

Tutorial Page 5-7

AnimationAlpha Object (1)

  • Alpha objects generate events distributed over time.

  • They are used as trigger events for the interpolators.

  • Some of the possible wave-forms f(t):

Java 3D – an Introduction


Animation alpha object 2

Tutorial Page 5-7

AnimationAlpha Object (2)

AlphaAtOneDuration

TriggerTime

PhaseDelayDuration

AlphaAtZeroDuration

Java 3D – an Introduction


Animation put it together

AnimationPut it together

TransformGroup objRotate = new TransformGroup();

objRotate.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

Alpha alpha = new Alpha ();

RotationInterpolator rotInt =

new RotationInterpolator (alpha, objRotate);

rotInt.setSchedulingBounds(bounds);

objRotate

Trigger events

rotInt

alpha

Change

Transform3D

Java 3D – an Introduction


Animation billboard

Tutorial Page 5-26

AnimationBillboard

  • Show complex (background) geometry, e.g. trees.

  • Troubles with different views.

  • These objects are flat:

Java 3D – an Introduction


Animation level of detail lod

Tutorial Page 5-305-31

AnimationLevel of Detail (LOD)

  • 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.

Java 3D – an Introduction


Animation morphing

Tutorial Page 5-36

AnimationMorphing

  • „Interpolator for geometry“.

  • You have to define the key frames.

  • The Morph class will interpolate between the key frames.

  • -> Try the Java 3D example \jdk1.3\demo\java3d\Morphing\Morphing.java

Java 3D – an Introduction


Animation exercises

Tutorial Page 5-36

AnimationExercises

  • Find description on the web page (chapter animation):www.hta-bi.bfh.ch/~rfs/pwf/java3/

Java 3D – an Introduction


Lights

Lights

  • Java 3D Lighting Model

  • Influence

  • Different Light Types

  • Mixing Lights

  • Material Objects

  • Other Coloring Possibilities

  • Shadows

Java 3D – an Introduction


Lights objectives

Tutorial Page 6-2

LightsObjectives

  • Understand the Java 3D lighting system.

  • Know about the different ways to give a color to an object.

  • Recall the theory about additive light mixing.

Java 3D – an Introduction


Lights java 3d lighting model

Tutorial Page 6-2

LightsJava 3D Lighting Model

  • There are three different reflections:

    • Ambient (caused by ambient light)

    • Diffuse („normal“ reflection)

    • Specular (highlight reflections of polished material)

  • No inter-object reflections in Java 3D.

  • Light sources are not visible itself.

Java 3D – an Introduction


Lights influence

Tutorial Page 6-8 6-9

LightsInfluence

  • 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.

Java 3D – an Introduction


Lights different light types

Tutorial Page 6-11 ff

LightsDifferent Light Types

  • Ambient lightAs if the sky was cloudy.

  • Directional lightFor the virtual „sun“.

  • Point lightFor virtual lamps.

  • Spot lightVirtual spot lamps.

Java 3D – an Introduction


Lights mixing light

Tutorial Page 6-17

LightsMixing Light

  • Why does an object appear in a certain color?

  • White sphere, red and blue light -> result?

Java 3D – an Introduction


Lights material object

Tutorial Page 6-21

LightsMaterial Object

  • Color settings of the material object represent „reflection coefficients“.

  • Shininess is an interesting value.

Java 3D – an Introduction


Lights other coloring possibilities

Tutorial Page 6-23

LightsOther Coloring Possibilities

  • No lights needed, but no „shiny“ effects:

    • ColoringAttributes

    • Per-vertex color (KickCan example: class Floor).

Java 3D – an Introduction


Lights shadows

LightsShadows

  • There are no built-in shadows in Java 3D.

  • Shadows in the tutorial are created using hand-made classes and polygones.

Java 3D – an Introduction


Textures

Textures

  • Basic Principles

  • Create a Simple Texture

Java 3D – an Introduction


Textures objectives

TexturesObjectives

  • Know what a texture is and why we need it.

  • Be able to program simple textures.

Java 3D – an Introduction


Textures basic principles

TexturesBasic Principles

  • Detailed surface structures are hard and expensive to build in 3D -> Texture!

  • „Texel“ is „texture element“ -> one pixel of a texture.

  • Texture mapping: Fit image to a given geometry.

Java 3D – an Introduction


Textures create a simple texture

TexturesCreate a Simple Texture

  • Load an image

  • Create a texture

  • Create 3D-object with appearance

String filename = "earth.jpg"; TextureLoader loader = new TextureLoader(filename, this);ImageComponent2D image = loader.getImage();

Texture2D texture = new Texture2D(Texture.BASE_LEVEL, Texture.RGBA, image.getWidth(), image.getHeight());texture.setImage(0, image);

Appearance appear = new Appearance(); appear.setTexture(texture);

Sphere earth = new Sphere(1.0f, Primitive.GENERATE_TEXTURE_COORDS, appear));

Java 3D – an Introduction


Project

Project

  • Information Gathering

  • Set-up

  • Deliverables

Java 3D – an Introduction


Project objectives

ProjectObjectives

  • Apply all what you have learned.

  • Learn more of the Java 3D API and 3D computer graphics.

  • Know what you want to do -> concept, system design, ...

Java 3D – an Introduction


Project information gathering

ProjectInformation Gathering

  • 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.

Java 3D – an Introduction


Project set up

ProjectSet-up

  • Participants of the project.

  • Discussed your idea with the teacher.

Java 3D – an Introduction


Project deliverables

ProjectDeliverables

  • 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 > 1MB)

      or

    • CD-ROM

Java 3D – an Introduction


A bit more

A Bit More...

  • Spline Functions

  • 3D-modelling

  • Professional Rendering

  • POVRay Example

Java 3D – an Introduction


A bit more objectives

A Bit More…Objectives

  • Get a little outlook on what happens outside of Java 3D.

  • Have an idea of professional tools used in computer graphics.

  • Hands-on experience with POVRay.

Java 3D – an Introduction


A bit more spline functions

A Bit More…Spline Functions

  • Base: Spline Functions

  • Applications of Spline Functions in: Spline Curves, Spline Surfaces

  • Advantages: Smooth surfaces (!)

  • Application in Java 3D: com.sun.j3d.utils.behaviors.interpolators.TCBSplineInterpolator

Java 3D – an Introduction


A bit more 3d modelling

A Bit More…3D-modelling

  • LightWave (www.newtek.com)

  • ZOOM

Java 3D – an Introduction


A bit more professional rendering

A Bit More…Professional Rendering

  • 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:

    • PRMan (www.pixar.com)

    • BMRT (www.bmrt.org)

    • POVRay (www.povray.org)

Java 3D – an Introduction


A bit more povray example

A Bit More…POVRay Example

  • Download POVRay from ftp.hta-bi.bfh.ch (Windows Version)

  • Install locally

  • Create a ready-made scene

  • Play around

Java 3D – an Introduction


Project what to do

ProjectWhat to do?

  • A Paper describing a 3D computer graphics related aspect.

  • A Java 3D program (little demo, game, a start for a bigger project…).

  • A demo with an other 3D software (PRMan, BRMT, PovRay).

  • A picture of a 3D-contest (e.g. PovRay).

Java 3D – an Introduction


Project presentations

Project Presentations

  • Deliverables

  • Presentations!

Java 3D – an Introduction


Project presentations deliverables

Project PresentationsDeliverables

  • Turn in source and documentation:

    • ZIP file by mail (or link for download)

      or

    • CD-ROM

  • Due Date: 2nd March [email protected]

Java 3D – an Introduction


Project presentations presentations

Project PresentationsPresentations!

Java 3D – an Introduction


Project renderman bmrt

Project RenderMan / BMRT

  • What is RenderMan?

  • What is BMRT?

  • What is Radiosity?

Java 3D – an Introduction


Project renderman bmrt what is renderman

Project RenderMan / BMRTWhat is RenderMan?

  • Open interface by Pixar.

  • Interface for 3D-model rendering.

  • Provides extension possibilities for custom shading and gadgets.

  • This is NOT an implementation.

Java 3D – an Introduction


Project renderman bmrt what is bmrt

Project RenderMan / BMRTWhat is BMRT?

  • BMRT is a free 3D-renderer by BlueMountain Corp.

  • BMRT is partly RenderMan compatible.

  • Contains various tools. Most important:

    • rgl: Simple, fast renderer for previews.

    • rendrib: High-end renderer providing ray-tracing, radiosity, programmable shading…

Java 3D – an Introduction


Project renderman bmrt what is radiosity

Project RenderMan / BMRTWhat is Radiosity?

  • Imagine: Blue room with white chair  chair appears a bit blue!

  • Compute diffuse, inter-object reflections

  • RayTracing uses AmbientLight to simulate this  not too good.

  • Radiosity approximates diffuse, inter-object reflections.

Java 3D – an Introduction


Project renderman bmrt radiosity examples

Project RenderMan / BMRTRadiosity examples

rgl

preview

rendrib

quality

Java 3D – an Introduction


  • Login