Mega Code Archive

 
Categories / Java / 3D Graphics
 

Texture Mapping

import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import java.awt.GraphicsConfiguration; import java.net.MalformedURLException; import java.net.URL; import javax.media.j3d.Appearance; import javax.media.j3d.BranchGroup; import javax.media.j3d.Canvas3D; import javax.media.j3d.Texture2D; import javax.media.j3d.Transform3D; import javax.media.j3d.TransformGroup; import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.geometry.Box; import com.sun.j3d.utils.image.TextureLoader; import com.sun.j3d.utils.universe.SimpleUniverse; /**  * !Diese Klasse wurde fur das Laden uber ein JAR-Archiv und Applet welches ein  * JAR - Archiv nutzt angepasst Um das Programm als einfache Applikation uber  * einen class-File laufen zu lassen bitte auf den Code zum Einladen der Textur  * im Tutorial zuruckgreifen!  */ public class TextureMapping extends Applet {   /**    * init Methoden fur die Darstellung als Applet    */   public void init() {     setLayout(new BorderLayout());     GraphicsConfiguration config = SimpleUniverse         .getPreferredConfiguration();     canvas3D = new Canvas3D(config);     add("Center", canvas3D);     BranchGroup szene = macheSzene();     szene.compile();     universe = new SimpleUniverse(canvas3D);     universe.getViewingPlatform().setNominalViewingTransform();     universe.addBranchGraph(szene);   }   /**    * Erstellt den Szenegraphen    *     * @return BranchGroup    */   public BranchGroup macheSzene() {     BranchGroup objWurzel = new BranchGroup();     // Transformation, 2 Rotationen:     Transform3D drehung = new Transform3D();     Transform3D drehung2 = new Transform3D();     drehung.rotX(Math.PI / 4.0d);     drehung2.rotY(Math.PI / 5.0d);     drehung.mul(drehung2);     TransformGroup objDreh = new TransformGroup(drehung);     objDreh.addChild(new Box(0.5f, 0.5f, 0.5f, Box.GENERATE_TEXTURE_COORDS,         makeAppearance()));     objWurzel.addChild(objDreh);     return objWurzel;   }   /**    * Wurfeldarstellung    *     * @return Appearance    */   private Appearance makeAppearance() {     Appearance a = new Appearance();     TextureLoader loader = null;     if (getCodeBase() != null)       try {         // Laden der Obj Datei als Applet mit jar         loader = new TextureLoader(new URL("jar:" + getCodeBase()             + "TextureMapping.jar!/burnstone.jpg"), null);       } catch (MalformedURLException e) {         e.printStackTrace();       }     else       // Laden der Obj Datei mittels jar       loader = new TextureLoader(ClassLoader           .getSystemResource("burnstone.jpg"), null);     Texture2D texture = (Texture2D) loader.getTexture();     a.setTexture(texture);     return a;   }   /**    * gibt speicher frei    */   public void destroy() {     universe.removeAllLocales();   }   public static void main(String[] args) {     frame = new MainFrame(new TextureMapping(), 500, 500);     frame.setTitle("Texture");   }   //---- Attribute -----------------------   private SimpleUniverse universe;   private Canvas3D canvas3D;   private static Frame frame; }