标签: jogl

Maven和JOGL库?

我在过去几天的空闲时间里一直在研究Maven,但似乎无法弄清楚如何组织项目以便使用JOGL库.我最好喜欢以下内容:

  1. 如有必要,从此处自动下载特定于操作系统的JOGL zip文件(包含4个jar文件和一些本机库文件(.so/.dll)); 或依赖于Maven项目,该项目是其中一个文件的包装.
  2. 适当地解压缩该zip文件,以便:
    1. jar文件被添加到类路径中并根据需要进行部署
    2. 本机库文件被添加到最终的jar文件中(这会使它们自动使用,还是需要更多参与?)

我认为我的问题的一部分是我不完全理解JOGL的使用,在运行代码时放置本机库的位置等等.我需要回到基础并编写一个JOGL hello世界,从中编译它命令行并从命令行运行它,以确切了解它对本机库的目录放置所需的内容; 实际上,我现在可能会这样做.

在第1项中,我发现了一些特定于操作系统的功能; 可以基于系统的属性(包括操作系统)激活Maven配置文件.那么我就可以激活一个Windows配置文件,该配置文件具有Windows特定的JOGL库的依赖性,对于Linux也是如此,并且都具有64位的改变自我.(激活官方文档/非官方文档.)

我尝试创建一个基于JOGL jar文件的Maven存储库,然后添加JOGL jar文件项目作为我项目的依赖项; 依赖项已下载,但未使用.我不知道jar文件在哪里或如何使用它,解压缩等等.这是我使用的命令.

简而言之:JOGL由四个.jar文件和一些本机库组成.如何将这些文件集成到我的Maven项目中,以便我可以使用Maven编写JOGL应用程序来处理我的构建过程?此外,我如何根据操作系统使用不同的文件集,因为Windows,Linux和Mac之间的本机库甚至.jar文件当然不同.

java build-process maven-2 jogl maven

28
推荐指数
4
解决办法
1万
查看次数

什么是Java2d更快的替代品?

我正在寻找一些物理模拟,我需要在Java中快速渲染.

我过去遇到过Java2d的性能问题,那么快速的选择是什么?JOGL明显比Java2d快吗?

java performance rendering java-2d jogl

17
推荐指数
2
解决办法
6953
查看次数

GLSL着色器中cos()和sin()函数的速度?

我感兴趣的是关于速度的信息sin(),并cos()Open GL的着色语言.

所述GLSL规范文献表明:

内置功能基本上分为三类:

  • ...
  • ...
  • 它们代表一种操作图形硬件可能在某些时候加速.三角函数属于这一类.

编辑:

正如已经指出的那样,像计算单个操作的时钟周期sin(),并cos()没有真正告诉整个故事的性能.

因此,为了澄清我的问题,我真正感兴趣的是,是否值得优化sin()cos()呼吁常见案例.

例如,在我的应用程序中,参数将是非常常见的0.这样的事情是否有意义:

float sina, cosa;

if ( rotation == 0 )
{
   sina = 0;
   cosa = 1;
}
else
{
   sina = sin( rotation );
   cosa = cos( rotation );
}
Run Code Online (Sandbox Code Playgroud)

或将GLSL编译器或sin()cos()实现照顾优化像我吗?

opengl optimization shader glsl jogl

17
推荐指数
3
解决办法
2万
查看次数

为什么java应用程序在gdb中崩溃但在现实生活中正常运行?

尝试从gdb运行java应用程序导致segfault,但单独运行app却没有.这个应用程序是.JAR,它使用JOGL和一些内存映射来与GPU通信.

下面的Stacktrace暗示了某种内存访问问题,但我不明白它为什么会出现在GDB中而不是现实生活中.是否有一些环境因素gdb需要知道才能正确执行?

这个问题在JVM OpenJDK 6和7以及Oracle JRE 7之间仍然存在.在启用segfault之前,oracle JRE在启动时运行得更远.所有段错误在试验之间的发生和位置都是一致的.

Segfault在GPU和驱动程序之间持续存在(!!):nvidia,radeon,fglrx current和fglrx beta(14.xx).GDB将成功附加到已经运行的程序实例,但是gDEBugger似乎不可能这样做,这最终需要工作.

没有意图使用gdb进行实际调试.相反,我试图使用gDEBugger来执行OpenGL调试.gDEBugger显然依赖于GDB作为其后端的一部分,因此如果GDB失败,gDEBugger也会失败.这导致尝试单独运行gdb以隔离问题.

gDEBugger output:
GDB String:  [Thread debugging using libthread_db enabled]  
GDB String:  Using host libthread_db library  /lib/x86_64-linux-gnu/libthread_db.so.1 .  
Thread Created: 140737353893632 (LWP: 3265)
Thread Created: 140737294624512 (LWP: 3266)
Thread Created: 140737293571840 (LWP: 3267)
Thread Created: 140737292519168 (LWP: 3268)
Thread Created: 140737155180288 (LWP: 3269)
Thread Created: 140737154127616 (LWP: 3270)
Thread Created: 140736913602304 (LWP: 3271)
Thread Created: 140736909629184 (LWP: 3272)
Thread Created: 140736908576512 (LWP: 3273)
Thread Created: …
Run Code Online (Sandbox Code Playgroud)

java opengl gdb jogl segmentation-fault

17
推荐指数
1
解决办法
2865
查看次数

我在哪里可以找到包javax.media.opengl?

我需要导入javax.media.opengl.*包.从Java OpenGL Wikihttp://jogamp.org/,我有点困惑我需要哪个下载.还有很长的构建下载列表在这里,但他们都是.7z压缩文件,我正在寻找一个Windows XP 32位的机器可用下载.

java opengl download jogl package

