Java3D installation (idea version)

During the period of learning computer graphics, the school chose the relatively unpopular Java3D, and there are few installation tutorials on the Internet. The installation tutorials are for reference only.

1. JDK installation

JDK click to download
You can download the stable version 1.8 or 11. Remember to configure the environment on my computer here. Because there are many tutorials, I will not repeat them here.

2. Java 3D 1.5.1

Click to download Java3d
Select according to your own system, for example, if I use windows, select java3d-1-5-1-windows-i586.exe (representing 32 bits)

Note here that the number of bits of JDK and Java3D needs to be the same , for example, JDK uses 32 bits, and the Java3D library also needs 32 bits.

3. Installation of idea

Idea click to download
to download the community version, if there is an activation code or other ways to download the ultimate version

After the above three installations are installed, you can open the idea for configuration


  • ddl file configuration
    Copy the ddl file in the Java3D bin directory file to the JDK bin directory, otherwise an exception UnsatisfiedLinkError will be reported
    insert image description here

  • Open the idea, select the environment, create a project,
    right-click the environment under External Libraries, and open the library settings
    insert image description here

  • Add jar package
    insert image description here

  • Find the installation location of java3d, the default is to import the jar package in the following path
    \Java3D\1.5.1\lib\ext (64 version of Java installation path may not be (x86))


    insert image description here

  • Finally test the results with the code

package com.codeslogan.Test;

import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.GraphicsConfiguration;

/**
 * Simple Java 3D example program to display a spinning cube.
 */
public class HelloUniverse extends javax.swing.JFrame {
    
    

    private SimpleUniverse univ = null;
    private BranchGroup scene = null;

    public BranchGroup createSceneGraph() {
    
    
        // Create the root of the branch graph
        BranchGroup objRoot = new BranchGroup();

        // Create the TransformGroup node and initialize it to the
        // identity. Enable the TRANSFORM_WRITE capability so that
        // our behavior code can modify it at run time. Add it to
        // the root of the subgraph.
        TransformGroup objTrans = new TransformGroup();
        objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
        objRoot.addChild(objTrans);

        // Create a simple Shape3D node; add it to the scene graph.
        objTrans.addChild(new ColorCube(0.4));

        // Create a new Behavior object that will perform the
        // desired operation on the specified transform and add
        // it into the scene graph.
        Transform3D yAxis = new Transform3D();
        Alpha rotationAlpha = new Alpha(-1, 4000);

        RotationInterpolator rotator =
                new RotationInterpolator(rotationAlpha, objTrans, yAxis,
                        0.0f, (float) Math.PI*2.0f);
        BoundingSphere bounds =
                new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
        rotator.setSchedulingBounds(bounds);
        objRoot.addChild(rotator);

        // Have Java 3D perform optimizations on this scene graph.
        objRoot.compile();

        return objRoot;
    }

    private Canvas3D createUniverse() {
    
    
        // Get the preferred graphics configuration for the default screen
        GraphicsConfiguration config =
                SimpleUniverse.getPreferredConfiguration();

        // Create a Canvas3D using the preferred configuration
        Canvas3D c = new Canvas3D(config);

        // Create simple universe with view branch
        univ = new SimpleUniverse(c);

        // This will move the ViewPlatform back a bit so the
        // objects in the scene can be viewed.
        univ.getViewingPlatform().setNominalViewingTransform();

        // Ensure at least 5 msec per frame (i.e., < 200Hz)
        univ.getViewer().getView().setMinimumFrameCycleTime(5);

        return c;
    }

    /**
     * Creates new form HelloUniverse
     */
    public HelloUniverse() {
    
    
        // Initialize the GUI components
        initComponents();

        // Create Canvas3D and SimpleUniverse; add canvas to drawing panel
        Canvas3D c = createUniverse();
        drawingPanel.add(c, java.awt.BorderLayout.CENTER);

        // Create the content branch and add it to the universe
        scene = createSceneGraph();
        univ.addBranchGraph(scene);
    }

    // ----------------------------------------------------------------

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
    private void initComponents() {
    
    
        drawingPanel = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("HelloUniverse");
        drawingPanel.setLayout(new java.awt.BorderLayout());

        drawingPanel.setPreferredSize(new java.awt.Dimension(250, 250));
        getContentPane().add(drawingPanel, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
    
    
        java.awt.EventQueue.invokeLater(new Runnable() {
    
    
            public void run() {
    
    
                new HelloUniverse().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JPanel drawingPanel;
    // End of variables declaration//GEN-END:variables

}

insert image description here

  • Successful installation! !

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324128276&siteId=291194637