JOGL入门 第1课

需要下载源代码的请到 JOGL 第5课 纹理(bmp) 下载 教程.rar


刚开始接触java觉得很好玩,弄东弄西,玩了N多3D游戏,自己也想学习学习,

网上找java有关3D方面的资料,还真是难找,想想在学习VC++下OpenGL编程,我在

NeHe那里得到了很多帮助,因而自己一边学一边写点,目的是能给大家入门提供点帮助吧。



首先我用的是Eclipse 3.2 +JOGL

1.下载jdk,JGOL包,Eclipse 3.2

jdk,Eclipse网上可以随便找到

JOGL:我这里用的是

https://jogl.dev.java.net/

下载jogl-1.1.2-pre-20080523-windows-i586.zip

解压出来,我们要用到的就是lib文件夹里面的东西了



2.新建个项目,如:Myjava3d,右键点击->Properties(属性),

Java Build Path(java构建路径)-> Libraries(库),添加外部库,

把刚才解压出来的lib中的gluegen-rt.jar,jogl.jar;加进去

点击jogl.jar->Native library location->Edit,把选择刚才的lib文件夹

还有把lib里面的DLL文件



3.开始我们的第1个JOGL,

新建一个类 FirstJOGL



import java.awt.event.*;



import javax.media.opengl.*;

import javax.media.opengl.glu.*;

import javax.swing.*;





public class FirstJOGL extends JFrame implements GLEventListener, KeyListener, MouseListener

{

private GL gl;

  private GLU glu;

  private GLCapabilities caps;

  private GLCanvas canvas;

  private MouseEvent mouse;

                                 





  public FirstJOGL()

  {

    super("FirstJOGL");



    caps = new GLCapabilities();

    canvas = new GLCanvas(caps);

    canvas.addGLEventListener(this);

    canvas.addKeyListener(this);

    canvas.addMouseListener(this);

    getContentPane().add(canvas);

  }



  public void run()

  {

    setSize(800, 600);

    setLocationRelativeTo(null);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setVisible(true);

    canvas.requestFocusInWindow();

    canvas.swapBuffers();

  }



  public static void main(String[] args)

  {

    new FirstJOGL().run();

   

  }



  public void init(GLAutoDrawable drawable)

  {

    gl = drawable.getGL();

    glu = new GLU();

    gl.glShadeModel(GL.GL_SMOOTH);

    gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

    gl.glClearDepth(1.0f); // 设置深度缓存

    gl.glEnable(GL.GL_DEPTH_TEST); // 启用深度测试

    gl.glDepthFunc(GL.GL_LEQUAL);

    gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST); // 告诉系统对透视进行修正 

  }



  public void display(GLAutoDrawable drawable)

  {

    GL gl = drawable.getGL();

    gl.glClear(GL.GL_COLOR_BUFFER_BIT);    //清除颜色缓冲

    gl.glLoadIdentity();    //重置矩阵

    gl.glTranslatef(0.0f, 0.0f, -6.0f);    //向内(Z轴负方向)移动6

    gl.glColor3f(0.0f, 1.0f, 0.0f);        //设置颜色(r,g,b)绿色

    gl.glBegin(GL.GL_QUADS);               //开始绘制多边形

       gl.glVertex3f(-1.0f, -1.0f, 0.0f);  //第1个顶点

       gl.glVertex3f(1.0f, -1.0f, 0.0f);   //第2个顶点

       gl.glVertex3f(1.0f, 1.0f, 0.0f);    //第3个顶点

       gl.glVertex3f(-1.0f, 1.0f, 0.0f);   //第4个顶点

    gl.glEnd();



  }



  public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h)

  {

    GL gl = drawable.getGL();

   

    gl.glViewport(0, 0, w, h);   //视见区域

    gl.glMatrixMode(GL.GL_PROJECTION);//哪一个矩阵堆栈

    gl.glLoadIdentity(); //重置矩阵

    glu.gluPerspective(45.0, (float) w / (float) h, 1.0, 100.0);//创建透视矩阵

    gl.glMatrixMode(GL.GL_MODELVIEW);

    gl.glLoadIdentity();

  }



  public void displayChanged(GLAutoDrawable drawable, boolean modeChanged,

      boolean deviceChanged)

  {



  }



  public void keyTyped(KeyEvent key)

  {

  }



  public void keyPressed(KeyEvent key)

  {



    switch (key.getKeyCode()) {

      case KeyEvent.VK_ESCAPE:

        System.exit(0);

        break;



      default:

        break;

    }



  }



  public void keyReleased(KeyEvent key)

  {

  }



  public void mouseClicked(MouseEvent e)

  {

  }



  public void mousePressed(MouseEvent e)

  {

  }



  public void mouseReleased(MouseEvent e)

  {

  }



  public void mouseEntered(MouseEvent e)

  {

  }



  public void mouseExited(MouseEvent e)

  {

  }

} 

