java 3d introduction
Download
Skip this Video
Download Presentation
Java 3D Introduction

Loading in 2 Seconds...

play fullscreen
1 / 101

Java 3D Introduction - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Java 3D Introduction' - floyd


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

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

ad