纹理未正确加载光滑的java
纹理加载不正确,它有线条,并且是向后的。怎么了? 编辑:我删掉了一些不相关的代码,所以有些东西看起来很奇怪纹理未正确加载光滑的java,java,window,lwjgl,slick2d,Java,Window,Lwjgl,Slick2d,纹理加载不正确,它有线条,并且是向后的。怎么了? 编辑:我删掉了一些不相关的代码,所以有些东西看起来很奇怪 package package01; import java.io.IOException; import org.lwjgl.opengl.GL11; import org.newdawn.slick.opengl.Texture; import org.newdawn.slick.opengl.TextureLoader; import org.newdawn.slick.util
package package01;
import java.io.IOException;
import org.lwjgl.opengl.GL11;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
import org.newdawn.slick.util.ResourceLoader;
public class Graph {
...
public void initGraph(){
...
Texture strbutton,defbutton,vitbutton,intbutton,dexbutton,agibutton;
try {
strbutton = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("/res/grphbuttons/strbutton.png"));
GL11.glEnable(GL11.GL_TEXTURE_2D);
strbutton.bind();
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0,0);
GL11.glVertex2f(70,120);
GL11.glTexCoord2f(0,1);
GL11.glVertex2f(70,120+strbutton.getImageHeight());
GL11.glTexCoord2f(1,1);
GL11.glVertex2f(70+strbutton.getImageWidth(),120+strbutton.getImageHeight());
GL11.glTexCoord2f(1,0);
GL11.glVertex2f(70+strbutton.getImageWidth(),120);
GL11.glEnd();
GL11.glDisable(GL11.GL_TEXTURE_2D);
} catch (IOException e) {
e.printStackTrace();
}
...
}
}
这是主课
package package01;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.opengl.GL11;
public class DisplayScreen {
CharCreateScreen ccs = new CharCreateScreen();
void start(){
initGL(1000,562);
while(!Display.isCloseRequested()){
ccs.openccscreen();
Display.update();
}
Display.destroy();
}
void initGL(int width, int height){
try {
Display.setDisplayMode(new DisplayMode(1000,562));
Display.create();
Display.setVSyncEnabled(true);
} catch(LWJGLException e) {
e.printStackTrace();
System.exit(0);
}
GL11.glClearColor(0.9f, 0.9f, 1.0f, 0.0f);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glLoadIdentity();
GL11.glOrtho(-500, 500, -281, 281, -1, 1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
}
public static void main(String[] args){
DisplayScreen ds = new DisplayScreen();
ds.start();
}
}
我一直遇到问题,加载纹理光滑,这一次有什么问题?我不能加载图像并将其放在屏幕上,而不将这种奇怪的应用于纹理吗?我只使用slick来上传一些图片,作为按钮使用,这是一种更简单的方法
下面是结果。按钮标记为“STR”,或者至少应该是。顶部和右侧的线条是什么 尝试将其更改为
GL11.glTexCoord2f(0,0);
GL11.glTexCoord2f(1,0);
GL11.glTexCoord2f(1,1);
GL11.glTexCoord2f(0,1);
从
但是没有仔细查看您的代码。请确保您的纹理大小(宽度和高度)都是2^x,例如64x32、16x16、512x1024。。。 (1、2、4、8、16、32、64、128、256、512、1024、2048、4096、8192、16384、65536等)
注意:纹理文件必须具有这些尺寸,但是,您可以以任何大小渲染它它应该修复向后纹理
GL11.glTexCoord2f(0,0);
GL11.glTexCoord2f(0,1);
GL11.glTexCoord2f(1,1);
GL11.glTexCoord2f(1,0);