这就是我的第1个JOGL程序,代码很简单吧,这里实现了绘制一个绿色的四边形



声明:




     刚开始学习opengl的时候,在网上找了很久,终于找到NeHe的教程,从中得到了很多

     我也希望我自己东拼西凑弄共享给大家,我也希望有更多的人加入进来,

     引用时请声明此点,如果有问题请多多指教,大家互相帮助了我的E-mail:huangchunquanmaker@163.com

 

macOS下搭建JOGL (Eclipse) 前期准备工作 1.一台macOS电脑 2.Java 3.Eclipse Java和Eclipse的搭建我之后会出,网上也有很多的资料。请大家首先确保你的mac上安装了Java和Eclipse,确认无误之后我们按照下面的步骤一步一步来,你的JOGL一定可以搭建成功的。 1.下载JOGL 首先我们需要下载一些安装JOGL所需要的文件。点开链接后我们会看到如下的界面 然后我们首先找到 gluegen-b937-937/ 这个文件,单击点开。如果在这个文件下面增加了更新的版本,那么请点开最新的版本。点开后我们找到 阅读详情

相关推荐

JOGL入门:通过长方体绘制3D机器人模型

JOGL是Java社区向OpenGL世界的一个桥梁,它允许Java开发者利用OpenGL强大的图形处理能力。与其它Java图形API相比,JOGL以其性能和灵活性脱颖而出,尤其适合于复杂的图形应用。世界坐标系是OpenGL中用于定义物体原始位置和方向的全局坐标系。在此坐标系中,每个物体都有一个唯一的坐标位置,可以认为是一个绝对的参考框架。世界坐标系的主要作用是提供一个共同参照点,使得所有物体能够相对于彼此进行定位和变换。

weixin_35433448的博客 1302

JOGL教程_编程入门自学教程_菜鸟教程-免费教程分享

Java支持OpenGL(JOGL)是在Java OpenGL图形API结合。它是一个包装库,它可以访问OpenGL API,并且它被设计来创建Java编码的2D和3D图形应用程序。它允许将 OpenGL 与 Java 编程语言一起使用,因此,程序员可以在 JOGL 的帮助下轻松地将计算机图形嵌入 Java 代码中。JOGL 是一个开源库,可以访问 OpenGL 的完整 API。因此,它继承了 OpenGL 的所有特性。

banzhuan_it的博客 653

jogl 教程4合1 Java

英文版的jogl 4合1教程,很不错个人觉得jogl 比j3d要好

JOGL 从入门到精通:开启 Java 3D 图形编程之旅

JOGL 是一个 Java 绑定的 OpenGL 库,它允许 Java 程序利用 OpenGL 的强大图形渲染能力。OpenGL 是一个跨平台的图形 API,提供了丰富的函数和方法来创建、操作和渲染 2D 和 3D 图形。JOGL 通过 Java 本地接口(JNI)将这些功能封装起来,使得 Java 开发者可以使用熟悉的 Java 语法来调用 OpenGL 的函数,从而在 Java 应用程序中实现高性能的图形处理。

candy的博客 2559

jogl简单入门例子,15个例子,JOGL1.0,2.0的jar包

