Articles of jogl

multithreadingJOGL问题

我正在用Java编写一个简单的OpenGL应用程序,它实现了用于估计PI值的Monte Carlo方法。 这个方法很简单。 简单地说,你在一个单位正方形内绘制一个圆圈,然后在场景上绘制随机点。 现在,对于圆圈内的每个点,您都将点数递增。 在确定了所有的随机点之后,他们在圆圈内或者不在圆圈内,将所有绘制的点的总数乘以4得到PI的估计值。 它是这样的PI =(inPoints / totalPoints)* 4。这是因为在math上一个圆的面积与一个正方形的面积比是PI / 4,所以当我们乘以4我们得到PI。 我的问题不在于algorithm本身; 然而,我正在试图绘制点,因为他们正在生成的问题,而不是在程序完成执行时一次绘制一切。 我想给应用程序一个实时显示的感觉,用户可以看到他们被绘制的点。 我是OpenGL的初学者,我很确定内置了multithreadingfunction。 不less,我试图手动创建自己的线程。 每个工作线程一次绘制一个点。 以下是psudo代码: /* this part of the code exists in display() method in MyCanvas.java which extends GLCanvas and implements GLEventListener */ // main loop for(int i = 0; i < number_of_points; i++){ RandomGenerator random = new RandomGenerator(); […]

从java调用opengl32.DLL?

在某些情况下,我不喜欢LWJGL,所以我更喜欢使用Swing。 事情是,Swing没有OpenGL。 我已经尝试JOGL,这是一个乱七八糟的安装,需要外部的jar子,我还没有得到它的工作。 所以我想知道如果我能做一个使用opengl32.DLL的OpenGL类,并将graphics放入Swing的窗口? 另外,opengl32.DLL能够用64位Java程序调用吗?

如何正确加载和绘制这个* .obj?

我有一个*.obj文件(称为GLModel )的加载器类,它有2个主要的方法 – public GLModel(BufferedReader ref, boolean centerit, GL gl,Texture texture) 用于*.obj加载和 public void opengldraw(GL gl) 用于绘制在gl 。 到目前为止,我成功地加载和绘制单个*.obj和纹理(如*.png , *jpg等)的对象。 但是我怎么能画出一个有多个纹理的物体? 例如 – 这个对象包含多个纹理,我试图用合适的*.obj和其中一个纹理来绘制它,并得到与上面的链接相同的形状,但是它的纹理不完全相同。 你能给我一个例子如何正确地工作吗? 编辑: 我从这里下载了这个模型,没有注册。 我到目前为止的绘图是 – (面前) – (背部) – 我所讲的装载机类是 – import java.io.BufferedReader; import java.io.IOException; import java.util.ArrayList; import java.util.StringTokenizer; import javax.media.opengl.GL; import com.sun.opengl.util.texture.Texture; // This class reads Wavefront .obj files […]

OpenGL:正确地附加纹理

