• 大小: 4.5MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-15
  • 语言: Java
  • 标签: java  jogl  opengl  

资源简介

这是一个印度的大学教授写的,学jogl 的可以看看,很不错。这是java 与 opengl 结合的小例子,有导入模型的。和声音,如果不错你就顶

资源截图

代码片段和文件信息


// ModelLoaderGL.java
// Andrew Davison November 2006 ad@fivedots.coe.psu.ac.th

/* A Jframe contains a JPanel which holds a GLCanvas. The GLCanvas
   displays a loaded OBJ model which may be rotating. The model
   is scaled and centered at the origin. The scaling is controlled
   by the maxSize value which specifies the maximum size of the
   model‘s largest dimension.

   The listener for the canvas is ModelLoaderGLListener and the updates
   to the canvas‘ display are triggered by FPSAnimator using 
   fixed-rate scheduling.

   The code uses the JSR-231 1.0.0 release build of JOGL 
   14th September 2006.

   Usage:
      runGL modelGL  [max-size] [-nr]

   The OBJ name is assumed to be for a file in the “models/“ 
   subdirectory and the “.OBJ“ extension is added automatically.

   If a “max-size“ value is not specified then MAX_SIZE is used.
   “-nr“ means “no rotation“ so the default action is to rotate the
   model.
*/

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

import javax.media.opengl.GLCanvas;
import javax.swing.Jframe;
import javax.swing.JPanel;

import com.sun.opengl.util.FPSAnimator;


public class ModelLoaderGL extends Jframe
{
  private static int DEFAULT_FPS = 80;
  private static final int PWIDTH = 512;   // initial size of panel
  private static final int PHEIGHT = 512; 
  private static final float MAX_SIZE = 4.0f;  // for a model‘s dimension

  private ModelLoaderGLListener listener;
  private FPSAnimator animator;



  public ModelLoaderGL(String nm float maxSize boolean doRotate) 
  {
    super(“ModelLoaderGL“);
 
    System.out.println(“Max model size: “ + maxSize);
    System.out.println(“Rotating: “ + doRotate);

    
    Container c = getContentPane();
    c.setLayout( new BorderLayout() );   
    JPanel p = makeRenderPanel(nm maxSize doRotate);
    c.add(p BorderLayout.CENTER);
  
    addWindowListener( new WindowAdapter() {
      public void windowClosing(WindowEvent e)
      /* The animator must be stopped in a different thread from
         the AWT event queue to make sure that it completes before
         exit is called. */
      { new Thread( new Runnable() {
          public void run() {
            animator.stop();
            System.exit(0);
          }
        }).start();
      } // end of windowClosing()
    });

    pack();
    setVisible(true);

    animator.start();
  } // end of ModelLoaderGL()

  /**Construct a GLCanvas in a JPanel and add a 
  listener and animator. */
  private JPanel makeRenderPanel(String nm float maxSize boolean doRotate)
 {
    JPanel renderPane = new JPanel(); 
    renderPane.setLayout( new BorderLayout() );
    renderPane.setOpaque(false);    
    renderPane.setPreferredSize( new Dimension(PWIDTH PHEIGHT));
 
   //添加JOGL特性
    GLCanvas canvas = new GLCanvas(); 
    File filename=new File(“../src/models/“+nm);    
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2007-05-30 11:17  jogl2\
     文件         644  2007-05-30 13:44  jogl2\.classpath
     文件         381  2007-05-30 11:17  jogl2\.project
     目录           0  2007-06-14 14:13  jogl2\bin\
     文件         848  2007-06-14 14:17  jogl2\bin\ModelLoaderGL$1$1.class
     文件         881  2007-06-14 14:17  jogl2\bin\ModelLoaderGL$1.class
     文件        3371  2007-06-14 14:17  jogl2\bin\ModelLoaderGL.class
     文件        3439  2007-06-14 14:13  jogl2\bin\ModelLoaderGLListener.class
     目录           0  2007-06-14 14:13  jogl2\bin\models\
     文件         246  2007-05-30 11:18  jogl2\bin\models\barbell.mtl
     文件       14326  2007-05-30 11:18  jogl2\bin\models\barbell.obj
     文件      307864  2007-06-14 13:57  jogl2\bin\models\beisishou2.md2
     文件      355326  2007-06-14 13:57  jogl2\bin\models\beisishou2.png
     文件         126  2007-05-30 11:18  jogl2\bin\models\colorCube.mtl
     文件         431  2007-05-30 11:18  jogl2\bin\models\colorCube.obj
     文件          35  2007-05-30 11:08  jogl2\bin\models\couch.mtl
     文件       80177  2007-05-30 11:08  jogl2\bin\models\couch.obj
     文件        2781  2007-05-30 11:08  jogl2\bin\models\formula.mtl
     文件      709155  2007-05-30 11:08  jogl2\bin\models\formula.obj
     文件         205  2007-05-30 11:18  jogl2\bin\models\heli.mtl
     文件       75149  2007-05-30 11:18  jogl2\bin\models\heli.obj
     文件        2321  2007-05-30 11:08  jogl2\bin\models\metal.jpg
     文件          69  2007-05-30 11:18  jogl2\bin\models\pawn.mtl
     文件       22717  2007-05-30 11:18  jogl2\bin\models\pawn.obj
     文件       27313  2007-05-30 11:08  jogl2\bin\models\penguin.gif
     文件         179  2007-05-30 11:08  jogl2\bin\models\penguin.mtl
     文件       14325  2007-05-30 11:08  jogl2\bin\models\penguin.obj
     文件         465  2007-05-30 11:08  jogl2\bin\models\rose+vase.mtl
     文件      368428  2007-05-30 11:08  jogl2\bin\models\rose+vase.obj
     目录           0  2007-06-14 14:13  jogl2\bin\OBJLoader\
     文件        2478  2007-06-14 14:13  jogl2\bin\OBJLoader\FaceMaterials.class
............此处省略46个文件信息

评论

共有 条评论