0
に2Dテクスチャを使用します。JOGLは、私は次のコードを使用してJOGLで3Dキューブを作成した3Dキューブ
/**
* Function used to draw a cube
*/
public void drawCube(GL gl) {
gl.glBegin(gl.GL_QUADS);
//gl.glColor3f(1, 0, 0);
gl.glTexCoord3f(0, 0, 0);
gl.glVertex3f(0, 0, 0);
gl.glTexCoord3f(4, 0, 0);
gl.glVertex3f(1, 0, 0);
gl.glTexCoord3f(4, 4, 0);
gl.glVertex3f(1, 1, 0);
gl.glTexCoord3f(0, 4, 0);
gl.glVertex3f(0, 1, 0);
gl.glEnd();
gl.glBegin(gl.GL_QUADS);
gl.glTexCoord3f(0, 0, 0);
// gl.glColor3f(0, 1, 0);
gl.glVertex3f(0, 0, 0);
gl.glTexCoord3f(0, 4, 0);
gl.glVertex3f(0, 1, 0);
gl.glTexCoord3f(0, 4, 4);
gl.glVertex3f(0, 1, 1);
gl.glTexCoord3f(0, 0, 4);
gl.glVertex3f(0, 0, 1);
gl.glEnd();
gl.glBegin(gl.GL_QUADS);
// gl.glColor3f(0, 0, 1);
gl.glTexCoord3f(0, 4, 0);
gl.glVertex3f(0, 1, 0);
gl.glTexCoord3f(4, 4, 0);
gl.glVertex3f(1, 1, 0);
gl.glTexCoord3f(4, 4, 4);
gl.glVertex3f(1, 1, 1);
gl.glTexCoord3f(0, 4, 4);
gl.glVertex3f(0, 1, 1);
gl.glEnd();
gl.glBegin(gl.GL_QUADS);
// gl.glColor3f(1, 1, 0);
gl.glTexCoord3f(4, 4, 0);
gl.glVertex3f(1, 1, 0);
gl.glTexCoord3f(4, 0, 0);
gl.glVertex3f(1, 0, 0);
gl.glTexCoord3f(4, 0, 4);
gl.glVertex3f(1, 0, 1);
gl.glTexCoord3f(4, 4, 4);
gl.glVertex3f(1, 1, 1);
gl.glEnd();
gl.glBegin(gl.GL_QUADS);
// gl.glColor3f(1, 0, 1);
gl.glTexCoord3f(4, 0, 0);
gl.glVertex3f(1, 0, 0);
gl.glTexCoord3f(0, 0, 0);
gl.glVertex3f(0, 0, 0);
gl.glTexCoord3f(0, 0, 4);
gl.glVertex3f(0, 0, 1);
gl.glTexCoord3f(4, 0, 4);
gl.glVertex3f(1, 0, 1);
gl.glEnd();
gl.glBegin(gl.GL_QUADS);
// gl.glColor3f(0, 1, 1);
gl.glTexCoord3f(0, 4, 4);
gl.glVertex3f(0, 1, 1);
gl.glTexCoord3f(4, 4, 4);
gl.glVertex3f(1, 1, 1);
gl.glTexCoord3f(4, 0, 4);
gl.glVertex3f(1, 0, 1);
gl.glTexCoord3f(0, 0, 4);
gl.glVertex3f(0, 0, 1);
gl.glEnd();
キューブが画面上にあり、そして今私はそれぞれにテクスチャを配置しようとしていますこのように直面している:
public void init(GLAutoDrawable gld) {
//Init the gl
GL gl = gld.getGL();
//Init the glu
GLU glu = new GLU();
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(90, 1.6, 0.6, 30.0);
glu.gluLookAt(0, 0, 10, 0, 0, 0, 0, 2, 0);
gl.glEnable(gl.GL_TEXTURE_2D);
int id_textura = Gen_Textura(gl);
gl.glBindTexture(gl.GL_TEXTURE_2D, id_textura);
gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MAG_FILTER, gl.GL_LINEAR);
gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MIN_FILTER, gl.GL_LINEAR);
}
問題はテクスチャがない私は、すべての面に描画するテクスチャを作ることができますどのようにすべての6
に、唯一の立方体の一面に現れるということですキューブ?
uは2Dテクスチャを持ち、uはgl.glTexCoord3f(0、4、4)を使用しています。 (それは3Dのように見えます)、第2に、テクスチャ座標の座標が1より高いかどうかわかりません。あなたはそれらの2つを再度確認できますか? – guness
ええ、 'glTexCoord2f'を使うべきですし、通常はテクスチャ座標が' [0、1] 'の範囲にあります – Torious
私はそれを受け入れることができるように答えを加えてください。私がglTexCoord2f()を[0,1]の範囲の座標で使用した場合はうまくいきました。そして、私はこの質問をdownvoteする理由は何か分からない。 – Arkde