Java3D Point Sound

Status
Nicht offen für weitere Antworten.
M

MiDniGG

Gast
Okay, aber dann verrate uns doch auch, was MiDniGG bedeuten soll. :bahnhof:

:p
Naja. OK. Überzeugt :-D
Wenn Du "Hackers 2" kennst oder zu der Zeit Nachrichten gelesen hast :-D Dann sagt Dir der Name "Kevin Mitnick" vllt. was. Ich fand den Namen toll hab en bissl umgeändert und seither, ohne irgendwelche Schadenersatzklagen o.ä., verwendet ^^

cya
 

Illuvatar

Top Contributor
Jetzt ist mal genug mit Offtopic, ja?
Die Lösung würde mich um ehrlich zu sein auch interessieren - ich hab keine gefunden. Ich kann (in Bezug auf das Problem) nichts falsches in Developer_Xs Code finden.
 

Developer_X

Top Contributor
die Lösung ist folgende, wenns dich interessiert:
Java:
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.net.MalformedURLException;
import java.net.URL;

import com.sun.j3d.audioengines.javasound.JavaSoundMixer;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.swing.JFrame;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.vp.*;       
	
	public class Test_Class extends JFrame 
	{       

    private SimpleUniverse universe ;
    private Canvas3D canvas;
    private BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 10.0);
    
      public void setupView() 
      { 
    	OrbitBehavior orbit = new OrbitBehavior(canvas,
                OrbitBehavior.REVERSE_ALL|OrbitBehavior.STOP_ZOOM);
        orbit.setSchedulingBounds(bounds);
        ViewingPlatform viewingPlatform = universe.getViewingPlatform();
        
        viewingPlatform.setNominalViewingTransform();
        viewingPlatform.setViewPlatformBehavior(orbit);       
        }       
          
        public BranchGroup createSceneGraph() {
        BranchGroup objRoot = new BranchGroup();       
        
  //hier!!!
      
       
        MediaContainer myWave = null;
		try {
			myWave = new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/Sounds/MainSound.wav"));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        Point2f[] myAtten = {
        	    new Point2f( 100.0f, 1.0f ),
        	    new Point2f( 350.0f, 0.5f ),
        	    new Point2f( 600.0f, 0.0f )
        	};
        PointSound mySound = new PointSound( );
        mySound.setSoundData( myWave );
        mySound.setEnable( true );
        mySound.setInitialGain( 1.0f );
        mySound.setLoop(-1);  // Loop forever
        mySound.setPosition( new Point3f( 0.0f, 0.0f, 0.0f ) );
        mySound.setDistanceGain( myAtten );
        BoundingSphere myBounds = new BoundingSphere(
        	    new Point3d(), 1.0 );
        	mySound.setSchedulingBounds( myBounds );

        	objRoot.addChild(mySound);
  //hier!!!      
        Color3f lightColor = new Color3f(.6f,.6f,.6f);
        AmbientLight ambientLight= new AmbientLight(lightColor);
        ambientLight.setInfluencingBounds(bounds);
        objRoot.addChild(ambientLight);
        DirectionalLight directionalLight = new DirectionalLight();
        directionalLight.setColor(lightColor);
        directionalLight.setInfluencingBounds(bounds);
        objRoot.addChild(directionalLight);     
                
        
        return objRoot;       
    }       
     
    public Test_Class()
    {
    	setVisible(true);
    	
          
         BranchGroup scene = createSceneGraph();       
         setLayout(new BorderLayout());
         
         GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
         canvas = new Canvas3D(config);
         add("Center", canvas);       
        
         universe = new SimpleUniverse(canvas);       
         setupView();       
         universe.addBranchGraph(scene);
         

    	 PhysicalEnvironment environment = universe.getViewer().getPhysicalEnvironment();
         AudioDevice device = new JavaSoundMixer(environment);
         device.initialize();
         environment.setAudioDevice(device);
    }       
   
    public static void main(String[] args) {new Test_Class();}
}
Aber illuvatar eine Frage, desto näher ich mich zum null punkt bewege, desto lauter sollte es doch werden, dem ist aber nicht so, wieso?
 

Marco13

