我已经阅读了很多使用jogl的指南..但是我对所有演示应用程序都有同样的问题......
当我用jogl启动一个简单的应用程序并尝试用尺寸为500x500的窗口显示坐标(0,0),(10,15),(100,150)的3个点时,我只能看到(0,0)点。但如果我将坐标除以100,那么我就能看到所有点...为什么有一个巨大的尺度以及如何关闭?
import javax.media.opengl.*;
import javax.media.opengl.awt.GLCanvas;
import javax.swing.*;
import java.awt.*;
public class SimpleApp implements GLEventListener {
public static void main(String[] args) {
GLProfile glp = GLProfile.getDefault();
GLCapabilities caps = new GLCapabilities(glp);
GLCanvas canvas = new GLCanvas(caps);
canvas.addGLEventListener(new SimpleApp());
canvas.setPreferredSize(new Dimension(500,500));
final JFrame frame = new JFrame();
frame.getContentPane().add(canvas, BorderLayout.CENTER);
frame.setSize(500, 500);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
SwingUtilities.invokeLater(
new Runnable() {
public void run() {
frame.setVisible(true);
}
}
);
}
@Override
public void init(GLAutoDrawable glAutoDrawable) {
}
@Override
public void dispose(GLAutoDrawable glAutoDrawable) {
}
@Override
public void display(GLAutoDrawable glAutoDrawable) {
GL2 gl2 = glAutoDrawable.getGL().getGL2();
gl2.glColor3d(1,0.5,1);
gl2.glBegin(GL.GL_POINTS);
gl2.glVertex2i(0,0);
gl2.glVertex2i(1,1);
gl2.glVertex2i(1,2);
gl2.glEnd();
}
@Override
public void reshape(GLAutoDrawable glAutoDrawable, int i, int i2, int i3, int i4) {
}
}
答案 0 :(得分:0)
你的观点必须在你的观点中。使用JOGL需要清楚地了解OpenGL等计算机图形。您可以查看我的简单示例here。您应该学习如何设置视口,投影矩阵和模型视图矩阵。
此外,应在its official forum上询问JOGL特有的问题。