Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FH-Hof Animation - Teil 1 Richard Göbel. FH-Hof Themen Darstellung der Geometrie ändern (Transformation, Appearance, etc.) Geometrie ändern (Morphing)

Ähnliche Präsentationen


Präsentation zum Thema: "FH-Hof Animation - Teil 1 Richard Göbel. FH-Hof Themen Darstellung der Geometrie ändern (Transformation, Appearance, etc.) Geometrie ändern (Morphing)"—  Präsentation transkript:

1 FH-Hof Animation - Teil 1 Richard Göbel

2 FH-Hof Themen Darstellung der Geometrie ändern (Transformation, Appearance, etc.) Geometrie ändern (Morphing) Änderungen relativ zur Position des Beobachters Billboards Level of Detail

3 FH-Hof Darstellung ändern - WakeupOnElapsedFrames Behavior-Objekt definieren Als Ereignis WakeupOnElapsedFrames registrieren new WakeupOnElapsedFrames(0) Methode processStimulus führt die Änderungen aus Darstellung Geometrie Beobachter

4 FH-Hof Darstellung ändern - Beispiel I / Teil 1 public class AnimBeh extends Behavior { private TransformGroup tg; private Transform3D tr = new Transform3D(); private Vector3f v = new Vector3f(0,1,0); private float angle = 0; private AxisAngle4f aa = new AxisAngle4f(); private WakeupCondition wakeup = new WakeupOnElapsedFrames(0); public AnimBeh (TransformGroup g) { tg = g; }... Darstellung Geometrie Beobachter

5 FH-Hof Darstellung ändern - Beispiel I / Teil 2... public void initialize () { wakeupOn(wakeup); } public void processStimulus(Enumeration criteria) { angle += 0.1; if (angle >= Math.PI*2) angle = 0; aa.set(v,angle); tr.setRotation(aa); tg.setTransform(tr); wakeupOn(wakeup); } Darstellung Geometrie Beobachter

6 FH-Hof Darstellung ändern - Zeitverlauf Geschwindigkeit der Animation hängt von der Frame- Rate ab Frame-Rate ist abhängig von: Geschwindigkeit des Rechners Grafikkarte Rechnerauslastung... Dieser Ansatz ist für viele Anwendungen nicht geeignet (zum Beispiel Uhr) Darstellung Geometrie Beobachter

7 FH-Hof Definition eines Alpha Ein Alpha liefert ein periodisches Signal in Abhängigkeit von der Systemzeit Beispiele für Konstruktoren: Alpha(int loopCount, long increasingAlphaDuration) Alpha(int loopCount, long triggerTime, long phaseDelayDuration, long increasingAlphaDuration, long increasingAlphaRampDuration, long alphaAtOneDuration) Darstellung Geometrie Beobachter

8 FH-Hof Parameter für ein Alpha Darstellung Geometrie Beobachter

9 FH-Hof Beispiel für Behavior-Klasse mit Alpha 1 public class AlphaBeh extends Behavior { private TransformGroup tg; private Alpha alpha; private Transform3D tr = new Transform3D(); private Vector3f v = new Vector3f(0,1,0); private AxisAngle4f aa = new AxisAngle4f(); private WakeupCondition wakeup = new WakeupOnElapsedFrames(10); public AlphaBeh (TransformGroup g, Alpha a) { tg = g; alpha = a; }... Darstellung Geometrie Beobachter

10 FH-Hof Beispiel für Behavior-Klasse mit Alpha 2... public void initialize () { wakeupOn(wakeup); } public void processStimulus(Enumeration criteria) { aa.set(v,(float) (alpha.value()*2*Math.PI)); tr.setRotation(aa); tg.setTransform(tr); wakeupOn(wakeup); } Darstellung Geometrie Beobachter

11 FH-Hof Verwendung der Behavior-Klasse: Beispiel public BranchGroup createSceneGraph() {... TransformGroup trans = new TransformGroup(); trans.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(trans); trans.addChild(new ColorCube(0.2)); Alpha alpha = new Alpha(-1,4000); AlphaBeh abeh = new AlphaBeh(trans, alpha); abeh.setSchedulingBounds(new BoundingSphere()); trans.addChild(abeh);... } Darstellung Geometrie Beobachter

12 FH-Hof Vordefinierte Unterklassen von Behavior ColorInterpolator KBSplinePathInterpolator PathInterpolator PositionInterpolator RotationInterpolator ScaleInterpolator SwitchValueInterpolator TCBSplinePathInterpolator TransparencyInterpolator Darstellung Geometrie Beobachter

13 FH-Hof Beispiel für die Verwendung eines Interpolators public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); TransformGroup trans = new TransformGroup(); trans.setCapability( TransformGroup.ALLOW_TRANSFORM_WRITE); objRoot.addChild(trans); trans.addChild(new ColorCube(0.2)); Alpha alpha = new Alpha(-1,10000); RotationInterpolator rot = new RotationInterpolator(alpha,trans); rot.setSchedulingBounds(new BoundingSphere()); trans.addChild(rot); objRoot.compile(); return objRoot; } Darstellung Geometrie Beobachter

14 FH-Hof Änderung der Geometrie (Morphing) Definition von zwei oder mehr Geometrien mit identischer Anzahl an Punkten Erzeugung eines gleitenden Übergangs mit einem Objekt der Klasse Morph Steuerung der Änderung mit Hilfe eines Behavior- Objekts Darstellung Geometrie Beobachter

15 FH-Hof Beispiel Blasebalg (Pump) - Geometrie 1 Darstellung Geometrie Beobachter

16 FH-Hof Beispiel Blasebalg (Pump) - Geometrie 2 Darstellung Geometrie Beobachter

17 FH-Hof Beispiel für ein Morph-Objekt public BranchGroup createSceneGraph() {... GeometryArray[] garray = new GeometryArray[2]; garray[0] = new PumpFull(); garray[1] = new PumpEmpty(); Morph mo = new Morph(garray); mo.setCapability(Morph.ALLOW_WEIGHTS_WRITE); objRoot.addChild(mo); Alpha alpha = new Alpha(-1, 2000); alpha.setMode(Alpha.INCREASING_ENABLE | Alpha.DECREASING_ENABLE); alpha.setDecreasingAlphaDuration(2000); PumpBeh beh = new PumpBeh(mo, alpha); beh.setSchedulingBounds(new BoundingSphere()); objRoot.addChild(beh);... } Darstellung Geometrie Beobachter

18 FH-Hof Behavior-Klasse für ein Morph-Objekt - Teil 1 public class PumpBeh extends Behavior { private Morph mo; private double weights[] = new double[2]; private Alpha alpha; private WakeupCondition wakeup = new WakeupOnElapsedFrames(0); public PumpBeh (Morph m, Alpha a) { mo = m; alpha = a; }... Darstellung Geometrie Beobachter

19 FH-Hof Behavior-Klasse für ein Morph-Objekt - Teil 2... public void processStimulus(Enumeration criteria) { weights[0] = alpha.value(); weights[1] = 1 - weights[0]; mo.setWeights(weights); wakeupOn(wakeup); } Darstellung Geometrie Beobachter


Herunterladen ppt "FH-Hof Animation - Teil 1 Richard Göbel. FH-Hof Themen Darstellung der Geometrie ändern (Transformation, Appearance, etc.) Geometrie ändern (Morphing)"

Ähnliche Präsentationen


Google-Anzeigen