15
推荐指数
2
解决办法
3万
查看次数

在Java中为JOGL释放直接缓冲区本机内存

我使用直接缓冲区(java.nio)来存储JOGL的顶点信息.这些缓冲区很大,在应用程序生命周期中它们会被更换几次.内存未及时解除分配,并且在几次更换后我的内存不足.

似乎没有好的方法来释放使用java.nio的缓冲区类.我的问题是:

JOGL中有一些方法可以删除Direct Buffers吗?我正在研究glDeleteBuffer(),但似乎这只是从显卡内存中删除缓冲区.

谢谢

java buffer memory-management nio jogl

14
推荐指数
2
解决办法
7385
查看次数

10,000个静态立方体的OpenGL性能

我正在运行以下Scala代码.它编译10,000个立方体的单个显示列表.然后它在显示循环中显示它们,动画师尽可能快地运行.但FPS只有20左右.我原以为使用显示列表可以很快处理这个问题.我有一种情况需要能够显示10k-100k的物体.有没有更好的方法呢?在显示循环中,几乎所有它都是调用gluLookAt和glCallList(它是最后一个方法).

我正在使用jogamp.org的JOGL 2.0-rc5,它说它支持"OpenGL 1.3 - 3.0,3.1 - 3.3,≥4.0,ES 1.x和ES 2.x +几乎所有供应商扩展"

class LotsOfCubes extends GLEventListener {
  def show() = {
    val glp = GLProfile.getDefault();
    val caps = new GLCapabilities(glp);
    val canvas = new GLCanvas(caps);
    canvas.addGLEventListener(this);

    val frame = new JFrame("AWT Window Test");
    frame.setSize(300, 300);
    frame.add(canvas);
    frame.setVisible(true);
  }

  override def init(drawable: GLAutoDrawable) {
    val gl = drawable.getGL().getGL2()
    gl.glEnable(GL.GL_DEPTH_TEST)

    gl.glNewList(21, GL2.GL_COMPILE)
    var i = -10.0f
    var j = -10.0f
    while (i < 10.0f) {
      while (j < 10.0f) {
        drawItem(gl, i, j, …
Run Code Online (Sandbox Code Playgroud)

opengl performance scala jogl

14
推荐指数
1
解决办法
3952
查看次数

Java3D的替代品

我的同事正在使用Java3D来可视化有限元模拟的结果.问题是Java3D似乎已经死了,这对OSX来说是一种痛苦.这是我们寻找替代品的原因之一.我们当前基于Java3D的实现已经做了很多工作,所以问题是离开Java3D需要付出多少努力.JOGL是一个选项,但看起来很多工作.

有没有关于替代品的建议?有这种迁移的经验吗?

java 3d visualization java-3d jogl

13
推荐指数
2
解决办法
5077
查看次数

如何渲染令人信服的天幕?

我正在编写一个渲染3D岛的OpenGL ES 2.0应用程序.我已经有了在岛上生成天空圆顶的代码.这是一个由三角形组成的半球,它以z点向上铺设岛屿.

圆顶有一些非常基本的移动云,使用perlin噪声纹理覆盖在自身上并移动不同的速度.

但最终我还需要圆顶渲染:

  • 太阳(跟踪天空)月亮(包括阶段)
  • 星星(晚上)
  • 遥远的土地作为静态纹理
  • 不同的颜色来模拟夜晚,黎明,黄昏,白天

我需要非常有效地完成这项工作,因为它最终会在Android上运行,尽管它目前在测试工具中运行.因此,例如太阳,月亮和星星将只是纹理,尽管它们的点可以以合理的准确度绘制.

我已经有了生成圆顶的代码,以及根据日期和时间绘制太阳的代码.所以主要是我需要的着色器以及它们提供的是什么.

有没有举例说明这些事情?我发现很多基本的立方体地图或有限的东西,但没有达到我需要的复杂程度.显然,因为这是OpenGL ES 2.0,它必须在着色器中完成.

我现有天空圆顶的着色器渲染2层perlin噪声来模拟云.纹理连续包裹,因此我可以根据圆顶顶点到xy平面的角度(通过将x和y馈入atan)和使用圆顶顶点z的v偏移来计算u偏移.

顶点着色器演示了我是如何做到的:

#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif

attribute vec4 aVertex;

uniform mat4 uPMVMatrix;
uniform float uTime;
uniform float uSkyDomeRadius;

const float PI = 3.1415926535897932384626433832795;

varying vec2 texCoord0, texCoord1;

void main()
{
    vec2 centre = vec2(600., 600.);

    gl_Position = uPMVMatrix * aVertex;

    float slow_time = uTime / 100.;

    vec2 dome_point = aVertex.xy - centre;
    float tex_u = atan(dome_point.x, dome_point.y);// / (.25 * PI); …
Run Code Online (Sandbox Code Playgroud)

java jogl opengl-es-2.0 libgdx

13
推荐指数
1
解决办法
2355
查看次数

嵌套类型无法隐藏封闭类型

这个错误是什么意思?

嵌套类型HelloWorld无法隐藏封闭类型

HelloWorld是java文件名.如果您需要,这是代码:

import net.java.games.jogl.*;
public class HelloWorld
{ // open HelloWorld

    public class HelloWorld
    { // open HelloWorld

        public static void main (String args[])
        { // open main
            try
            { // open try
                System.loadLibrary("jogl");
                System.out.println("Hello World! (The native libraries are installed.)");
            } // close try
            catch (Exception e) // all try's need a catch
            { } // even if the catch does nothing
        } // close main

    } // close HelloWorld

);
Run Code Online (Sandbox Code Playgroud)

java jogl

12
推荐指数
1
解决办法
4万
查看次数