OpenGL Bild wird nicht richtig angezeigt

javafreak91

Mitglied
Hallo zusammen,
Ich programmiere mit OpenGL das Spiel TicTacToe und
habe folgendes Problem. Mein Frame ist 800x800 gross.
Wenn ich auf das Frame ein Bild zeichne, wird es zwar
gezeichnet aber nicht in der richtigen Grösse. Woran
könnte das liegen?
Ps.: Im Anhang befindet sich ein Screenshoot von meinem Program.
Main.java:
Java:
import static Display.GUI.*;
import org.lwjgl.opengl.Display;
import Grid.Grid;

public class Main{
    private final int FPS = 120;
    public Main(){
        launchGame();//siehe GUI.java
        Grid grid = new Grid(quickLoad("background"));
        while(!Display.isCloseRequested()){
            grid.draw(); 
            Display.update();
            Display.sync(FPS);
        }
        Display.destroy();
    }
    public static void main(String[] args){
        new Main();
    }

GUI.java:
Java:
public class GUI{

    public final static int WIDTH = 800;
    public final static int HEIGHT = 800;
    public final static int SCALE = 1;
   
    public static void launchGame(){
        Display.setTitle("TicTacToe");
        try {
            Display.setDisplayMode(new DisplayMode(WIDTH * SCALE, HEIGHT * SCALE));
            Display.create();
        } catch (LWJGLException e) {
            e.printStackTrace();
        }
       
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(0, WIDTH * SCALE, HEIGHT * SCALE, 0, 1, -1);
        glMatrixMode(GL_MODELVIEW);
        glEnable(GL_TEXTURE_2D);
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
       
    }   
    public static void drawTexture(Texture tex, float x, float y, float width, float height){
        tex.bind();
        glTranslatef(x, y, 0);
        glBegin(GL_QUADS);
        glTexCoord2f(0, 0);
        glVertex2f(0, 0);
        glTexCoord2f(1, 0);
        glVertex2f(width, 0);
        glTexCoord2f(1, 1);
        glVertex2f(width, height);
        glTexCoord2f(0, 1);
        glVertex2f(0, height);
        glEnd();
        glLoadIdentity();
    }
    public static Texture quickLoad(String name){
        Texture tex = null;
        tex = loadTexture("res/" + name + ".png", "PNG");
        return tex;
    }
Und zuletzt Grid.java:
Java:
public class Grid{
   private Texture texture;
   private final int X = 0, Y = 0;
   public Grid(Texture texture){
       this.texture = texture;
   }
   public void draw(){
       drawTexture(texture, X, Y, WIDTH, HEIGHT);//siehe GUI.java
   }
}
 

Anhänge

