Текстурирование квадрик в JOGL - PullRequest
1 голос
/ 06 мая 2011

Мне не удается текстурировать глю Квадрик (gluSphere): то, что я получаю вместо текстуры, это средний цвет текстуры.

gl.glEnable(GL.GL_DEPTH_TEST);
gl.glEnable(GL.GL_BLEND);
gl.glEnable(GL.GL_TEXTURE_GEN_S); 
gl.glEnable(GL.GL_TEXTURE_GEN_T); 

sunTexture = TextureIO.newTexture(new File("sun.jpg"),false);

float[] rgba = {1f, 1f, 1f};
gl.glMaterialfv(GL.GL_FRONT, GL.GL_AMBIENT, rgba, 0);
gl.glMaterialfv(GL.GL_FRONT, GL.GL_SPECULAR, rgba, 0);
gl.glMaterialf(GL.GL_FRONT, GL.GL_SHININESS, 0.5f);

sunTexture.enable();
sunTexture.bind();
    GLUquadric sun = glu.gluNewQuadric();
    glu.gluQuadricTexture(sun, true);
    glu.gluSphere(sun, 5, DETAIL, DETAIL);
sunTexture.disable();

Ответы [ 2 ]

1 голос
/ 09 мая 2011

Я обнаружил проблему: я установил gl.glFrustum (-20, 20, -20, 20, 0.1, 400);

после установки gl.glFrustum (-20, 20, -20,20, 1, 400);

все в порядке.

0 голосов
/ 07 мая 2011

Поскольку GLU генерирует текстурные координаты самостоятельно и передает их как glTexCoord, я думаю, нет необходимости включать генерацию texcoord (GL_TEXTURE_GEN_S / T).Я полагаю, что сгенерированные GLU texCoords перезаписываются таковыми из texgen.

Я также вижу, что вы отправляете массив из трех чисел в glMaterial, который ожидает RGBA (4 числа).Но так как я работаю с C ++, я могу ошибаться, и это работает в JoGL.

...