[java3d] Figur drehen

Status
Nicht offen für weitere Antworten.

Trekky

Mitglied
Hey,
ich habe eine Figur auf einer Kugel stehen und diese soll über die Kugel laufen.
D.h. irgendein Winkel muss sich ändern bzw die Figur muss sich drehen.
Hier mal 2 Bilder:
kugel1.jpg

Kugel2.jpg


Wie bekomme ich die Drehung hin?

Viele Dank für eure Hilfe

Gruß
Hägi
 

Marco13

Top Contributor
Code:
Wurzel
    -> TransformGroup für die Rotation 
          -> TransformGroup für das Verschieben der Figur an die Spitze der Kugel
               -> Die Figur
 

Trekky

Mitglied
Marco13 hat gesagt.:
Code:
Wurzel
    -> TransformGroup für die Rotation 
          -> TransformGroup für das Verschieben der Figur an die Spitze der Kugel
               -> Die Figur
Also ich muss erst die Figur drehen und dann wieder auf die Kugel runter setzen?
Hab ich das richtig verstanden?
Aber wie bekomm ich raus um wieviel ich die Figur drehen muss?
ich will ja quasi immer einen Schritt machen...

Danke
 

Marco13

Top Contributor
Angenommen, die Figur steht auf dem Ursprung - ihre Füße sind bei 0,0,0 - und dort ist auch das Zentrum der Kugel. Dann musst du
- die Figur ein stück drehen
- sie entlang ihrer NEUEN y-achse auf die Kugeloberfläche verschieben.

Also die Knoten
-> TransformNode zum Verschieben -> TransformNode zum Drehen -> Figur
hintereinanderhängen.

Wie weit gedreht werden muß, hängt davon ab, die groß ein Schritt sein soll...
 

Trekky

Mitglied
Marco13 hat gesagt.:
Wie weit gedreht werden muß, hängt davon ab, die groß ein Schritt sein soll...
ja genau. Allerdings weiß ich nicht wie ich die Figur drehen kann.
Hilft ein RotationInterpolator da weiter?
Und wie kann ich den Winkel ausrechnen? Könnten Kugelkoordinaten etwas nützen?
 

Marco13

Top Contributor
Drehen kannst du, indem du bei der "TranformGroup für die Rotation" mit setTransform(...) eine passende Transform setzt....

Wie weit gedreht werden muss - ja, da hängt es schon davon ab, wie die Schrittgröße gemessen werden soll (du merkst schon: Lauter Nachfragen... solange du nicht weißt, was du vorhast, kann auch keiner Die Antwort geben). Im Prinzip brauchst du ja nur eine Drehung um EINE Achse (erstmal...). Dann hast du die Schrittgöße, und kannst den Winkel ausrechnen, indem du die Funktion für die Länge einer Kreissehne oder eines Kreisbogensegments invertierst... http://de.wikipedia.org/wiki/Kreis_(Geometrie)#Formeln
 

Trekky

Mitglied
ja ich möchte eben mit meiner Figur frei auf der Kugel laufen können. Mit den W-A-S-D Tasten mich bewegen können. Und dazu muss ich eben immer senkrecht auf der Kugel mit der Figur stehen und dafür brauch ich eben den Winkel wie ich meine Figur drehen muss um immer senkrecht zu stehen.
Ja vorerst würd ja erstmal die Y-Achse reichen, wenn ich auf der Kugel oben stehe, oder?
Dann müsste die Figur doch von rechts nach links einmal um die kugel laufen, oder?
 

Marco13

Top Contributor
Das, was du eingezeichnet hattest, wäre "eigentlich" eine Drehung um die z-Achse, in positiver Richtung, aber vielleicht hast du auch irgendeine "spezielle" Ansicht - weiß man ja nicht.

Bei dem "frei bewegen" stellt sich die Frage, ob sich die Figur mit A und D seitlich bewegen oder um ihre Hochachse drehen soll... Wie auch immer... poste ggf. mal die relevanten (!) Teile in einem combiliperbaren (!!!) Beispielprogramm. Mehr als zu sagen: "Ja, man muß halt so drehen, wie man das haben will" kann ich jetzt nämlich auch nicht mehr...
 

Trekky

Mitglied
stimmt wäre Z-achse^^
super wäre es natürlich wenn es klappt, die figur mit A und D um ihre Hochachse zu drehen.
Moment ich hab hier mal den bisherigen Code.
Die Figur ist mit dem Milkloader geladen, der ist dabei.
Ansonsten ist die Figur über der Kugel geladen. Wenn man auf eine Taste drückt und drauf bleibt dann fährt die Figur bis zur Kante der Kugel.
Das ganze ist bisher mit Picking gelöst.
http://www.file-upload.net/download-1290769/Kugel_mit_Figur.zip.html
 

