2012-01-22 12 views
1

テクスチャが正しく読み込まれていません。行があり、それが後方にあります。なにが問題ですか。 編集:私はいくつかの無関係なコードを切り刻んだので、いくつかのものが奇妙に見えるかもしれません。テクスチャが適切に読み込まれていません。

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(); 

} 
} 

は、問題は、この時何さ?この奇妙なテクスチャに適用することなく、イメージをロードして画面に配置することはできませんか?私はボタンとして使用するためにいくつかの画像をアップロードできるようにすっきりしているだけですが、簡単な方法です。

ここに出てくるものです。 http://i.imgur.com/t7yvz.pngボタンには「STR」というラベルが付けられています。右上の線は何ですか?

答えて

1

GL11.glTexCoord2f(0,0); 
GL11.glTexCoord2f(0,1); 
GL11.glTexCoord2f(1,1); 
GL11.glTexCoord2f(1,0); 

から

GL11.glTexCoord2f(0,0); 
GL11.glTexCoord2f(1,0); 
GL11.glTexCoord2f(1,1); 
GL11.glTexCoord2f(0,1); 

に変更して試してみてくださいとはいえ、あなたのコードをよく見て持っていませんでした。

+0

でそれをレンダリングすることができます後方テクスチャ – Scott

1

テクスチャのサイズが幅と高さの両方が64x32,16x16,512x1024などの2^xであることを確認してください... (1,2,4,8,16,32,64,128,166) 、512、1024、2048、4096、8192、16384、65536、···)

注:テクスチャファイルは、それらの寸法を有していなければならない、しかし、あなたはそれが修正する必要があり、任意の大きさ