Top Contributor
Ohne das jetzt komplett verfolgt zu haben: Die SchedulingBounds haben einen Radius von 1.0, aber die Attenuation einen von 100.0 - kann's sein, dass das einfach nicht zusammenpasst?
 

Illuvatar

Top Contributor
Hm ich weiß nicht warum er jetzt den schedulingBounds-Radius auf 1 gesetzt hat - aber ich hab vorhin einiges rumprobiert, mit einem genug großen Radius, und hab es nicht zum funktionieren gebracht.
Seltsam - hab es grad nochmal probiert, und wenn ich den Radius auf 1 setze, höre ich den Sound immer noch, auch wenn ich mit der Kamera meilenweit weg bin.
 

Developer_X

Top Contributor
Ja und genau das kanns ja wohl nicht sein, die Klasse heißt doch PointSound, gerade weil sie
den Sounda auf einen Punkt konfiguriert, und das ist das seltsame
 

diggaa1984

Top Contributor
also so wie ich das mal zu Anfang des Threads gelesen hab heisst die klasse pointSound, weil sie ausgehend von einem Punkt in alle denkbaren Richtungen die "Soundwellen" sendet und nicht kegelförmig mit nem 50° Winkel in Richtung xy oder dergleichen.
 
M

MiDniGG

Gast
also so wie ich das mal zu Anfang des Threads gelesen hab heisst die klasse pointSound, weil sie ausgehend von einem Punkt in alle denkbaren Richtungen die "Soundwellen" sendet und nicht kegelförmig mit nem 50° Winkel in Richtung xy oder dergleichen.

Macht doch nix... Wenn man wegzommt sollte es leiser werden (zumindest lt. API und meinem mittelmäßigen Englisch :-D ) und das ist ja grad das Problem :)
 

Developer_X

Top Contributor
auch wenns sies überall hinsenden würde, müsste man es ab ner bestimmten Entfernung leiser oder gar nicht mehr hören können.!
 

Developer_X

Top Contributor
is ja ok, aber das momentane Problem bezieht sich darauf, dass der Sound nicht leiser wird, wenn man weiter weg geht, verstehst du?

Die Rede davon, dass die Wellen sich nicht über hin verbreiten würden, war nicht gewesen.

Kannst du mir vielleicht weiterhelfen, und sagen wieso dies nicht der fall ist?

PS:ich hab ein neues Benutzterbild
 

diggaa1984

Top Contributor
ne, ich hab zwar auch anfangs mal die API gelesen und hab nur nen schimmer Ahnung davon was in etwa dazu genutzt werden muss um das Geforderte umzusetzen, aber ich denke, dass die anderen sich schon intensiver damit beschäftigt haben, zumindest mit deinem Code um da besser zu helfen. Mich jetzt noch in deinen Code reinzudenken wär mir zu aufwendig.
 
S

Spacerat

Gast
Ich liefere hier mal 'ne Übersetzung die weiterhelfen könnte: dict.cc Wörterbuch :: attenuation :: Englisch-Deutsch-übersetzung

In dem Codeschnipsel der API wird dort noch ein Point2f-Array dafür angegeben (andeutungsweise). Bei Developer_X fehlt dieses. Das würde bedeuten, das der Sound gar nicht abnimmt, wenn "attenuation" standardmässig auf 0 steht.
 
Zuletzt bearbeitet von einem Moderator:

Developer_X

Top Contributor
@Spacerat, hab ich doch hier:
Java:
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.net.MalformedURLException;
import java.net.URL;