Trekky

Mitglied
ich hab noch eine Frage:
Mit einem RotationsInterpolator kann ich doch Animationen machen und dann dreht sich das Objekt ja längere Zeit.
ich will ja aber nur eine kurze einmalige Drehung um den richtigen Winkel. Geht das mit dem RotationsInterpolator auch? und wie? Beeinflusst der Alphawert das?
 

Marco13

Top Contributor
Hm. Vielleicht erübrigt sich die letzte Frage... Ich hab' schon ewig nichtsmehr "aktiv" mit Java3D gemacht, aber ... wie auch immer. Wenn ich dich richtig verstanden hatte, meintest du grob sowas, wie das, was ich jetzt angehängt habe. Habe es aber nur reingehackt, und den restlichen Code nicht nachvollzogen (sah etwas unübersichtlich aus, und ich bin ziemlich aus der Übung). Also, was auch immer du da mit "Collisions" usw. gemacht hast,.... Hier mal die beiden Klassen. Die wichtigsten geänderten Stellen sind mit XXX markiert.
Code:
package scuttle_ball;

import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;
import com.sun.j3d.utils.picking.PickResult;
import com.sun.j3d.utils.picking.PickTool;
import com.sun.j3d.utils.universe.SimpleUniverse;
import java.awt.event.KeyEvent;
import java.util.Enumeration;
import javax.media.j3d.Behavior;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.PickRay;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.WakeupCondition;
import javax.media.j3d.WakeupCriterion;
import javax.media.j3d.WakeupOnAWTEvent;
import javax.media.j3d.WakeupOnCollisionEntry;
import javax.media.j3d.WakeupOnCollisionExit;
import javax.media.j3d.WakeupOnElapsedTime;
import javax.media.j3d.WakeupOr;
import javax.vecmath.*;
import javax.vecmath.Vector3d;

public class FigurBehavior extends Behavior{
    private TransformGroup ziel;
    private WakeupCondition wc;
    private PickRay picker;
    private PickTool myPicker;
    private boolean kollision = false;
    private BranchGroup bg;
    private double distanz = 100;
    private double letzteDistanz = 0;
    private int irgendwas = 0;
    private SimpleUniverse su;
    private OrbitBehavior ob;
    private double aenderung = 0.01f;

    
    // XXX
    private Matrix4f currentRotation = new Matrix4f();
    private void rotateY(float delta)
    {
        Matrix4f transform = new Matrix4f();
        transform.setIdentity();
        transform.rotY(delta);
        currentRotation.mul(transform);
    }
    private void rotateX(float delta)
    {
        Matrix4f transform = new Matrix4f();
        transform.setIdentity();
        transform.rotX(delta);
        currentRotation.mul(transform);
    }
    
    
    
    public FigurBehavior(TransformGroup zielInc, BranchGroup bgInc, SimpleUniverse universum, OrbitBehavior obInc) {
        ziel = zielInc;
        picker = new PickRay();
        bg = bgInc;
        myPicker = new PickTool(bg);
        su = universum;
        ob = obInc;
        
        currentRotation.setIdentity();
    }
    public void initialize(){
        WakeupCriterion kriterien[] = new WakeupCriterion[3];
        kriterien[0] = new WakeupOnCollisionEntry(ziel);
        kriterien[1] = new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED);
        kriterien[2] = new WakeupOnCollisionExit(ziel);
        wc = new WakeupOr(kriterien);
        this.wakeupOn(wc);
    }
    
    public double getAktuelleDistance(){
        return distanz;
    }
    
    public void processStimulus(Enumeration criteria){
        Object element;
        Vector3d position = new Vector3d();
        Vector3d winkelding = new Vector3d();
        Transform3D kamera = new Transform3D();
        Transform3D posi = new Transform3D();
        ziel.getTransform(posi);
        posi.get(position);
        
        Point3d v3d = new Point3d(position.getX(),position.getY(),position.getZ());
        myPicker.setMode(PickTool.BOUNDS);
        myPicker.setShapeRay(v3d,new Vector3d(0,-1,0));
        PickResult pickResultat = myPicker.pickClosest();
        
        while(criteria.hasMoreElements()){
            element = criteria.nextElement();
            WakeupCriterion wup = (WakeupCriterion) element;
            
            if(wup instanceof WakeupOnElapsedTime){
                
                if(pickResultat.numIntersections() > 0){
                    letzteDistanz = distanz;
                    distanz = pickResultat.getIntersection(0).getDistance();
                }
                
                if(getAktuelleDistance() > 0.7){
                    position.setY(position.getY()-0.02f);
                }else{
                    if(getAktuelleDistance() < 0.67){
                        position.setY(position.getY()+0.02f);
                    }
                }
                posi.set(position);
            }
            
            if(wup instanceof WakeupOnAWTEvent){
                WakeupOnAWTEvent event = (WakeupOnAWTEvent)element;
                //aus dem AWTEvent ein KeyEvent casten
                KeyEvent ke = (KeyEvent)event.getAWTEvent()[0];
                //Bei welchem key was geschehen soll

                ob.setRotationCenter(v3d);
                
                // XXX
                switch(ke.getKeyCode()){
                    case KeyEvent.VK_RIGHT:{
                        rotateY(-0.1f);
                        break;
                    }
                    case KeyEvent.VK_LEFT:{
                        rotateY(0.1f);
                        break;
                    }
                    case KeyEvent.VK_UP:{
                        rotateX(-0.01f);
                        break;
                    }
                    case KeyEvent.VK_DOWN:{
                        rotateX(0.01f);
                        break;
                    }
                }
                ziel.setTransform(new Transform3D(currentRotation));
                
                
                
                
                if(pickResultat.numIntersections() > 0){
                    letzteDistanz = distanz;
                    distanz = pickResultat.getIntersection(0).getDistance();
                }
                
                if(getAktuelleDistance() > 0.71){
                    position.setY(position.getY()-aenderung);
                   
                }else{
                    if(getAktuelleDistance() < 0.67){
                        position.setY(position.getY()+aenderung);
                    }
                }
              posi.set(position);
            }
            
            if(wup instanceof WakeupOnCollisionEntry){
                if(!kollision){
                    System.out.println("Kollision");
                    kollision = true;
                }
            }
            
            if(wup instanceof WakeupOnCollisionExit){
                if(kollision){
                    System.out.println("Kollision exit");
                    kollision = false;
                }
            }
        }
        //ziel.setTransform(posi);
        wakeupOn(wc);
    }

}
Code:
package scuttle_ball;

import com.sun.j3d.loaders.IncorrectFormatException;
import com.sun.j3d.loaders.ParsingErrorException;
import com.sun.j3d.utils.behaviors.vp.OrbitBehavior;
import com.sun.j3d.utils.image.TextureLoader;
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.universe.ViewingPlatform;
import java.awt.BorderLayout;
import java.io.FileNotFoundException;
import javax.media.j3d.AmbientLight;
import javax.media.j3d.Appearance;
import javax.media.j3d.Background;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.ColoringAttributes;
import javax.media.j3d.ImageComponent2D;
import javax.media.j3d.Material;
import javax.media.j3d.PolygonAttributes;
import javax.media.j3d.SpotLight;
import javax.media.j3d.Texture2D;
import javax.media.j3d.TextureAttributes;
import javax.media.j3d.Transform3D;
import javax.vecmath.*;
import javax.vecmath.Color4f;
import javax.vecmath.Point3d;
import com.jlindamood.MS3D.*;
import com.sun.j3d.loaders.Scene;
import com.sun.j3d.loaders.objectfile.ObjectFile;
import com.sun.j3d.utils.geometry.Sphere;
import javax.media.j3d.Node;
import javax.media.j3d.Shape3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Vector3d;

public class Panel3D extends javax.swing.JPanel {
    private SimpleUniverse universe;
    private OrbitBehavior orbit;
    public Panel3D() {
        setLayout(new BorderLayout());
        Canvas3D canvas = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
        add("Center", canvas);
        
        universe = new SimpleUniverse(canvas);
        
        //OrbitBehavior
        orbit = new OrbitBehavior(canvas, OrbitBehavior.REVERSE_ALL );
        
        BoundingSphere bounds = new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);
        orbit.setSchedulingBounds(bounds);
        orbit.setZoomFactor(5.0);
        ViewingPlatform viewingplatform = universe.getViewingPlatform();
        viewingplatform.setViewPlatformBehavior(orbit);
        
        universe.getViewingPlatform().setNominalViewingTransform();
        universe.addBranchGraph(setLicht());
        
           
        BranchGroup scene = createScene();
        scene.compile();
        
