Eclipse에서 텍스처를 그리는 데 문제가 있습니다.텍스처가 osx에서 사라집니다. GL_TEXTURE_2D JOGL Eclipse java
Java 응용 프로그램을 실행할 때 창 팝업에서 몇 밀리 초짜리 텍스처 만 보았을 때 모든 것이 검은 색으로 변합니다.
나는이 코드를 가지고 있으며 내 모든 동급생 PC에서 완벽하게 작동하지만 내 Macbook Pro 2012에서는 작동하지 않습니다. JRE 1.8을 실행하십시오.
jogl 라이브러리를 mac osx 용으로 변경했으며 디버깅 할 때 오류가 표시되지 않습니다. 내가 볼 수있는 것은 무언가 drawQuad 함수에 잘못이있다. gl.glEnable (GL.GL_TEXTURE_2D) 행을 지우면 모든 것이 그려 지지만 텍스처가 없으면 그냥 흰색이된다.
아무도 문제가 무엇인지 알 수 있습니까? 아니면 GL_TEXTURE_2D와 osx에 알려진 버그가 있습니까? 필자가 쓴대로이 응용 프로그램은 다른 PC에서도 잘 작동합니다.
private Texture texture;
void loadResources() throws GLException, IOException {
if (texture == null)
texture = TextureIO.newTexture(new File("3.png"), false);
}
void reshape(GLAutoDrawable drawable, int x, int y, int w, int h) {
GL2 gl = drawable.getGL().getGL2();
GLU glu = new GLU();
gl.glMatrixMode(GL_PROJECTION);
gl.glLoadIdentity(); // reset
glu.gluOrtho2D (0.0, w, h, 0); // define drawing area
gl.glMatrixMode(GL_MODELVIEW);
gl.glLoadIdentity(); // reset
} u는 더 많은 코드를 필요로하는 경우
void drawQuad(GLAutoDrawable drawable, float x, float y, float w, float h) {
GL2 gl = drawable.getGL().getGL2();
gl.glEnable(GL.GL_TEXTURE_2D);
gl.glBindTexture(GL.GL_TEXTURE0, texture.getTarget());
gl.glBegin(GL2.GL_QUADS);
gl.glColor3f(1, 1, 1);
gl.glTexCoord2f(1, 1);
gl.glVertex2f(x, y);
gl.glTexCoord2f(1, 1);
gl.glVertex2f(x + w, y);
gl.glTexCoord2f(1, 0);
gl.glVertex2f(x + w, y + h);
gl.glTexCoord2f(0, 0);
gl.glVertex2f(x, y + h);
gl.glEnd();
}
public void clearScreen(GLAutoDrawable drawable) {
GL2 gl = drawable.getGL().getGL2();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
}
그냥 메시지를 남겨 :
는 여기에 내가 어디에 문제가 생각하는 클래스입니다.
GLU glu = new GLU()가 아닌 GLU.createGLU (GL)를 사용하십시오. "새로운 GLU()"는 특정 경우에만 사용되어야합니다. 예를 들어 GLUgl2와 같이 하위 클래스에서만 구현되는 기능이 필요하지 않은 경우입니다. – gouessej
버텍스 배열이나 버텍스 버퍼 객체를 사용해야합니다. 몇 가지 예가 필요한지 여부를 알려주십시오. – gouessej
정말 좋을 몇 가지 예를 쓰고 싶다면. 그래서 openGL 올바른 방법을 배우고 싶습니다 :) – alengqvist