Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在eclipse中不显示纹理_Java_Eclipse_Opengl_Jogl_Texture2d - Fatal编程技术网

Java 在eclipse中不显示纹理

Java 在eclipse中不显示纹理,java,eclipse,opengl,jogl,texture2d,Java,Eclipse,Opengl,Jogl,Texture2d,我有acube和一个纹理是要放在所有方面。 我在一个netbeans项目中成功地做到了这一点,但最后我知道这是在eclipse中完成的,起初听起来没什么大不了的。但问题是相同的代码在eclipse中不起作用。将显示立方体,但未应用纹理。这是密码 public void init(GLAutoDrawable drawable) { GL2 gl = drawable.getGL().getGL2(); // Get the GL pipeline object t

我有acube和一个纹理是要放在所有方面。 我在一个netbeans项目中成功地做到了这一点,但最后我知道这是在eclipse中完成的,起初听起来没什么大不了的。但问题是相同的代码在eclipse中不起作用。将显示立方体,但未应用纹理。这是密码

        public void init(GLAutoDrawable drawable) {
        GL2 gl = drawable.getGL().getGL2(); // Get the GL pipeline object this 
        // GLAutoDrawable uses

        gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Set clear color to black
        gl.glClearDepth(1.0f); // Set the depth value to 1.0 (the maximum value),
        // when the depth buffer is cleared

        gl.glEnable(GL_DEPTH_TEST); //Enable depth test

        gl.glEnable(GL_LIGHT0);     
        gl.glEnable(GL_LIGHTING);           


        try {
            texImg = readImage("PWelshDragon.jpg");
        } catch (IOException ex) {
         //   Logger.getLogger(CG0T.class.getName()).log(Level.SEVERE, null, ex);
        }

             gl.glDisable(GL.GL_TEXTURE_2D);
             gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGB, texWidth ,texHeight, 0, GL.GL_RGB, GL.  GL_UNSIGNED_BYTE,  texImg);
        gl.glEnable(GL.GL_TEXTURE_2D);

    }
在显示代码中

public void display(GLAutoDrawable drawable) {
        GL2 gl = drawable.getGL().getGL2();

        gl.glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

        gl.glMatrixMode(GL_MODELVIEW);
        gl.glLoadIdentity();

        gl.glRotated(30, 1, 1, 1);

        gl.glBegin(GL_QUADS);
            gl.glNormal3f(1.0f, 0.0f, 0.0f);
            gl.glVertex3f(1.0f, 1.0f, 1.0f);gl.glTexCoord2d(0.0f, 0.0f);
            gl.glVertex3f(1.0f, -1.0f, 1.0f);gl.glTexCoord2d(1.0f, 0.0f);
            gl.glVertex3f(1.0f, -1.0f, -1.0f);gl.glTexCoord2d(1.0f, 1.0f);
            gl.glVertex3f(1.0f, 1.0f, -1.0f);gl.glTexCoord2d(0.0f, 1.0f);

            gl.glNormal3f(-1.0f, 0.0f, 0.0f);
            gl.glVertex3f(-1.0f, 1.0f, 1.0f);gl.glTexCoord2d(0.0f, 0.0f);
            gl.glVertex3f(-1.0f, 1.0f, -1.0f);gl.glTexCoord2d(1.0f, 0.0f);
            gl.glVertex3f(-1.0f, -1.0f, -1.0f);gl.glTexCoord2d(1.0f, 1.0f);
            gl.glVertex3f(-1.0f, -1.0f, 1.0f);gl.glTexCoord2d(0.0f, 1.0f);


            gl.glNormal3f(0.0f, 1.0f, 0.0f);
            gl.glVertex3f(1.0f, 1.0f, 1.0f);gl.glTexCoord2d(0.0f, 0.0f);
            gl.glVertex3f(1.0f, 1.0f, -1.0f);gl.glTexCoord2d(1.0f, 0.0f);
            gl.glVertex3f(-1.0f, 1.0f, -1.0f);gl.glTexCoord2d(1.0f, 1.0f);
            gl.glVertex3f(-1.0f, 1.0f, 1.0f);gl.glTexCoord2d(0.0f, 1.0f);

            gl.glNormal3f(0.0f, -1.0f, 0.0f);
            gl.glVertex3f(1.0f, -1.0f, 1.0f);gl.glTexCoord2d(0.0f, 0.0f);
            gl.glVertex3f(-1.0f, -1.0f, 1.0f);gl.glTexCoord2d(1.0f, 0.0f);
            gl.glVertex3f(-1.0f, -1.0f, -1.0f);gl.glTexCoord2d(1.0f, 1.0f);
            gl.glVertex3f(1.0f, -1.0f, -1.0f);gl.glTexCoord2d(0.0f, 1.0f);

            gl.glNormal3f(0.0f, 0.0f, 1.0f);
            gl.glVertex3f(1.0f, 1.0f, 1.0f);gl.glTexCoord2d(0.0f, 0.0f);
            gl.glVertex3f(-1.0f, 1.0f, 1.0f);gl.glTexCoord2d(1.0f, 0.0f);
            gl.glVertex3f(-1.0f, -1.0f, 1.0f);gl.glTexCoord2d(1.0f, 1.0f);
            gl.glVertex3f(1.0f, -1.0f, 1.0f);gl.glTexCoord2d(0.0f, 1.0f );


            gl.glNormal3f(0.0f, 0.0f, -1.0f);
            gl.glVertex3f(1.0f, 1.0f, -1.0f);gl.glTexCoord2d(0.0f, 0.0f);
            gl.glVertex3f(1.0f, -1.0f, -1.0f);gl.glTexCoord2d(1.0f, 0.0f);
            gl.glVertex3f(-1.0f, -1.0f, -1.0f);gl.glTexCoord2d(1.0f, 1.0f);
            gl.glVertex3f(-1.0f, 1.0f, -1.0f);gl.glTexCoord2d(0.0f, 1.0f);
        gl.glEnd();
    }

我正在获取texImg中的值,但不知道为什么不应用它。

我对Java中的opengl一无所知,但这难道不是因为找不到图像文件“PWelshDragon.jpg”或其他原因而无法加载吗

你试过把评论的那行放回去吗

  Logger.getLogger(CG0T.class.getName()).log(Level.SEVERE, null, ex);

在catch中查看这里是否没有问题?

我通过在显示函数中的图像绘制代码之前添加以下行解决了问题。(在
gl.glBegin(gl_QUADS);
之前)

我真的不知道这些线是干什么的。我看到了

您的代码中有任何GlGetError()吗?可能有助于找到原因。
gl.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_WRAP_S,GL2.GL_CLAMP);
gl.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_WRAP_T,GL2.GL_CLAMP);
gl.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_MAG_FILTER,GL.GL_NEAREST);
gl.glTexParameteri(GL.GL_TEXTURE_2D,GL.GL_TEXTURE_MIN_FILTER,GL.GL_NEAREST);
gl.glTexEnvi(GL2.GL_TEXTURE_ENV,GL2.GL_TEXTURE_ENV_MODE,GL2.GL_MODULATE);
gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT,GL2.GL_NICEST);