        universe.addBranchGraph(scene);
    }
    
    
    public BranchGroup createScene(){
        TransformGroup figurRotation;
        TransformGroup figurTranslation;
        
        FigurBehavior figurVerhalten;
        Transform3D objTransform = new Transform3D();
        BranchGroup figurBranchGroup;
        BranchGroup objRoot = new BranchGroup();
        MilkLoader ML = new MilkLoader();
        ML.setFlags(MilkLoader.LOAD_ALL);
        try {

            Scene figur = ML.load("TeufelMitBones.ms3d");
            
            figurBranchGroup = figur.getSceneGroup();
            MilkAnimation ma = (MilkAnimation) figur.getBehaviorNodes()[0];
            ma.setDuration(30);
            ma.setSchedulingBounds(new BoundingSphere(new Point3d(0, 0, 0), Double.MAX_VALUE));

            
            figurBranchGroup.addChild(figur.getBehaviorNodes()[0]);
            //objTransform.setTranslation(new Vector3d(0,5,0));
            
            // XXX
            figurTranslation = new TransformGroup();
            Transform3D translation = new Transform3D();
            translation.set(new Vector3f(0,4.65f,0));
            figurTranslation.setTransform(translation);
            
            figurRotation = new TransformGroup(objTransform);
            figurRotation.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
            figurRotation.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
            figurRotation.setCapability(TransformGroup.ALLOW_COLLIDABLE_READ);
            
            Node figurAusBranchgroupScene =  figurBranchGroup.getChild(0);
            figurAusBranchgroupScene.setCollidable(true);
            figurAusBranchgroupScene.setPickable(false);
            figurBranchGroup.removeChild(0);
            
            
            figurTranslation.addChild(figurAusBranchgroupScene);
            figurRotation.addChild(figurTranslation);
            
            objRoot.addChild(figurBranchGroup);
            objRoot.addChild(figurRotation);
            
            figurVerhalten = new FigurBehavior(figurRotation,objRoot,universe,orbit);
            figurVerhalten.setSchedulingBounds(new BoundingSphere(new Point3d(), 10000000));
            
            objRoot.addChild(figurVerhalten);
        } catch (ParsingErrorException ex) {
            ex.printStackTrace();
        } catch (IncorrectFormatException ex) {
            ex.printStackTrace();
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        }
        
        Sphere kugel = new Sphere(4f,3,50);
        kugel.setAppearance(make_Appearance());
        objRoot.addChild(kugel);
        return objRoot;
    }
    
    // Szene laden
    
    // neues Aussehen geben
    private Appearance make_Appearance(){
        Appearance a = new Appearance();
        PolygonAttributes pa  = new PolygonAttributes();
        pa.setBackFaceNormalFlip(false);
        pa.setCullFace(PolygonAttributes.CULL_NONE);
        
        a.setPolygonAttributes(pa);
        
        ColoringAttributes color = new ColoringAttributes(1,1,0,1);
        a.setColoringAttributes(color);
        
        TextureLoader loader = new TextureLoader("texdtur.png", this);
        ImageComponent2D image = loader.getImage();
        Texture2D texture = new Texture2D();
        int form  = texture.getFormat();
        int base = texture.getMipMapMode();
        System.out.println("form: " + form + " base " + base);
        texture = new Texture2D(base,form,256,256);
        texture.setImage(0, image);
        Appearance appear = new Appearance();
        a.setTexture(texture);
        
        Transform3D t3d = new Transform3D();
        t3d.setScale(20d);
        TextureAttributes texat = new TextureAttributes(TextureAttributes.MODULATE,t3d,new Color4f(),TextureAttributes.NICEST);
        a.setTextureAttributes(texat);
        a.setMaterial(new Material());
        
        return a;
    }
    
    public BranchGroup setLicht() {
        
        BranchGroup model = new BranchGroup();
        
        // weißes SpotLicht
        SpotLight spot = new SpotLight();
        spot.setInfluencingBounds(new BoundingSphere());
        spot.setColor(new Color3f(1.0f,1.0f,1.0f));
        spot.setPosition(-8.0f, 10.0f, 5.0f);
        model.addChild(spot);
        
        // weißes SpotLicht
        SpotLight spot1 = new SpotLight();
        spot1.setInfluencingBounds(new BoundingSphere(new Point3d(0,0,0),50));
        spot1.setColor(new Color3f(1.0f,1.0f,1.0f));
        spot1.setPosition(8.0f, -10.0f, -5.0f);
        model.addChild(spot1);
        
        // Richtungsloses Umgebungslicht
        AmbientLight ambientLight = new AmbientLight();
        ambientLight.setInfluencingBounds(new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0));
        model.addChild(ambientLight);
        model.addChild(new AmbientLight(true, new Color3f(1.0f,1.0f,1.0f)));
        
        // Background erzeugen
        Background bg = new Background();
        bg.setColor(new Color3f(0.0f, 0.0f, 0.0f));
        bg.setApplicationBounds(new BoundingSphere());
        model.addChild(bg);
        
        model.compile();
        
        return model;
    }
    
    public Scene loadobj(String filename) {
        
        ObjectFile file = new ObjectFile(ObjectFile.RESIZE);
        Scene scene = null;
        try {
            scene = file.load(filename);
            System.out.println("erfolgreich geladen");
        } catch (FileNotFoundException ex) {
            System.out.println("nich da");
            System.exit(1);
        } catch (IncorrectFormatException ex) {
            ex.printStackTrace();
            System.exit(1);
        } catch (ParsingErrorException ex) {
            ex.printStackTrace();
            System.exit(1);
        }
        return scene;
    }
    
    
    // <editor-fold defaultstate="collapsed" desc=" Erzeugter Quelltext ">//GEN-BEGIN:initComponents
    private void initComponents() {

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );
    }// </editor-fold>//GEN-END:initComponents
    
    
    // Variablendeklaration - nicht modifizieren//GEN-BEGIN:variables
    // Ende der Variablendeklaration//GEN-END:variables
    
}
 

Marco13

Top Contributor
So im Nachhinein, beim n-ten durchlesen, und bei der Sache mit den Kollisionen, muss ich davon ausgehen, dass du was gaaaanz anderes gemeint hast: Du willst NICHT auf der Kugel rumalufen wie auf einer Welt(kugel) sondern eher wie auf einem Hügel, wo man am Rand runterfallen kann?!

EDIT: Neeee - dem Bild nach müßte das gepostete doch das sein, was du meintest ?! ???:L
 

Trekky

Mitglied
halt nein^^ das war testweise weil es anders net geklappt hat....das war ja das problem...
ich will eben doch auf der kugel laufen...wie auf der welt....nicht wie auf einem hügel!!!
habs nur nicht hinbekommen und dann erstmal so realisiert^^

edit: hammer genau das isses....hammer^^ dankeschön :) dann kanns endlich weitergehen im Projekt.
Könntest noch erklären wie genau du das jetzt realisiert hast? Matrix hatte ich noch nicht so ganz kapiert

Im Panel3D wird die Figur auf die Kugel gesetzt, richtig?
Und im Behaviour wird einfach die Rotation mit einer bzw 2 Matrizen gelöst?!
 

Marco13

Top Contributor
Matrix4f ist praktisch das gleiche wie eine Transform3D, nur ohne den Java3D-spezifischen Overhead. Eine 4x4-Matrix beschreibt (wie eine Transform3D) eine Affine Transformation im 3D-Raum, d.h. z.B. sowas wie eine Drehung und/oder Verschiebung. Wenn man zwei Matrizen miteinander multipliziert entspricht das eine Hintereinanderausführung der Transformationen, die durch die Matrizen beschrieben sind - ähnlich wie wenn man zwei TransformNodes hintereinander hängt.

Die Translation (auf die Kugeloberfläche) wird im Panel3D gesetzt - und die ist IMMER gleich (das macht eine Kugel ja aus :wink: ).

Das einzige, was sich ändert, ist die Rotation, die man vor der Translation ausführt. In der Behavior wird die "currentRotation" (in EINER Matrix) gespeichert. Jedes mal, wenn eine Taste gedrückt wird, wird eine Matrix erstellt, die die damit verbundene Rotation beschreibt (die "transform" in rotateX und rotateY). Diese Matrix wird dann von rechts an die "currentRotation" dranmultipliziert (d.h. diese Rotation wird VOR der "currentRotation" ausgeführt). Man kann sich das veranschaulichen (wobei ich bei der Reihenfolge auch immer wieder in's Stolpern komme :? meine Faustregel: Wenn irgendwas nicht stimmt, einfach mal die Reihenfolge der Matrix-Multiplikationen ändern - wenn es dann immernoch nicht stimmt, DANN kann man anfangen nachzudenken, wie es richtig sein müßte :wink: )
 

Trekky

Mitglied
wenn ich die Figur jetzt noch hochhüpfen lassen will, reicht es wenn ich dann ne neue TG reinmach mit ner langsamen Translation hoch und wieder runter?
Und ich die TG dann ganz vorne hinmach? also vor die TG mit der Translation?
 

Marco13

Top Contributor
Ja :roll:
(Du könntest auch direkt die erste Translation verändern (die wo ich dieses ominöse 4.65 für die Kugeloberfläche eingesetzt hatte) aber mit zwei Transformationen (eine für die Kugeloberfläche und eine für die Sprungbewegung) wird's vermutlich übersichtlicher.
 
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 Java3D Point Sound Spiele- und Multimedia-Programmierung 71
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

Ähnliche Java Themen

Neue Themen


Oben