import com.sun.j3d.audioengines.javasound.JavaSoundMixer;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.swing.JFrame;
import javax.vecmath.*;
import com.sun.j3d.utils.behaviors.vp.*;       
	
	public class Test_Class extends JFrame 
	{       

    private SimpleUniverse universe ;
    private Canvas3D canvas;
    private BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 10.0);
    
      public void setupView() 
      { 
    	OrbitBehavior orbit = new OrbitBehavior(canvas,
                OrbitBehavior.REVERSE_ALL|OrbitBehavior.STOP_ZOOM);
        orbit.setSchedulingBounds(bounds);
        ViewingPlatform viewingPlatform = universe.getViewingPlatform();
        
        viewingPlatform.setNominalViewingTransform();
        viewingPlatform.setViewPlatformBehavior(orbit);       
        }       
          
        public BranchGroup createSceneGraph() {
        BranchGroup objRoot = new BranchGroup();       
        
  //hier!!!
       
        MediaContainer myWave = null;
		try {
			myWave = new MediaContainer(new URL("file:///F:/Rayman/Sound.Library/Sounds/MainSound.wav"));
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        Point2f[] myAtten = {
        	    new Point2f( 100.0f, 1.0f ),
        	    new Point2f( 350.0f, 0.5f ),
        	    new Point2f( 600.0f, 0.0f )
        	};
        PointSound mySound = new PointSound( );
        mySound.setSoundData( myWave );
        mySound.setEnable( true );
        mySound.setInitialGain( 1.0f );
        mySound.setLoop(-1);  // Loop forever
        mySound.setPosition( new Point3f( 0.0f, 0.0f, 0.0f ) );
        mySound.setDistanceGain( myAtten );
        BoundingSphere myBounds = new BoundingSphere(
        	    new Point3d(), 1.0 );
        	mySound.setSchedulingBounds( myBounds );

        	objRoot.addChild(mySound);
  //hier!!!      
        Color3f lightColor = new Color3f(.6f,.6f,.6f);
        AmbientLight ambientLight= new AmbientLight(lightColor);
        ambientLight.setInfluencingBounds(bounds);
        objRoot.addChild(ambientLight);
        DirectionalLight directionalLight = new DirectionalLight();
        directionalLight.setColor(lightColor);
        directionalLight.setInfluencingBounds(bounds);
        objRoot.addChild(directionalLight);     
                
        
        return objRoot;       
    }       
     
    public Test_Class()
    {
    	setVisible(true);
    	
          
         BranchGroup scene = createSceneGraph();       
         setLayout(new BorderLayout());
         
         GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
         canvas = new Canvas3D(config);
         add("Center", canvas);       
        
         universe = new SimpleUniverse(canvas);       
         setupView();       
         universe.addBranchGraph(scene);
         

    	 PhysicalEnvironment environment = universe.getViewer().getPhysicalEnvironment();
         AudioDevice device = new JavaSoundMixer(environment);
         device.initialize();
         environment.setAudioDevice(device);
    }       
   
    public static void main(String[] args) {new Test_Class();}
}
Die für uns interessante stelle ist mit "//hier!!!" gekennzeichnet
 
S

Spacerat