问题: 尝试了几个小时来设置一个简单的PNG作为一个纹理(所以我可以稍后坚持像一个正常的十字线的视图中间),没有运气。 我用JOGL编写了Java。 PS还需要使纹理的背景透明。 但这是另一个问题。 码: public void display(GLAutoDrawable gLDrawable) { final GL2 gl = gLDrawable.getGL().getGL2(); gl.glClear(GL2.GL_COLOR_BUFFER_BIT | GL2.GL_DEPTH_BUFFER_BIT); gl.glLoadIdentity(); // Reset The View gl.glTranslatef(0.0f, 0.0f, -5.0f); gl.glTexParameteri ( GL2.GL_TEXTURE_2D,GL2.GL_TEXTURE_WRAP_T, GL2.GL_REPEAT ); gl.glTexParameteri( GL2.GL_TEXTURE_2D,GL2.GL_TEXTURE_WRAP_S, GL2.GL_REPEAT ); texture.bind(gl); gl.glBegin(GL2.GL_QUADS); // Front Face gl.glTexCoord2d(0, 0); gl.glVertex3d(0, 0, 0); gl.glTexCoord2d(0, 1); gl.glVertex3d(0, 1, 0); gl.glTexCoord2d(1, 1); gl.glVertex3d(1, 1, […]

Jogl2不会接受jogl 1.0代码 – GL_LIGHTING和GL_LIGHT_MODEL_AMBIENT无法parsing或不是字段?

我试图在jogl 2.0上第一次运行我的代码(到现在为止我使用了jogl 1.0),但是Eclipse几乎抛出了每一个我都有“无法parsing或者不是字段”的消息。 jogl 2.0库中的文件是: gluegen-rt.jar jogl-all.jar gluegen-rt.dll joal.dll jocl.dll jogl_cg.dll jogl_desktop.dll jogl_mobile.dll nativewindow_awt.dll nativewindow_win32.dll newt.dll 代码非常简单: import javax.media.opengl.GL; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.awt.GLCanvas; import javax.media.opengl.GLCapabilities; import javax.media.opengl.GLEventListener; import javax.media.opengl.glu.GLU; import javax.media.opengl.glu.GLUquadric; import javax.swing.JFrame; import com.jogamp.opengl.util.Animator; public class Practice10IlluminateSphere extends JFrame implements KeyListener{ private static float deltaZ=0; float t=0; public static void main(String[] args) { Practice10IlluminateSphere […]

如何find旋转后的OpenGL对象的位置?

我有一个旋转的对象,一个立方体,我在OpenGL中旋转如下: gl.glPushMatrix(); gl.glTranslatef(400.0f, 300.0f, 1300.0f); gl.glRotatef(m_x, 4.0f, 0.0f, 0.0f); gl.glRotatef(m_y, 0.0f, 4.0f, 0.0f); gl.glRotatef(m_z, 0.0f, 0.0f, 42.0f); gl.glCallList(++shapeNumber); // cube 2 gl.glPopMatrix(); ( m_x , m_y和m_z是每帧的旋转变化。) 我想要检测相机和旋转物体之间的碰撞,并且要做到这一点,我需要实时获取旋转物体的坐标。 我怎么能做到这一点?

在JOGL中添加凹凸贴图到纹理gluSphere的问题

我目前在gluSphere上有一个纹理,表示地球完美显示,但在计算如何实现凹凸贴图时也遇到了困难。 "res/planet/earth/earthbump1k.jpg".贴图位于"res/planet/earth/earthbump1k.jpg". 这里是我对普通纹理的代码: gl.glTranslatef(xPath, 0, yPath + zPos); gl.glColor3f(1.0f, 1.0f, 1.0f); // base color for earth earthGluSphere = glu.gluNewQuadric(); colorTexture.enable(); // enable texture colorTexture.bind(); // bind texture // draw sphere… glu.gluDeleteQuadric(earthGluSphere); colorTexture.disable(); // texturing public void loadPlanetTexture(GL2 gl) { InputStream colorMap = null; try { colorMap = new FileInputStream("res/planet/earth/earthmap1k.jpg"); TextureData data = TextureIO.newTextureData(colorMap, false, null); […]

在Java中使用OpenGL播放电影

我正试图在Java应用程序中将电影文件播放到OpenGL纹理中。 我正在使用JOGL,并有一个基本的OpenGL场景,但我不知道如何将电影播放到纹理。 我唯一能find的是这样的: http://paulo.ragonha.me/blog/2008/08/java-movie-playback-jogl-fobs4jmf.html 这是相当古老的,使用JOGL 1.1和FOBs4JMF,不再维护。 我设法让它在eclipse中生成,但它无法读取我的影片剪辑。 我大概可以将影片剪辑转换为较旧的编解码器来查看是否可行,但我宁愿有一个现代的解决scheme。 我是一个专业的游戏开发人员,所以OpenGL部分没有问题,但我是Java新手(来自C ++背景)。 是否有任何现代化的图书馆将这个function包装在一个易于使用的软件包中?

将纹理映射到gluSphere不能正确包装

我有一个使用JOGL通过GLUquadric渲染的3D球体。 我试图添加一个纹理,但它不正确渲染。 有没有人明白为什么纹理(球体的右上角)不被包裹,也不在球体的其余部分重复?

有没有任何OpenGL ES 2.0 JOGL的例子?

在过去的几个小时里,我search了互联网,寻找一个如何使用JOGL运行最基本的OpenGL ES 2的例子,但是“通过木星! 这是一个彻底的失败。 我尝试从OpenGL ES 2.0编程指南示例(同时查看WebGL示例 – 哪些工作正常)转换了Android示例,但没有任何成功。 那里有没有例子? 如果其他人想要关于这个问题的一些额外的帮助,请参见Jogamp官方论坛上的这个线程。