jogl简单入门例子,15个例子,已经包含了JOGL1.0,2.0的jar包

Nehe Jogl教程

Nehe三维教程Jogl版

《jogl简明教程》学习笔记3

双缓冲 在1.2.3节的时候有一个示例 代码如下 import javax.media.opengl.*; import com.sun.opengl.util.Animator; import java.awt.event.*; //built on J1_O_Point class public class J1_1_Point extends J1_0_Point { static Ani

93吸血鬼的学习笔记 1465

JOGL入门教程,入门代码例子

这个是我刚刚学JOGL的时候找到的一份资料,很适合JOGL的初学者,内容是E文的,但都是通俗易懂的,只要一点点英语基础就可以理解,现在JOGL的资料很少,希望对想学而又找不到资料的朋友有点帮助

JAVA的OPENGL,JOGL入门实例----碰撞移动的正方体 (配置+源代码)

我的配置方法: 下载jogl-1.1.1a-windows-i586.zip,(http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.1a/)解压后找出lib中的四个dll文件,复制到C盘windows/system32下面(其实放在PATH环境变量里面的任一个文件夹下都是可以的),然后在工程新建文件夹lib,把解压得到的两

sidihuo的专栏 8335

Java程序中的OpenGL(JOGL学习教程)

Java程序中的OpenGL(JOGL学习教程)

unity打包流程整理-Windows/Mac/Linux平台

1.Platform(平台)功能: 选择目标构建的目标平台选项PC, Mac & Linux Standalone: 适用于 Windows、Mac 和 Linux 平台2.Target Platform(目标平台)功能: 选择具体的操作系统版本选项Windows: 针对 Windows 操作系统Mac: 针对 macOS 操作系统Linux: 针对 Linux 操作系统3.Architecture(架构)功能: 选择应用程序的目标处理器架构选项x86: 针对 32 位系统。

weixin_42333247的博客 5138

JOGL学习(1)—— 第一个JOGL程序

这里写一个最简单的JOGL程序,证明配置成功,并且做一点简单的说明: package t1; import java.awt.Frame; import com.jogamp.opengl.GLAutoDrawable; import com.jogamp.opengl.GLCapabilities; import com.jogamp.opengl.GLEventListener; imp...

去流浪 2007

Ubuntu20.04实时内核补丁PREEMPT_RT编译与安装全流程解析

本文详细解析了在Ubuntu20.04系统上编译与安装实时内核补丁PREEMPT_RT的全流程。从内核与补丁版本匹配、编译环境准备,到内核配置、编译排错,再到最终安装、验证与进阶优化,提供了手把手的实战指南,旨在帮助机器人、工业控制等对实时性有苛刻要求的开发者构建低延迟、高确定性的Linux系统。

weixin_29213827的博客 187

jogl入门

1、jogl是什么? jogl是Java OpenGL的简称,想真正的了解它,就需要了解OpenGL,OpenGL是Open Graphics Library,它是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库,请参考http://baike.baidu.com/view/9222.htm

沙舟狼客 5184

【Unity3D】关于unity中spriteAtlas的打包方案及使用时内存状态的多组对照实验

unity项目中使用精灵(Sprite)为了降低性能消耗,我们可以使用精灵图集(Sprite Atlas)技术,它能够将多个纹理合并成一个大纹理

云渊寒烬 5101

Java Bindings for OpenGL 1 - JOGL简介与安装

JOGL 是 JAVA Bindings for OpenGL  的缩写,它允许用户通过API在JAVA中调用OpenGL函数,从而在JAVA中也能写出硬件支持的3D程序。对于熟悉OpenGL的用户,Jogl非常容易上手,因为大部分语句和OpenGL是完全相同的。JOGL的安装:JOGL由于现在还无官方版本,因此并不包含在Sun的JAVA包中。安装JOGL,用户必须自己手动安装。安装JOGL之前,

ncfreedom的专栏 4577

验证(uvm常见问题)--子类和父类的句柄和对象问题