Gast
Ok... hatte wohl meine Fielmann-Brille nicht auf...
Hast du mal versucht geringere Distanzwerte zu verwenden? Möglicherweise auch alle zwischen 0 und 1 liegend (z.B. 0.1 statt 100)?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java3d in Eclipse einbinden Spiele- und Multimedia-Programmierung 4
Neumi5694 Java3D Viewer Beschriftung Spiele- und Multimedia-Programmierung 1
C Java3D Transformieren von obj. Datein Spiele- und Multimedia-Programmierung 0
M Cylinder anhand eines Vektors ausrichten (Java3d) Spiele- und Multimedia-Programmierung 0
Ruvok Java3D Tutorial gesucht Spiele- und Multimedia-Programmierung 5
U Hilfe bei Implementierung eines PointSounds in Java3D Spiele- und Multimedia-Programmierung 1
R Java3d ViewingPlatform erst Verschieben und dann RotationsInterpolator Spiele- und Multimedia-Programmierung 0
D Java3D - Blickfeld Spiele- und Multimedia-Programmierung 1
P Java3D Box Dimensionen und Positionierung Spiele- und Multimedia-Programmierung 1
E Java3D Objekt skalieren per JSlider/JButton Spiele- und Multimedia-Programmierung 10
S Java3D: Primitives zu einem Objekt kombinieren Spiele- und Multimedia-Programmierung 7
J Java3D - Textur laden geht nicht Spiele- und Multimedia-Programmierung 9
J Java3D - Farben vermischen sich Spiele- und Multimedia-Programmierung 7
T Java3D Rendering Problem Spiele- und Multimedia-Programmierung 7
S Java3D oder JMonkey? Spiele- und Multimedia-Programmierung 17
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
C java 3d ohne Java3d Spiele- und Multimedia-Programmierung 28
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Maxim6394 [Java3D] lookAt Mausposition Spiele- und Multimedia-Programmierung 17
Maxim6394 [Java3D] Probleme mit KeyFrame Animationen Spiele- und Multimedia-Programmierung 9
K Java3D als Applet ohne Installation von Java3d Spiele- und Multimedia-Programmierung 6
D Java3D Installation: package javax.media.j3d not found Spiele- und Multimedia-Programmierung 5
C Java3D Texture Mapping Spiele- und Multimedia-Programmierung 2
W Java3D: Kanten die hinter einem Objekt liegen werden gezeigt Spiele- und Multimedia-Programmierung 2
W Java3D: Farbe von Objekten stimmt nicht mit übergebenem RGB-Wert überein Spiele- und Multimedia-Programmierung 9
M Eigene Renderengine ohne Java3D,etc. Spiele- und Multimedia-Programmierung 19
C Java3D Sound spielt nur einen Sound ab. Spiele- und Multimedia-Programmierung 8
A JAVA3D TransformGroup <--> Group Problem Spiele- und Multimedia-Programmierung 3
M [Java3D] Animation von mehreren Objekten Spiele- und Multimedia-Programmierung 7
W Java3D: Eckkoordinaten einer Box herausfinden Spiele- und Multimedia-Programmierung 18
T Java3D: Objekte platzieren und entfernen? Spiele- und Multimedia-Programmierung 7
T Java3D: Nur die Kanten des Würfels rendern? Spiele- und Multimedia-Programmierung 4
W Java3D setBounds(BoundingBox) Spiele- und Multimedia-Programmierung 6
T [gelöst] Java3D: Unerwünschte Rotation um die 3.Achse vermeiden? Spiele- und Multimedia-Programmierung 3
Bastie JAVA3D - WRL Transform Spiele- und Multimedia-Programmierung 9
G Eclipse Problem mit Java3d Spiele- und Multimedia-Programmierung 3
T Java3D - Lichtquelle einbauen Spiele- und Multimedia-Programmierung 7
jemandzehage java3d parallel und perspective view Spiele- und Multimedia-Programmierung 5
H Cinema 4D in Java3D importieren Spiele- und Multimedia-Programmierung 2
1 [Java3D] komplexes Projekt? Spiele- und Multimedia-Programmierung 10
P .obj-Datei in Java3D laden: ParsingErrorException Spiele- und Multimedia-Programmierung 7
C Java3D Lichtquelle beim Beobachter Spiele- und Multimedia-Programmierung 2
C Java3D Interaktion während Animation Spiele- und Multimedia-Programmierung 3
aze Java3D: Flächen teilen Spiele- und Multimedia-Programmierung 15
P Java3D Textur verzerrt Spiele- und Multimedia-Programmierung 3
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
D [JAVA3D] Es werden 2 Fenster erzeugt und auf dem falschen gezeichnet Spiele- und Multimedia-Programmierung 3
aze Java3D: leere Räume füllen Spiele- und Multimedia-Programmierung 2
aze Java3d:Helligkeit von Shape3D ändern Spiele- und Multimedia-Programmierung 2
S Einschätzung zu Java3D-Einstieg Spiele- und Multimedia-Programmierung 3
F Programm mit Java3D unter Linux laufen lassen Spiele- und Multimedia-Programmierung 3
I Vergleich von Java3D und OpenGL Spiele- und Multimedia-Programmierung 17
W Waterslide mit Java3D Spiele- und Multimedia-Programmierung 11
M Java3D Picking - falsche Objekte werden gepickt Spiele- und Multimedia-Programmierung 3
M [Java3D] Rotieren der Scene NICHT des POV Spiele- und Multimedia-Programmierung 4
F Jogl oder Java3D ? Spiele- und Multimedia-Programmierung 20
K Java3D Abfängerfrage Spiele- und Multimedia-Programmierung 3
aze Java3D:Farbige Flächen verschwinden lassen(Transparenz- oder Colorinterpolator?)) Spiele- und Multimedia-Programmierung 5
C Java3D PositionInterpolator Spiele- und Multimedia-Programmierung 3
G [Java3D] Probleme bei Animation Spiele- und Multimedia-Programmierung 4
E [JAVA3D] Kamerasteuerung Spiele- und Multimedia-Programmierung 3
E [JAVA3D] Schattenstrich durch die Szene Spiele- und Multimedia-Programmierung 4
M Grundsätzliche Java3D Fragen Spiele- und Multimedia-Programmierung 2
C Java3D SceneGraohPath Spiele- und Multimedia-Programmierung 2
C Java3D Rotation um einen Punkt (y-achse) Spiele- und Multimedia-Programmierung 2
G Java3D plattformunabhängig bundeln Spiele- und Multimedia-Programmierung 3
TheKing Java3D-Shooter View Spiele- und Multimedia-Programmierung 2
A Java3D tutorial? Spiele- und Multimedia-Programmierung 3
R Java3D Kollisionserkennung und Schwerkraft Spiele- und Multimedia-Programmierung 17
M Java3D Objekte entfernen und hinzufügen Spiele- und Multimedia-Programmierung 10
J Java3d Schnelle Geschosse Spiele- und Multimedia-Programmierung 12
D Kann ich mit Java3D 2D Daten als 3D surfaceplot plotten? Spiele- und Multimedia-Programmierung 5
J Java3d setTextureTransform verändert J3DGraphics2D Spiele- und Multimedia-Programmierung 4
J Hilfe: Rotation X und Y Achse (Java3d) Spiele- und Multimedia-Programmierung 12
K Java3D: LineStripArray Spiele- und Multimedia-Programmierung 2
P Java3D - Zylinder genau wie Vektor ausrichten Spiele- und Multimedia-Programmierung 5
Developer_X Java3D Mensch Ärgere Dich nicht. Spiele- und Multimedia-Programmierung 10
C JAVA3D Rotation um einen bestimmten Punkt Spiele- und Multimedia-Programmierung 20
Developer_X Java3D-Ungeeignet für 3D Spiele wegen Heap Space=? Spiele- und Multimedia-Programmierung 23
Developer_X Java3D Canvas post Renderer und? Spiele- und Multimedia-Programmierung 5
A Java3D Sichtweite Spiele- und Multimedia-Programmierung 2
"Er" Kamera rotation in Java3D Spiele- und Multimedia-Programmierung 2
A Java3D: Behavior scheduling bounds Spiele- und Multimedia-Programmierung 3
Developer_X THE BALL (needs Java3D) Spiele- und Multimedia-Programmierung 34
Developer_X Java3D Game_(die erste) Spiele- und Multimedia-Programmierung 2
Developer_X Java3D und while schleifen Spiele- und Multimedia-Programmierung 4
Developer_X Collisionserkennung in Java3D Spiele- und Multimedia-Programmierung 3
Developer_X Java3D Node -> Obj Data Spiele- und Multimedia-Programmierung 2
Developer_X Figuren werden nicht angezeigt (Java3D) Spiele- und Multimedia-Programmierung 5
S PDFRenderer und Java3D Spiele- und Multimedia-Programmierung 2
Developer_X Java3D- der Mausklick auf Nodes Spiele- und Multimedia-Programmierung 3
Developer_X Lines in Java3D Spiele- und Multimedia-Programmierung 4
V Java3D: HUD erstellen Spiele- und Multimedia-Programmierung 2
V Java3D: scheinende Sonne Spiele- und Multimedia-Programmierung 4
V Java3D: Ringe für Saturn erstellen Spiele- und Multimedia-Programmierung 8
V Java3D: automatisches Bewegen der Kamera Spiele- und Multimedia-Programmierung 19
V Java3D: mehrere ViewingPlaforms in Sonnensystem Spiele- und Multimedia-Programmierung 8
Developer_X Thread in Java3D Spiele- und Multimedia-Programmierung 8
B Java3D .obj dateien Spiele- und Multimedia-Programmierung 2
Developer_X Java3D's next TopModel Spiele- und Multimedia-Programmierung 16

Ähnliche Java Themen

Neue Themen


Oben