Posted by
Alex on
Oct 16, 2012; 7:20pm
URL: https://forum.jogamp.org/JOGL-problems-with-OSX-10-8-2-and-HD3000-tp4026518.html
Hello, I have problems using OpenGL with my 2011 Macbook Pro 13".
My system has the following configuration:
Mac OSX 10.8.2 Mountain Lion
Sandy Bridge @ 2,3Ghz with HD3000 graphic
I've tryed different releases of JOGL and Gluegen, downloading the automatic builds here:
http://jogamp.org/deployment/autobuilds/master/I run the attached code using Eclipse with the jogl-all.jar and gluegen-rt.jar both imported and the result (see "Crecked" image) is that spheres appear "cracked". This seems connected with the light, becouse drawing flat-color spheres without light gives no problems.
I've tryed installing Eclipse on my Windows 7 BootCamp partition and the result this time is perfect (see "Correct" image).
I can't find a solution.
Attached images:
http://imageshack.us/photo/my-images/809/crackedg.jpg/http://imageshack.us/photo/my-images/560/correct.jpg/CODE:
package Esercitazione02;
import javax.media.opengl.GL;
import javax.media.opengl.GL2;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.awt.GLCanvas;
import javax.media.opengl.glu.GLU;
import javax.media.opengl.glu.GLUquadric;
import javax.swing.JFrame;
import com.jogamp.opengl.util.FPSAnimator;
public class Esercizio01 extends JFrame implements java.awt.event.KeyListener {
public static void main(String[] args) {
Esercizio01 ex=new Esercizio01();
ex.setDefaultCloseOperation(EXIT_ON_CLOSE);
ex.setSize(400,400);
GLCanvas canvas=new GLCanvas();
canvas.addGLEventListener(new Graphics());
ex.getContentPane().add(canvas);
FPSAnimator animator=new FPSAnimator(canvas,30);
animator.start();
ex.setVisible(true);
ex.addKeyListener(ex);
canvas.addKeyListener(ex);
}
private static float z1=0, z2=0;
@Override
public void keyPressed(java.awt.event.KeyEvent event) {
if(event.getKeyCode()==java.awt.event.KeyEvent.VK_A){
z1+=0.1f;
}
if(event.getKeyCode()==java.awt.event.KeyEvent.VK_Q){
z1-=0.1f;
}
if(event.getKeyCode()==java.awt.event.KeyEvent.VK_W){
z2+=0.1f;
}
if(event.getKeyCode()==java.awt.event.KeyEvent.VK_S){
z2-=0.1f;
}
}
@Override
public void keyReleased(java.awt.event.KeyEvent arg0){
}
@Override
public void keyTyped(java.awt.event.KeyEvent arg0){
}
public static class Graphics implements GLEventListener{
public void display(GLAutoDrawable arg0) {
GL2 gl=(GL2)arg0.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glMatrixMode(GL2.GL_PROJECTION);
gl.glLoadIdentity();
gl.glMatrixMode(GL2.GL_MODELVIEW);
gl.glEnable(GL2.GL_NORMALIZE);
GLU glu = new GLU();
GLUquadric quadric = glu.gluNewQuadric();
gl.glEnable(GL2.GL_DEPTH_TEST);
gl.glLoadIdentity();
gl.glTranslatef(0.5f,0,z2);
gl.glColor3f(0,1,0);
glu.gluSphere(quadric, 0.5f, 100, 50);
gl.glLoadIdentity();
gl.glTranslatef(0.0f,0,z1);
gl.glColor3f(1,0,0);
glu.gluSphere(quadric, 0.5f, 12, 6);
}
@Override
public void dispose(GLAutoDrawable arg0) {
// TODO Auto-generated method stub
}
public void displayChanged(GLAutoDrawable arg0, boolean arg1, boolean arg2) {
// TODO Auto-generated method stub
}
public void init(GLAutoDrawable arg0) {
GL2 gl=(GL2)arg0.getGL();
gl.glEnable(GL2.GL_LIGHTING);
gl.glEnable(GL2.GL_LIGHT0);
float[] position={1.0f, 1.0f, -1.0f, 1};
float[] intensity={1.0f, 1.0f, 1.0f, 1.0f};
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_POSITION, position, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_DIFFUSE, intensity, 0);
gl.glEnable(GL2.GL_COLOR_MATERIAL);
gl.glColorMaterial(GL.GL_FRONT_AND_BACK, GL2.GL_AMBIENT_AND_DIFFUSE);
}
public void reshape(GLAutoDrawable arg0, int x, int y, int w, int h) {
}
}
}