Membuat Human 3D Dengan Java 3D

Halo guys, kali ini aku mau share project kuliah aku dulu waktu semester tiga. Saya kepikiran daripada dibekam terus dilaptop mending di share aja, siapa tau berkhasiat hehe. Disini aku menciptakan bentuk/kerangka human 3 dimensi. Bentuknya masih garang banget, belum ada modelling, texture dan lainnya. Cuma berbentuk polosan saja, adalah sejumlah objek – objek yang digabungkan sehingga ibarat bentuk human tiga dimensi.

Oke eksklusif ke TKP gan.
/**  *  * @author Wim Sonevel  */ import com.sun.j3d.utils.applet.MainFrame; import com.sun.j3d.utils.behaviors.mouse.MouseRotate; import com.sun.j3d.utils.geometry.Cylinder; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.Sphere; import java.awt.*; import javax.media.j3d.*; import javax.swing.*; import javax.vecmath.*; public class Human3D extends JApplet{      TransformGroup body;     TransformGroup tgBola;     TransformGroup tgBadan;     TransformGroup tgBahu;     TransformGroup tgLengan;     TransformGroup tgTangan;     TransformGroup tgKaki;      Sphere bola;     Cylinder silinder;      Transform3D trans = new Transform3D();     Vector3f vector = new Vector3f();      public Human3D(){         setLayout(new BorderLayout());         GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();         Canvas3D canvas = new Canvas3D(config);         add("Center",canvas);          BranchGroup scene = createSceneGraph();         scene.compile();          SimpleUniverse simU = new SimpleUniverse(canvas);         simU.getViewingPlatform().setNominalViewingTransform();         simU.addBranchGraph(scene);     }      Appearance apr(float r, float g, float b){         Color3f red = new Color3f(r,g,b);         Color3f black = new Color3f(0.0f,0.0f,0.0f);         Color3f white = new Color3f(1.0f,1.0f,1.0f);         //mix warna         Material material = new Material(red, black, red, white, 100);         Appearance appearance = new Appearance();         appearance.setMaterial(material);         return appearance;     }      Transform3D transform(float x, float y, float z) {         vector.set(x, y, z);         trans.set(vector);         return trans;     }      void draw(){               body = new TransformGroup();         body.setTransform(transform(0.0f, 0.0f, 0.0f));          tgBola = new TransformGroup();         tgBola.setTransform(transform(0.0f, 3.0f, 0.0f));         bola = new Sphere(1.0f, apr(1.0f, 0.0f, 0.0f));         tgBola.addChild(bola);         body.addChild(tgBola);          tgBadan = new TransformGroup();         tgBadan.setTransform(transform(0.0f, 0.2f, 0.0f));         silinder = new Cylinder(1.5f, 3.5f, apr(1.0f, 0.0f, 0.0f));         tgBadan.addChild(silinder);         body.addChild(tgBadan);          tgBahu = new TransformGroup();         tgBahu.setTransform(transform(-1.95f, 1.5f, 0.0f));         bola = new Sphere(0.45f, apr(1.0f, 0.0f, 0.0f));         tgBahu.addChild(bola);         body.addChild(tgBahu);          tgBahu = new TransformGroup();         tgBahu.setTransform(transform(1.95f, 1.5f, 0.0f));         bola = new Sphere(0.45f, apr(1.0f, 0.0f, 0.0f));         tgBahu.addChild(bola);         body.addChild(tgBahu);          tgLengan = new TransformGroup();         tgLengan.setTransform(transform(-1.95f, 0.1f, 0.0f));         silinder = new Cylinder(0.4f, 2.5f, apr(1.0f, 0.0f, 0.0f));         tgLengan.addChild(silinder);         body.addChild(tgLengan);          tgLengan = new TransformGroup();         tgLengan.setTransform(transform(1.95f, 0.1f, 0.0f));         silinder = new Cylinder(0.4f, 2.5f, apr(1.0f, 0.0f, 0.0f));         tgLengan.addChild(silinder);         body.addChild(tgLengan);          tgTangan = new TransformGroup();         tgTangan.setTransform(transform(1.95f, -1.2f, 0.0f));         bola = new Sphere(0.4f, apr(1.0f, 0.0f, 0.0f));         tgTangan.addChild(bola);         body.addChild(tgTangan);          tgTangan = new TransformGroup();         tgTangan.setTransform(transform(-1.95f, -1.2f, 0.0f));         bola = new Sphere(0.4f, apr(1.0f, 0.0f, 0.0f));         tgTangan.addChild(bola);         body.addChild(tgTangan);          tgKaki = new TransformGroup();         tgKaki.setTransform(transform(0.7f, -3.0f, 0.0f));         silinder = new Cylinder(0.5f, 3.0f, apr(1.0f, 0.0f, 0.0f));         tgKaki.addChild(silinder);         body.addChild(tgKaki);          tgKaki = new TransformGroup();         tgKaki.setTransform(transform(-0.7f, -3.0f, 0.0f));         silinder = new Cylinder(0.5f, 3.0f, apr(1.0f, 0.0f, 0.0f));         tgKaki.addChild(silinder);         body.addChild(tgKaki);     }     BranchGroup createSceneGraph(){         BranchGroup root = new BranchGroup();          TransformGroup objScale = new TransformGroup();         //membuat transformasi         Transform3D scaleTrans = new Transform3D();         scaleTrans.set(1/6.0f);         objScale.setTransform(scaleTrans);         root.addChild(objScale);          //objek transformasi         TransformGroup objTrans = new TransformGroup();         objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);         objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);         objScale.addChild(objTrans);          draw();         objTrans.addChild(body);          BoundingSphere bounds = new BoundingSphere(new Point3d(), 100);         Background bg = new Background(new Color3f(1.0f, 1.0f, 1.0f));         bg.setApplicationBounds(bounds);         objTrans.addChild(bg);          //mengatur mouse         MouseRotate mr = new MouseRotate();         mr.setTransformGroup(objTrans);         mr.setSchedulingBounds(bounds);         mr.setFactor(0.007);         objTrans.addChild(mr);          //mengatur jelas         Color3f ambientColor = new Color3f(0.1f, 0.1f, 0.1f);         //penyebaran         AmbientLight ambientLightNode = new AmbientLight(ambientColor);         ambientLightNode.setInfluencingBounds(bounds);         root.addChild(ambientLightNode);         Color3f light1Color = new Color3f(1.0f, 1.0f, 1.0f);         Vector3f light1Direction = new Vector3f(-0.2f, 0.0f, -0.8f);         DirectionalLight light1 = new DirectionalLight(light1Color, light1Direction);         light1.setInfluencingBounds(bounds);         root.addChild(light1);          return root;     }     public static void main(String[] args) {         Frame frame = new MainFrame(new Human3D(), 500,400);         frame.setTitle("Human 3D");         frame.setLocationRelativeTo(null);     } }  

Outputnya :


Sekian dan supaya bermanfaat

Comments

Popular posts from this blog

Tugas Komplemen Terakhir

Transmisi Data

Konsep Oop Encapsulation