JOGL测试
来源:互联网 发布:网络用语棒子什么意思 编辑:程序博客网 时间:2024/06/05 14:22
JOGL是JAVA通过JNI的方式调用OpenGL的封装。
给出一个简单Demo(所需依赖,不是最小依赖,有多余的jar和DLL)
1、环境配置
依赖jar包:
指定native库
工程配置和javacv配置过程类似:指定依赖的jar包、dll库。
2、使用JOGL显示三角形
公共类:OneTriangle,进行OpenGL的初始化、绘图。
import com.jogamp.opengl.GL;import com.jogamp.opengl.GL2;import com.jogamp.opengl.glu.GLU;public class OneTriangle { //初始化 protected static void setup( GL2 gl2, int width, int height ) { gl2.glMatrixMode( GL2.GL_PROJECTION ); gl2.glLoadIdentity(); // coordinate system origin at lower left with width and height same as the window GLU glu = new GLU(); glu.gluOrtho2D( 0.0f, width, 0.0f, height ); gl2.glMatrixMode( GL2.GL_MODELVIEW ); gl2.glLoadIdentity(); gl2.glViewport( 0, 0, width, height ); } //渲染 protected static void render( GL2 gl2, int width, int height ) { gl2.glClear( GL.GL_COLOR_BUFFER_BIT ); // draw a triangle filling the window gl2.glLoadIdentity(); //绘制图元:三角形 gl2.glBegin( GL.GL_TRIANGLES ); //第一个点以及颜色 gl2.glColor3f( 1, 0, 0 ); gl2.glVertex2f( 0, 0 ); //第二个点以及颜色 gl2.glColor3f( 0, 1, 0 ); gl2.glVertex2f( width, 0 ); //第三个点以及颜色 gl2.glColor3f( 0, 0, 1 ); gl2.glVertex2f( width / 2, height ); gl2.glEnd(); }}
OneTriangleSwingGLCanvas:显示三角形
package com.test;import java.awt.BorderLayout;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;import com.jogamp.opengl.GLAutoDrawable;import com.jogamp.opengl.GLCapabilities;import com.jogamp.opengl.GLEventListener;import com.jogamp.opengl.GLProfile;import com.jogamp.opengl.awt.GLCanvas;public class OneTriangleSwingGLCanvas { public static void main( String [] args ) { GLProfile glprofile = GLProfile.getDefault(); GLCapabilities glcapabilities = new GLCapabilities( glprofile ); final GLCanvas glcanvas = new GLCanvas( glcapabilities );//添加监听 glcanvas.addGLEventListener( new GLEventListener() { @Override public void reshape( GLAutoDrawable glautodrawable, int x, int y, int width, int height ) { OneTriangle.setup( glautodrawable.getGL().getGL2(), width, height ); } @Override public void init( GLAutoDrawable glautodrawable ) { } @Override public void dispose( GLAutoDrawable glautodrawable ) { } @Override public void display( GLAutoDrawable glautodrawable ) {//调用渲染方法,进行渲染 OneTriangle.render( glautodrawable.getGL().getGL2(), glautodrawable.getSurfaceWidth(), glautodrawable.getSurfaceHeight() ); } });//创建绘图窗口 final JFrame jframe = new JFrame( "JAVA下的OpenGL实现" ); jframe.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent windowevent ) { jframe.dispose(); System.exit( 0 ); } });//将GL渲染的图,显示到窗口中 jframe.getContentPane().add( glcanvas, BorderLayout.CENTER ); jframe.setSize( 640, 480 ); jframe.setVisible( true ); }}
结果展示:
0 0
- JOGL测试
- JOGL再测试
- JOGL终于测试成功了
- jogl
- JOGL
- JOGL
- JOGL
- JOGL-简介
- Learn JOGL
- jogl入门
- JOGL FirstDemo
- jogl入门
- j3d vs jogl
- JOGL简介与安装
- JOGL下载地址
- jogl基础入门学习
- JOGL简介与安装
- JOGL in Eclipse
- Core Graphics图形变换
- pythonanywhere下django无法匹配url问题解决
- 【Android UI】SlidingTabLayout使用小结
- ArcGIS API for JavaScript 需要在DoJo中加载的资源
- 聚类算法实践(1)——层次、K-means聚类
- JOGL测试
- bind query.c
- text
- 项目
- 《编程珠玑》阅读小记(3) — 数据决定数据结构
- C Primer Plus 第三章
- seo优化如何写出高质量的文章
- poj2255Tree Recovery
- Android Fragment嵌套使用问题总结