Brauche Tipps: 3D-Equalizer

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Gute Tag Forum !

Ich baue gerade ein 3D-Equalizer in Java3D. Es sollen immer 10 "Balken" nebeneinander die aktuellen Frequenzen wiedergeben. Nach einem vorgegebenen Interval (z.B.: 200ms) entstehen davor eine neue Reihe Balken (10 Stck.). Am Ende - 10 Reihen - werden die alten Balken gelöscht. So wandert diese Scene auf der z-Achse durch den Raum.

Problem: Die Kamera muss diese Objekte im Auge behalten, wie kriege ich die Kamera dazu, FLÜSSIG einem sich alle 200ms ändernden Punkt zu folgen ?

Problem2: Ich benutze für morphende Objekte, Licht, Kamera so gennante BoundingSphere-Objekte zur festlegung des Gesltungsbereichs. Müssen diese Objekte auch mitwandern ???

Das scheint mir alles ein wenig umständlich, sollte ich vielleicht die Balken-Objekte lieber selber (nach hinten) bewegen, so dass es wirkt als würde die Kamera sich bewegen ?

Kann man eine solche simulierte Kamerabewegung vielleicht auch auf eine TG oder BG anwenden ?


Vielen Dank im Vorraus für die Ideen
Gruß Jan
 

Campino

Top Contributor
BoundingSpheres müssen sich mitbewegen, macht Java das nicht automatisch?

Ansonsten ist es eventuell sinnvoll, die Balken statt der Kamera zu bewegen, so das die Kamera fest bleibt...
 

DeepBlue

Aktives Mitglied
Benutz einfach BoundingLeafs, das sind Bounds, die sich automatisch mit einem bestimmten Objekt mitbewegen :) Ansonsten würde ich die Kamerposition zur Mitte verringen / vergrößern, so wie der Zoom bei den ganzen Java Behaviors relaisiert wird. Andere möglichkeit ist natürlich die ganze Szene zu verschieben.
 
G

Guest

Gast
Danke erstmal, habe jetzt BoundingLeafs genommen.
Nur muss ich beim BoundingLeaf-Konstruktor auch wieder Bounds angeben.
Code:
bounds = new BoundingLeaf(new BoundingSphere(new Point3d(0,0,0), 10));
Damit sich mein BoundingLeaf-Objekt mitbewegt, führe ich bei jeder neu-hinzugefügten Reihe folgenden Code aus:
Code:
bounds.setBounds(new BoundingSphere(new Point3d(0,0,zOffset), 10));
Mit sich änderndem zOffset sollte sich das BoundingLeaf-Objekt doch mitbewegen, wenn zOffset bei 10 ankommt, verschwindet allerdings meine Balken aus dem Camerasichtfeld.
Berechtigungen sind auch gesetzt (müssen nicht alle sein, aber man weiss ja nie:
Code:
bounds.setCapability(BoundingLeaf.ALLOW_BOUNDS_READ);
bounds.setCapability(BoundingLeaf.ALLOW_BOUNDS_WRITE);
bounds.setCapability(BoundingLeaf.ALLOW_REGION_READ);
bounds.setCapability(BoundingLeaf.ALLOW_REGION_WRITE);
bounds.setCapability(BoundingLeaf.ALLOW_AUTO_COMPUTE_BOUNDS_READ);
bounds.setCapability(BoundingLeaf.ALLOW_AUTO_COMPUTE_BOUNDS_WRITE);
bounds.setBoundsAutoCompute(true);
 

DeepBlue

Aktives Mitglied
Warum setzt du die Bounds jedesmal neu ? Die BoundingLeafs sind doch gerade dafür da, dass sie einem bestimmte Objekt automatisch folgen ! Dazu musst du nur das BoundingLeaf Objekt erstellen, es als Child dem Objekt, dem es folgen soll, hinzufügen und die Bounds setzen, für das Objekt, dass auf die Bounds reagieren soll.
 

Illuvatar

Top Contributor
Genau ;)

Aber um auch noch meinen Senf dazuzugeben ;) ich denke, es wäre trotzdem viel einfacher, nicht die Kamera, sondern die Objekte selbst zu bewegen.
 
G

Guest

Gast
Hallo,
ich habe jetzt meiner Haupt-TransformGroup das BoundingLeaf hinzugefügt.
Ebenfalls beinhaltet diese TG alle darzustellenden Objekte (Unter-BranchGroups).
Code:
root_group = new TransformGroup();
root_group.addChild(bounds);
Ich glaube ich verstehe es noch nicht:

Die Objekte wandern jetzt, bzw es werden an der vorderen Seite immer neue erstellt,
und hinten abgebaut (alle 500ms). Alle diese befinden sich in meiner root_group, ebenfalls das
BoundingLeaf-objekt bounds.

Die TG wird mit einem Behavior bewegt, alle 40ms. Wie bekomme ich das jetzt syncronisiert,
also das die Kamera immer auf die neu erzeugten Objekte "sieht", sich also die TG gegen die
Laufrichtung der Objekte bewegt, so dass es so aussieht als stehe alles still.

Was muss ich jetzt machen, damit die Szene in der Kameraperspektive bleibt und
die standart Camera-Zoom, -Rotation, -Translation dann immer noch funktionieren ???

Oder bin ich auf dem Holzweg ?

Danke
 

DeepBlue

Aktives Mitglied
Anonymous hat gesagt.:
Was muss ich jetzt machen, damit die Szene in der Kameraperspektive bleibt und
die standart Camera-Zoom, -Rotation, -Translation dann immer noch funktionieren ???

Danke

Also eigentlich sollte es reichen der ViewPlatform das gleiche Behavior zuzuweisen. Allerdings bezweifle ich, dass es eine einfache Möglichkeit gibt, wie trotzdem nocht Standard Zoom, Rotation und Translation funktionieren.
 

MPW

Top Contributor
Also wenn ihr mich fragt, ist Java3D dazu zu langsam....hoert sich naemlich nach was action reichem an, und 200 ms hackelt ziemlich stark, ich wette, wenn du fertig bist, willst du es schneller haben und das wird dann ein Problem, wuerde es vllt. direkt in einer anderen Engine machen, die schneller ist...
 

DeepBlue

Aktives Mitglied
Warum sollte Java3D dafür zu langsam sein ? Wenn er jetzt einen Ego Shooter programmieren würde, dann würde ich dir zustimmen, aber so ein Equalizer, ist doch eigentlich ein nahezu perfektes Anwendungsgebiet für Java3D, da nur eine geringe Polygonanzahl vorhanden ist und ein "relativ simpler" Vorgang umgesetzt werden soll.
 

MPW

Top Contributor
hm, aber die Performence ist das Problem, ich meine ich will keinen davon abhalten sowas zu probieren, bin aber der Meinung, wenn ich das mal so hochrechne, dass das schon einiges an Rechenleistung(fuer Java3D verhaeltnisse) braucht und will halt ein bisschen Entaeschungen vorbeugen;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Brauche Hilfe was zu Programmieren Spiele- und Multimedia-Programmierung 4
coolian ich brauche irgendeine gui lib für lwjgl2 Spiele- und Multimedia-Programmierung 51
RalleYTN Brauche Hilfe beim Einlesen von PNGs Spiele- und Multimedia-Programmierung 14
E Brauche Hilfe was soll ich tun Spiele- und Multimedia-Programmierung 7
C Java Brauche Hilfe Spiele- und Multimedia-Programmierung 5
M Brauche (kleine)InterpolatorHilfe Spiele- und Multimedia-Programmierung 24
StrikeTom Brauche .wav-datein Spiele- und Multimedia-Programmierung 11
J Brauche denkanstoß für kleines grafikframework Spiele- und Multimedia-Programmierung 3
javajavajava Java Lotto Zahl 6 aus 49 - Brauche Hilfe Spiele- und Multimedia-Programmierung 3
N Brauche Hilfe bei kleinem Spiel Spiele- und Multimedia-Programmierung 40
L Brauche hilfe mit KeyEvent Spiele- und Multimedia-Programmierung 4
B brauche hilfe bei der tastenzuodnung Spiele- und Multimedia-Programmierung 3
F Brauche Hilfe bei Bewegung eines Rechtecks [Applet] Spiele- und Multimedia-Programmierung 5
K Android: OpenGL render performance Tipps ? Spiele- und Multimedia-Programmierung 4
Luk10 Tipps für bessere Animationen / Grafik Engine Spiele- und Multimedia-Programmierung 2
T einfaches Java-Internetspiel,anregungen und tipps! Spiele- und Multimedia-Programmierung 7
M suche Tipps fürs Spielfeld bei Monopoly Spiele- und Multimedia-Programmierung 2
A "Wegnehm-Spiel" programmieren, Tipps + Links? Spiele- und Multimedia-Programmierung 8

Ähnliche Java Themen

Neue Themen


Oben