Animation & Java3D

Mechanics

Nov 14, 2013 (4 years and 6 months ago)

84 views

1

Animation & Java3D

2

Overview

Introduction to Animation

Kinematics

Dynamics

Boids

Java3D

Scene graph

Animation

Vehicles

3

Animation

Kinematics

Position, velocity and acceleration only

Dynamics

Based on forces, masses

4

Kinematics

Two forms

Forward

specify each joint in hierarchy
by hand

Inverse

specify position of end
-
effector
and compute joint steps

5

Forward Kinematics

Two joints S and E can
be rotated.

End position is
determined by
rotational angle of S
and E

Point p can be
calculated from the
matrices SE (and H, B
which are fixed)

S

E

p

6

Inverse Kinematics

End effector (point
p) is specified

E and S must be
calculated

This is simple in this
situation

S

E

p

7

Inverse Kinematics

For complex
situations where
more degrees of
freedom in joints that
required to specify p

Solve using a non
-
linear optimiser and
further constraints

Energy minimisation

p

8

Kinematics

Key
-
framing

Specify transformations of individual joints
or transformation of end
-
effectors at fixed
points (key
-
frames)

Interpolate between them

Interpolation

Linear interpolation will look jerky, so use a
spline interpolation

9

Dynamics

Solve for a set of forces acting on a
number of bodies

Discrete time
-
step integration

Car dynamics

Human gait patterns

Boids

10

Boids

Boids

Avoid each other

Gravitate towards each other

Emergent behaviour is very complex

11

Avoid Close Neighbours

12

13

Turn Towards Group Direction

14

In Code

For each boid

Keep position and
velocity

On each frame for
group

Find centre

Find average
velocity

On each frame for
each boid

Forces are

Attraction towards
centre

Attraction towards
average velocity

Repulse neighbours

Calculate new
velocity

Calculate new
position

15

Java3D Summary

Java3D is a 3D API for Java

Broad support across 3D graphics layers

immediate mode rendering through to HMD and
free space tracker support

No built
-
in support for any file format

Limited VRML97 file reader available promised in
near future

Not 100% Pure Java (currently)

relies on native bindings to graphics library for
acceptable speed

16

Nodes

Similar basic components to VRML

Geometry, Attributes, Groups, Sounds

Super
-
structure

Canvas3D, View, VirtualUniverse, Locale

Behaviors

Scheduling bound
-

scope for action potential

WakeUpConditions
-

triggers for behaviour

time / frames elapsed

Input Devices

17

Scene Graph Actions

Designed so that parts of scene graph
can be compiled to lower layers

internals of scene graph

Support for copying scene graphs

Supports immediate mode rendering

pre/postRender for background/overlay
graphics

18

Example
-

Boid Set

Scene Graph

RunTime Calls

Event Source

Boid

Boid

Boid

Locale

BoidSet

(BranchGroup)

FlockBehaviour
(Behavior)

WakeupOnFramesElapsed(0)

setTransform

19

Example
-

Boid

Scene Graph

Run Time Call

Reference

Boid
(TransformGroup)

Morph

FlapBehaviour
(Behavior)

WakeupOnTransformChanged

Shape

Shape

Shape

Alpha

Triangle

Array

Triangle

Array

Triangle

Array

20

Recap

Kinematics

Motion independent of force

-
frame animation

Dynamics

Boids

Java3D

Scene graph