Java 纹理坐标don';不行?
说真的,我对这段代码很生气,因为它不起作用:Java 纹理坐标don';不行?,java,opengl,texture-mapping,Java,Opengl,Texture Mapping,说真的,我对这段代码很生气,因为它不起作用: switch(particle) { case 0: glBegin(GL_TRIANGLE_STRIP); // STONE glNormal3f(0.0f, 0.0f, 1.0f); glTexCoord2d(1, 1); glVertex3f(x+size, y+size, 0.0f); // Top Right glTexCoord2d(0.5, 1); glVertex
switch(particle) {
case 0:
glBegin(GL_TRIANGLE_STRIP); // STONE
glNormal3f(0.0f, 0.0f, 1.0f);
glTexCoord2d(1, 1); glVertex3f(x+size, y+size, 0.0f); // Top Right
glTexCoord2d(0.5, 1); glVertex3f(x-size, y+size, 0.0f); // Top Left
glTexCoord2d(1, 0.5); glVertex3f(x+size, y-size, 0.0f); // Bottom Right
glTexCoord2d(0.5, 0.5); glVertex3f(x-size, y-size, 0.0f); // Bottom Left
glEnd();
break;
case 1:
glBegin(GL_TRIANGLE_STRIP); // EARTH
glNormal3f(0.0f, 0.0f, 1.0f);
glTexCoord2d(0.5, 0.5); glVertex3f(x+size, y+size, 0.0f); // Top Right
glTexCoord2d(0, 0.5); glVertex3f(x-size, y+size, 0.0f); // Top Left
glTexCoord2d(0.5, 0); glVertex3f(x+size, y-size, 0.0f); // Bottom Right
glTexCoord2d(0, 0); glVertex3f(x-size, y-size, 0.0f); // Bottom Left
glEnd();
break;
}
案例0可以正常工作,但案例1不行,我不知道为什么。。。
这是图像(32x32,带有两个16x16子纹理):
假设案例0显然工作正常,那么案例1的纹理坐标是错误的。它们应该是:
glBegin(GL_TRIANGLE_STRIP); // EARTH
glNormal3f(0.0f, 0.0f, 1.0f);
glTexCoord2d(0.5, 1.0); glVertex3f(x+size, y+size, 0.0f); // Top Right
glTexCoord2d(0, 1.0); glVertex3f(x-size, y+size, 0.0f); // Top Left
glTexCoord2d(0.5, 0.5); glVertex3f(x+size, y-size, 0.0f); // Bottom Right
glTexCoord2d(0, 0.5); glVertex3f(x-size, y-size, 0.0f); // Bottom Left
glEnd();
假设案例0工作正常,那么案例1的纹理坐标是错误的。它们应该是:
glBegin(GL_TRIANGLE_STRIP); // EARTH
glNormal3f(0.0f, 0.0f, 1.0f);
glTexCoord2d(0.5, 1.0); glVertex3f(x+size, y+size, 0.0f); // Top Right
glTexCoord2d(0, 1.0); glVertex3f(x-size, y+size, 0.0f); // Top Left
glTexCoord2d(0.5, 0.5); glVertex3f(x+size, y-size, 0.0f); // Bottom Right
glTexCoord2d(0, 0.5); glVertex3f(x-size, y-size, 0.0f); // Bottom Left
glEnd();
定义“不工作?”屏幕上发生的事情,你认为不工作?什么也没有。在案例0中,应用程序呈现正确的子文本。但是在案例1中,不要直接渲染任何内容。我猜问题出在glTextCoord2d(…)中,但这些似乎是正确的:/如果将代码从案例0复制到案例1中会发生什么?然后正确渲染石头粒子:如果案例0是正确的(是吗?),那么案例1不应该是
TR=(0.5,1)TL=(0,1)BR=(0.5,0.5)BL=(0,0.5)
?定义“不工作?”你认为不工作的屏幕上发生了什么?什么也没有。在案例0中,应用程序呈现正确的子文本。但是在案例1中,不要直接渲染任何内容。我猜问题出在glTextCoord2d(…)中,但这些似乎是正确的:/如果将代码从案例0复制到案例1中会发生什么?然后正确渲染石头粒子:如果案例0是正确的(是吗?),那么案例1不应该是TR=(0.5,1)TL=(0,1)BR=(0.5,0.5)BL=(0,0.5)
?