sv中的子类和父类 在sv中,有如下两个类,child继承于parent。然后在test module中,正确转换的方法如下面所示。其中c1,c2,p1 都指向了同一个子类的对象c1。总结如下: 一个子类的对象是包括子类的成员变量,方法和父类的成员变量,方法。 子类的句柄c1可以直接赋值给父类的句柄p1,此时p1只可以访问父类的成员变量和方法,或者子类的虚方法,比如下面调用p1.display是...

q876507447的博客 7633

(废弃)JOGL入门 第5课

[size=large][color=red]声明:[/color][/size][color=blue] 本来是想写点东西,记录学习的过程,并希望能帮助同我一样刚刚学习JOGL的朋友们 可是由于没有明确目的,好心做了坏事,在这里先声明,本来是学习基本的JOGL,在 学习过程中却把朋友们带入到了JOGL+GL4java中,基本的没学扎实,这是很错误的.[/col...

MakerMyself的专栏 278

NX二次开发点通过云配准获取相同体

先找到体的参考方向(这个参考方向对于相同体重合之后是相同的),这个时候我们的思路是三个不共线的点确定一个坐标系,然后和绝对方向求转换矩阵。然后获取体的所有边的几何中心,把这些点通过转换矩阵转换之后存起来,再和另外一个体转换之后的点数据作对比,在误差范围内配对点的数量等于体获取点的数量就是相同体

qq_39541524的博客 1646

MTK(基础篇)ROM烧录以及分区的作用

本文介绍了MTK芯片设备的刷机流程及关键分区功能。首先通过MTK烧录工具加载ROM文件(包括引导文件和分区表),重点解析了各分区的核心作用:preloader类似BIOS负责硬件初始化;lk作为二级引导程序加载内核;vbmeta验证系统完整性;boot包含Linux内核;dtbo调整硬件配置;modem管理通信功能;tee保护生物识别数据;system/vendor分别存放系统核心和硬件驱动。特别指出preloader、vbmeta等关键分区损坏会导致设备变砖,而recovery分区是重要的救砖入口。全文简

weixin_49303682的博客 444

JOGL学习-1 JOGL配置方法(zz)

 1.准备工作 (1)安装JDK1.6      下载地址:http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u7-windows-i586-p.exe?BundledLineItemUUID=ZbRIBe.nMnAAAAEbOcY4

msh1216的专栏 6080

OSG第三方库编译之二十一:minizip编译(Windows、Linux、Macos环境下编译)

OSG编译;第三方库;跨平台编译;minizip编译(Windows、Linux、Macos环境下编译)

LuckyHanMo的博客 2621

(废弃)JOGL入门 第6课

[size=large][color=red]声明:[/color][/size][color=blue] 本来是想写点东西,记录学习的过程,并希望能帮助同我一样刚刚学习JOGL的朋友们 可是由于没有明确目的,好心做了坏事,在这里先声明,本来是学习基本的JOGL,在 学习过程中却把朋友们带入到了JOGL+GL4java中,基本的没学扎实,这是很错误的.[/col...

MakerMyself的专栏 241

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LINUX 编译gluegen/jogl

具体编译办法,可以参考: https://jogamp.org/jogl/doc/HowToBuild.html 下载源码 git clone --recurse-submodules git://jogamp.org/srv/scm/gluegen.git gluegen git clone --recurse-submodules git://jogamp.org/srv/s...

柳鲲鹏 999

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java安装库源文件_JOGL安装

本章介绍了设置环境以使用JOGL使用不同的集成开发环境(IDE),在您的系统上。安装JOGL对于JOGL安装,需要有以下系统要求:系统要求第一个要求是要在机器上安装Java Development Kit(JDK)。要求描述JDK 版本1.4 或以上内存没有最小限制硬盘大小没有最小限制操作系统没有最小限制需要按照设置给定的步骤,从配置环境入手JOGL应用程序开发:第1步 - 在机器上验证Java安...

weixin_36478447的博客 942

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

下一篇: JOGL入门 第2课
holmes_hng
博客等级 码龄19年 0粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值