当我尝试在四边形上绘制纹理(仅包含红色)时,我得到这样的结果:enter image description here 它不包括所有四边形,只覆盖它的一部分。我尝试过不同的尺寸(当然,它们的宽度和高度都是偶数),图片格式,尝试使用Paint和Photoshop制作它,但总是得到相同的结果。
这是我的代码:
package test2;
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_MODELVIEW;
import static org.lwjgl.opengl.GL11.GL_PROJECTION;
import static org.lwjgl.opengl.GL11.GL_QUADS;
import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D;
import static org.lwjgl.opengl.GL11.glBegin;
import static org.lwjgl.opengl.GL11.glClear;
import static org.lwjgl.opengl.GL11.glClearColor;
import static org.lwjgl.opengl.GL11.glColor3f;
import static org.lwjgl.opengl.GL11.glEnable;
import static org.lwjgl.opengl.GL11.glEnd;
import static org.lwjgl.opengl.GL11.glLoadIdentity;
import static org.lwjgl.opengl.GL11.glMatrixMode;
import static org.lwjgl.opengl.GL11.glOrtho;
import static org.lwjgl.opengl.GL11.glTexCoord2f;
import static org.lwjgl.opengl.GL11.glVertex2i;
import java.io.IOException;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;
public class Main {
public static void main(String[] args){
try {
Display.setFullscreen(true);
Display.setTitle("test");
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
}
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, Display.getWidth(), Display.getHeight(), 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);
while(true){
glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Texture t = null;
try {
t = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("texture.png"));
} catch (IOException e) {
e.printStackTrace();
}
t.bind();
glColor3f(1, 1, 1);
glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex2i(100, 100);
glTexCoord2f(0, 1);
glVertex2i(100, 200);
glTexCoord2f(1, 1);
glVertex2i(200, 200);
glTexCoord2f(1, 0);
glVertex2i(200, 100);
glEnd();
Display.update();
Display.sync(60);
}
}
}
答案 0 :(得分:0)
现在我发现,重量和高度呈现(2 ^ n)数字的纹理是完美的。但是我和其他纹理有什么关系呢?是否可以在OpenGL中正确使用它们?