  • Screen.png
    Screen.png
    19,7 KB · Aufrufe: 30

javafreak91

Mitglied
Na gut... Ich glaube ich weiss jetzt warum das nicht klappt. Um den Code zu testen habe ich eine neue Methode geschrieben, die einfach nur ein Quadrat aufs Display zeichnet.
Code:
Java:
    public static void drawQuad(float x, float y, float width, float height){
        glBegin(GL_QUADS);
        glVertex2f(x * SCALE, y * SCALE); //top left
        glVertex2f((x + width) * SCALE, y * SCALE);  //top right
        glVertex2f((x + width) * SCALE, (y + height) * SCALE);  //bottom right
        glVertex2f(x * SCALE, (y + height) * SCALE);  //bottom left
        glEnd();
    }
Und das Ergebnis war so wie ichs mir gedacht habe. Ich hatte ein Quadrat, welches so gross war wie mein Frame.
Also.... Mein Bild wird füllt das Quadrat nicht aus. Ich muss nun rausfinden, wie ich das Bild ausstrecken kann.
Danke trotzdem...
 

javafreak91

Mitglied
Alles klar... Für diejenigen, die das selbe Problem haben... Die Lösung ist sehr einfach.
Ihr müsst die drawTexture Methode anpassen und zwar so:
Java:
    public static void drawTexture(Texture tex, float x, float y, float width, float height){
        tex.bind();
        glTranslatef(x, y, 0);
        glBegin(GL_QUADS);
        glTexCoord2f(0, 0);
        glVertex2f(0, 0);
        glTexCoord2f(1, 0);
        glVertex2f(tex.getTextureWidth(), 0);
        glTexCoord2f(1, 1);
        glVertex2f(tex.getTextureWidth(), tex.getTextureHeight());
        glTexCoord2f(0, 1);
        glVertex2f(0, tex.getTextureHeight());
        glEnd();
        glLoadIdentity();
    }
Ihr ersetzt width bzw. height durch tex.getTextureWidth(), and ....Height(). Das wars :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
temi OpenGL: Eine Kugel Spiele- und Multimedia-Programmierung 7
P Audio Visualizer mit OpenGL in Java? Spiele- und Multimedia-Programmierung 4
Z Vlcj in OpenGL Spiele- und Multimedia-Programmierung 4
coolian opengl von scale in breite und höhe konvertieren Spiele- und Multimedia-Programmierung 23
F OpenGL (LWJGL) Shader Programmierung GLSL Spiele- und Multimedia-Programmierung 2
K Messdaten in Echtzeit darstellen in OpenGL Spiele- und Multimedia-Programmierung 4
B LWJGL OpenGL SIGSEGV auf Linux (Verzweiflung :/) Spiele- und Multimedia-Programmierung 8
KeexZDeveoper Fehler von OpenGL Spiele- und Multimedia-Programmierung 1
Kim_Dotcom libGDX - opengl Fehler Spiele- und Multimedia-Programmierung 5
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
RalleYTN OpenGL Context im JFrame? Spiele- und Multimedia-Programmierung 0
L OpenGL TransformationMatrix eines Flugzeugs Spiele- und Multimedia-Programmierung 2
F OpenGL - Transparenz mit Depth Peeling Spiele- und Multimedia-Programmierung 0
turing OpenGL / Jogle Code Reveiw zur Performance Verbesserung Spiele- und Multimedia-Programmierung 1
K LibGdx, Loadingscreen & Opengl context Spiele- und Multimedia-Programmierung 3
turing OpenGL VBO and Unfiform Handling Spiele- und Multimedia-Programmierung 1
B LWJGL / OPENGL Kriege Depth-Test nicht hin :( Spiele- und Multimedia-Programmierung 0
T opengl und Android.... Spiele- und Multimedia-Programmierung 3
D [OpenGL] Spiel in der Art von Age of Empires Spiele- und Multimedia-Programmierung 4
R LWJGL: OpenGL Fehler - weitere Informationen auslesen möglich? Spiele- und Multimedia-Programmierung 2
T Welche OpenGL-Version soll ich verwenden? Spiele- und Multimedia-Programmierung 2
O OpenGL - Texture falsch herum Spiele- und Multimedia-Programmierung 3
Gregorrr OpenGL & RCP/SWT Spiele- und Multimedia-Programmierung 3
P LWJGL oder OpenGL (C++) Spiele- und Multimedia-Programmierung 7
K Android: OpenGL render performance Tipps ? Spiele- und Multimedia-Programmierung 4
lumo opengl, sprites/tiles Spiele- und Multimedia-Programmierung 8
M OpenGL: Rectangle dort erstellen wo ich hintippe Spiele- und Multimedia-Programmierung 2
U OpenGl 1.1 (LWJGL GL11.*) und weiter? Spiele- und Multimedia-Programmierung 7
CookieSoft OpenGl Translatef Frage Spiele- und Multimedia-Programmierung 2
V Keine Ahnung von OpenGL! Hilfe wäre lieb! Spiele- und Multimedia-Programmierung 8
T 3D Stadtmodell mit OpenGL Spiele- und Multimedia-Programmierung 5
TheWhiteShadow OpenGL glDrawArrays Bufferfehler Spiele- und Multimedia-Programmierung 10
B LWJGL/OpenGL rendert manche Objekte nicht Spiele- und Multimedia-Programmierung 6
S OpenGL Textur unsauber Spiele- und Multimedia-Programmierung 2
T OpenGL ES verschwindene Vertices Spiele- und Multimedia-Programmierung 2
T Android OpenGL Bewegen Spiele- und Multimedia-Programmierung 5
R OpenGL Textur mit verschiedenen bit depths Spiele- und Multimedia-Programmierung 6
Helgon OpenGL Blend Frage Spiele- und Multimedia-Programmierung 18
A LWJGL/OpenGL und Text Spiele- und Multimedia-Programmierung 8
Helgon OpenGL vernünftige Tutorial? Spiele- und Multimedia-Programmierung 22
A OpenGL Textur und nicht Textur Spiele- und Multimedia-Programmierung 2
T Jmonkey opengl problem Spiele- und Multimedia-Programmierung 13
T Probleme mit Skysphere in Opengl Spiele- und Multimedia-Programmierung 4
M Problem mit Kamera (glMultMatrix (OpenGL/ LWJGL)/ Quaternionen) Spiele- und Multimedia-Programmierung 5
F Suche Tutorial zu "purem" OpenGL mit Java Spiele- und Multimedia-Programmierung 10
Kr0e OpenGL + glSubTexImage2D -> Bufferproblem Spiele- und Multimedia-Programmierung 3
F OpenGL Screenshot in iMove (als Greenscreen) => Farben invertiert? Spiele- und Multimedia-Programmierung 16
I Vergleich von Java3D und OpenGL Spiele- und Multimedia-Programmierung 17
F Mac: OpenGL Desktop-Screen aus Grafikkarte lesen Spiele- und Multimedia-Programmierung 2
F OpenGL 2D MouseClick/MouseMove Listener Spiele- und Multimedia-Programmierung 4
Kr0e Sehr schnelle Texturupdates (OpenGL) Spiele- und Multimedia-Programmierung 3
Kr0e OpenGL beliebige Texturgröße Spiele- und Multimedia-Programmierung 2
BattleMaster246 OpenGL - Transparenz Spiele- und Multimedia-Programmierung 10
Kr0e OpenGL .. Pixel Buffer Objekt oder Frame Buffer Object? Spiele- und Multimedia-Programmierung 2
Y JOGL / OPENGL in Frame Spiele- und Multimedia-Programmierung 11
A Problem openGL-Pipeline mit Win7? Spiele- und Multimedia-Programmierung 6
G OpenGL boolesche operation auf Rechtecke Spiele- und Multimedia-Programmierung 15
A JOGL / OpenGL Spiele- und Multimedia-Programmierung 7
G API für 3d-Programmierung? OpenGL? Spiele- und Multimedia-Programmierung 12
J OpenGL (JOGL) - Radial Blur Effekt (Glow) Spiele- und Multimedia-Programmierung 2
J Opengl Texture laden Null Pointer Exception Spiele- und Multimedia-Programmierung 6
J netbeans opengl keyPressed(KeyEvent evt) benutzen Spiele- und Multimedia-Programmierung 4
J netbeans opengl gluPerspective und gluLookAt Verständnis Spiele- und Multimedia-Programmierung 13
S glTexSubImage2D()-Fragen(Zerstörbares Terrain, OpenGL) Spiele- und Multimedia-Programmierung 3
Z Suche Tutorial zum Einstieg in OpenGl mit Java (JOGL) Spiele- und Multimedia-Programmierung 2
T Overlay in anderer OpenGL Anwendung Spiele- und Multimedia-Programmierung 4
egrath Vista OpenGL Performance Problem? Spiele- und Multimedia-Programmierung 3
Y OpenGL Spiele- und Multimedia-Programmierung 5
J opengl beispiele? Spiele- und Multimedia-Programmierung 10
D Java mit OpenGL - besser LWJGL oder JOGL? Spiele- und Multimedia-Programmierung 6
N OpenGL und DirectX - was genau ist das? Spiele- und Multimedia-Programmierung 5
C OpenGl Support für Applet (sun.java2d.opengl=True) Spiele- und Multimedia-Programmierung 3
B OpenGL oder Direct X Spiele- und Multimedia-Programmierung 9
B Bild wird nicht geladen Spiele- und Multimedia-Programmierung 4
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
S Wie kann ich ein Bild in einen Frame einfügen? Spiele- und Multimedia-Programmierung 2
U DPI von einem Bild definieren Spiele- und Multimedia-Programmierung 5
J Bild ohne Quallitätsverlust skalieren Spiele- und Multimedia-Programmierung 11
Silvascus Bild --> JFrame Hintergrund Spiele- und Multimedia-Programmierung 3
D getsubimage aus BufferedImage und Rueckwandlung in ein ImagePlus bild Spiele- und Multimedia-Programmierung 0
A Bild(sequenz) wird nicht geladen Spiele- und Multimedia-Programmierung 1
windl EXIFF Header in ein Bild schreiben Spiele- und Multimedia-Programmierung 0
L Bild in Richtung Maus drehen Spiele- und Multimedia-Programmierung 4
B Bild ohne Image auf die Festplatte streamen Spiele- und Multimedia-Programmierung 4
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
F [JMyron] Bild von int[] zu BufferedImage Spiele- und Multimedia-Programmierung 2
Hoppelmann Alphamap (Bild) für 3D-Terrain generieren Spiele- und Multimedia-Programmierung 2
K Bild von USB-Webcam über JMF Spiele- und Multimedia-Programmierung 2
M Farbwerte für Flächen aus einem Bild erkennen Spiele- und Multimedia-Programmierung 3
S Wolken Bild/Grafik vom Programm erstellen lassen Spiele- und Multimedia-Programmierung 11
P Bild Pixelweise auslesen Spiele- und Multimedia-Programmierung 13
K Bild berührt Bild Spiele- und Multimedia-Programmierung 29
aze Nicht rechteckiges Bild zeichnen Spiele- und Multimedia-Programmierung 5
A Bild einer Webcam auffangen Spiele- und Multimedia-Programmierung 20
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
lumo LWJGL - Bild rendern Spiele- und Multimedia-Programmierung 16
A .jpg-Bild auf andere Position verschieben Spiele- und Multimedia-Programmierung 4
F Bild im sourcecode Spiele- und Multimedia-Programmierung 32
F Bild einfärben Spiele- und Multimedia-Programmierung 5
J JOGL - Bild wird immer wieder weiß Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben