Slick und LWJGL Texture lag

CookieSoft

Mitglied
Hey,
ich habe mal eine Frage, ich lade meine Texturen mit Slick und nutze sie dann in opengl. Jetzt ist es aber so ich habe eine kleine Textur da klappt alles gut. Aber jetzt lade ich eine große Textur jetzt laggt das ganze Spiel... Was kann man da machen und woran liegt das?
 

Network

Top Contributor
Wie groß ist die Textur und wie groß ist die eigentliche Darstellung?
Unterscheiden sich die beiden zu sehr, wird sehr viel Berechnungszeit benötigt das Bild zu skalieren.

Gruß
Net
 
G

Guest2

Gast
Moin,

zur Skalierung gibt es Mipmaps. Grundsätzlich sind große Texturen mit OpenGL kein Problem (natürlich bis zu gewissen Grenzen, eine 100GB Textur wird eine mobile GPU nur schwer bewältigen können).

Lässt sich das Problem vielleicht in ein KSKB gießen?

Viele Grüße,
Fancy
 

CookieSoft

Mitglied
Also meine Texturen-Datei hat eine Abmessung von 880x740 und eine Größe von 1,18MB. Diese wird als "Hintergrund" für mein Spiel verwendet daher wird diese auf die Größe meines Displays skaliert, dieser hat eine Abmessung von 800x600. Ich denke nämlich nicht das es an der Dateigröße liegt...
 

Evil-Devil

Top Contributor
Zunächst einmal sollte deine Texture PoT (n^2) kompatibel sein, dann brauch SLICK die nicht mehr angleichen. Kann es vielleicht sein das du die Texture im eigentlichen Render Vorgang jedes Mal neu lädst? Denn selbst bei einer 2048x2048 Textur sollte noch nichts ruckeln...

Wieso ist das Beispiel 38! MB klein?
 

Evil-Devil

Top Contributor
So...RAR geladen...und so viele Ohrfeigen kann man gar nicht mehr austeilen. Wieso zur Hölle packst du erstens das 28! MB PSD mit ins RAR und zweitens wieso packst du es ebenfalls in JAR rein? Also 56MB an Daten die niemanden interessieren!

Die Libs und Natives interessieren auch niemanden. Es wurde nach Source gefragt und alles was du lieferst ist ein überfrachtetes Archive das keinen Source enthält.


Grml!
 

CookieSoft

Mitglied
Also:
So lade ich den Hintergrund:
Java:
GL11.glEnable(GL11.GL_TEXTURE_2D);
        Texture texture = Textures.getTexture("blatt");
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
        texture.bind();
        BufferObject bo = new BufferObject();
        bo.setDrawMode(GL11.GL_QUADS);
        bo.setTextureMax(texture.getWidth(), texture.getHeight());
        bo.putCoord(0.0f, 0.0f);
        bo.putCoord(Display.getWidth(), 0.0f);
        bo.putCoord(Display.getWidth(), Display.getHeight());
        bo.putCoord(0.0f, Display.getHeight());
        bo.drawObject();
        texture.release();
Meine Textures class:
Java:
public static Texture getTexture(String file){
        try {
            Texture tex = TextureLoader.getTexture("PNG", new FileInputStream(new File("res/" + file + ".png")));
            return tex;
        } catch (IOException ex) {
            Logger.getLogger(Textures.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }
Meine BufferObjectClass (Nicht wunder ist noch ein wenig ein Chaos ;D):
Java:
public class BufferObject {
    private final int dimension = 2;
    private int drawMode; 
    private ArrayList<float[]> floatArray;
    private ArrayList<float[]> floatTexture;
    
    private boolean hasTexture;
    private boolean hasColor;
    
    public BufferObject(){
        floatArray = new ArrayList<float[]>();
        floatTexture = new ArrayList<float[]>();
        hasTexture = false;
        hasColor = false;
    }
    public void setDrawMode(int mode){
        drawMode = mode;
    }
    public void setTexturePart(float texWidth, float texHeight, int nPartsX, int nPartsY, int partX, int partY){
        hasTexture = true;
        floatTexture.add(new float[]{texWidth/nPartsX*partX, (texHeight/nPartsY*partY)+(texHeight/nPartsY)});
        floatTexture.add(new float[]{texWidth/nPartsX*partX, texHeight/nPartsY*partY});
        floatTexture.add(new float[]{(texWidth/nPartsX*partX)+(texWidth/nPartsX), texHeight/nPartsY*partY});
        floatTexture.add(new float[]{(texWidth/nPartsX*partX)+(texWidth/nPartsX), (texHeight/nPartsY*partY)+(texHeight/nPartsY)});
    }
    public void setTextureMax(float texWidth, float texHeight){
        hasTexture = true;
        floatTexture.add(new float[]{0.0f, 0.0f});
        floatTexture.add(new float[]{texWidth, 0.0f});
        floatTexture.add(new float[]{texWidth, texHeight});
        floatTexture.add(new float[]{0.0f, texHeight});
    }
    public void putTexCoord(float x, float y){
        hasTexture = true;
        floatTexture.add(new float[]{x, y});
    }
    public void putCoord(float[] coord){
        floatArray.add(coord);
    }
    public void putCoord(float x, float y){
        floatArray.add(new float[]{x, y});
    }
    public void drawObject(){
        FloatBuffer buffer = BufferUtils.createFloatBuffer((floatArray.size()*dimension));
        FloatBuffer textureBuffer = BufferUtils.createFloatBuffer((floatTexture.size()*2));
        
        for(int i=0;i<=floatArray.size()-1;i++){
            buffer.put(floatArray.get(i));
        }
        buffer.flip();
        for(int i=0;i<=floatTexture.size()-1;i++){
            textureBuffer.put(floatTexture.get(i));
        }
        textureBuffer.flip();
        
        int texId = glGenBuffers();
        int bufferId = glGenBuffers();
        
        if(hasTexture){
            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
            glBindBuffer(GL_ARRAY_BUFFER, texId);
            glBufferData(GL_ARRAY_BUFFER, textureBuffer, GL_STATIC_DRAW);
            glTexCoordPointer(2, GL_FLOAT, 0, 0L);
        }
        glBindBuffer(GL_ARRAY_BUFFER, bufferId);
        glBufferData(GL_ARRAY_BUFFER, buffer, GL_STATIC_DRAW);
        glBindBuffer(GL_ARRAY_BUFFER, 0);
        glEnableClientState(GL_VERTEX_ARRAY);
        glBindBuffer(GL_ARRAY_BUFFER, bufferId);
        glVertexPointer(dimension, GL_FLOAT, 0, 0L);
        glDrawArrays(drawMode, 0, floatArray.size());
        glBindBuffer(GL_ARRAY_BUFFER, 0);
        glDisableClientState(GL_VERTEX_ARRAY);
        glDisableClientState(GL_TEXTURE_COORD_ARRAY);
        glDeleteBuffers(bufferId);
        glDeleteBuffers(texId);
    }
}
Ich hoffe das reicht an Source :) ...
 

Evil-Devil

Top Contributor
Ok...wenn ich das richtig lese, wird bei jedem neu zeichnen deines Bildschirms die Textur erneut geladen. Wieso erzeugst du nicht einfach nur einmal den Buffer und übergibst den dann zum zeichnen? Das würde viel Arbeitsaufwand reduzieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
coolian slick lwjgl text darstellen mit UnicodeFont funktoniert nicht? Spiele- und Multimedia-Programmierung 11
S 2D mit Slick - Anfänger sucht Hilfe Spiele- und Multimedia-Programmierung 4
Hercules Slick - .fon Dateien benutzen? Spiele- und Multimedia-Programmierung 6
N [SLICK] Rectangle in Array Speichern Spiele- und Multimedia-Programmierung 3
X Android Slick AE Anmation Spiele- und Multimedia-Programmierung 2
X Android Slick AE Image Pfad Spiele- und Multimedia-Programmierung 3
X Slick in Android Apps einsetzten Spiele- und Multimedia-Programmierung 6
Rayo Slick Applet Spiele- und Multimedia-Programmierung 12
CookieSoft Slick Texture laden Fehler Spiele- und Multimedia-Programmierung 6
D Slick Lib - Bilder einlesen funktioniert nicht Spiele- und Multimedia-Programmierung 2
staxx6 (Slick) Steuerung - mehrere Belegungen Spiele- und Multimedia-Programmierung 12
L Slick-Image aus byte-array erzeugen Spiele- und Multimedia-Programmierung 2
coolian lwjgl glfw window zeigt nur grau an Spiele- und Multimedia-Programmierung 0
F OpenGL (LWJGL) Shader Programmierung GLSL Spiele- und Multimedia-Programmierung 2
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
V LWJGL GUI Spiele- und Multimedia-Programmierung 1
V GUI in LWJGL 2 erstellen Spiele- und Multimedia-Programmierung 6
C GLSL Shaderprogrammierung in LWJGL 3 Spiele- und Multimedia-Programmierung 12
G Low Poly 3D LWJGL Shader Problem Spiele- und Multimedia-Programmierung 4
B LWJGL OpenGL SIGSEGV auf Linux (Verzweiflung :/) Spiele- und Multimedia-Programmierung 8
G LWJGL .obj .mtl loader Spiele- und Multimedia-Programmierung 3
G 2D animationen LWJGL Spiele- und Multimedia-Programmierung 0
pcfreak9000 "Allgemeine" Performance verbessern (LWJGL 2) Spiele- und Multimedia-Programmierung 2
G LWJGL Rendert nicht Spiele- und Multimedia-Programmierung 3
G lwjgl verwendung Spiele- und Multimedia-Programmierung 6
R [LWJGL] Skeletal Animation Spiele- und Multimedia-Programmierung 5
E LWJGL glGenVertexArrays() erzeugt doppelte IDs Spiele- und Multimedia-Programmierung 3
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
Streeber Problem mit Transparenz/TextDrawing in LWJGL/Slick2d (OpenGL) Spiele- und Multimedia-Programmierung 1
K No Lwjgl Spiele- und Multimedia-Programmierung 2
T LWJGL 2.9.2: Seltsamer Effekt beim Rendern (VertexShader Problem?) Spiele- und Multimedia-Programmierung 3
T LWJGL: Terrain-Texturen / 2D-Array in Shader? Spiele- und Multimedia-Programmierung 2
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
T [LWJGL] Textur / File wieder freigeben Spiele- und Multimedia-Programmierung 4
F [LWJGL] Skeletal Animation 3D Spiele- und Multimedia-Programmierung 1
C Generelle Hilfe zur lwjgl Spiele- und Multimedia-Programmierung 0
D LWJGL gluLookAt "Umschauen" Problem Spiele- und Multimedia-Programmierung 0
D Problem mit Würfelanimierung in LWJGL Spiele- und Multimedia-Programmierung 7
RalleYTN LWJGL Vignette Spiele- und Multimedia-Programmierung 2
E LWJGL Switchen zwischen gluOrtho und gluPerspective Spiele- und Multimedia-Programmierung 0
RalleYTN LWJGL Rotation Spiele- und Multimedia-Programmierung 1
C LWJGL Color Picking Textures deaktivieren Spiele- und Multimedia-Programmierung 0
K FBO Framebuffer object [LWJGL] 2D tutorial gesucht Spiele- und Multimedia-Programmierung 2
K [LWJGL] 2D Tunneler Hintergrund Spiele- und Multimedia-Programmierung 7
S LWJGL 3d-spieleentwicklung Spiele- und Multimedia-Programmierung 3
H LWJGL-Renderfail Spiele- und Multimedia-Programmierung 1
Seikuassi LWJGL - Texturen flackern Spiele- und Multimedia-Programmierung 2
Androbin LWJGL - Kollisions-Bug (Fallen) Spiele- und Multimedia-Programmierung 14
K Schiessen in 2D (LWJGL) Spiele- und Multimedia-Programmierung 2
S LWJGL Kamera Problem - Alles verzerrt Spiele- und Multimedia-Programmierung 4
U Kann nur ein Objekt mit LWJGL rendern Spiele- und Multimedia-Programmierung 2
X LWJGL | Parent.isDisplayable() must be true | wie kann man das zu true machen? Spiele- und Multimedia-Programmierung 0
X [LWJGL] Binden von Texturen per PNG File und Texture Sheet Spiele- und Multimedia-Programmierung 1
X LWJGL - Anklick baren Button erstellen aber wie? Spiele- und Multimedia-Programmierung 6
U Quadrate anklicken LWJGL Spiele- und Multimedia-Programmierung 3
B LWJGL / OPENGL Kriege Depth-Test nicht hin :( Spiele- und Multimedia-Programmierung 0
B LWJGL Manche Seiten werden transparent angezeigt Spiele- und Multimedia-Programmierung 2
T LWJGL VBO's funktionieren nicht, geben aber auch keinen Fehler Spiele- und Multimedia-Programmierung 0
U Komische fragmente bei LWJGL Spiele- und Multimedia-Programmierung 6
B LWJGL StackOverFlow Problem nach 30sekunden. (Pong) Spiele- und Multimedia-Programmierung 2
Q LWJGL - Alpha-Probleme Spiele- und Multimedia-Programmierung 2
S [LWJGL] Zweimal selbe Textur trotz unterschiedlicher IDs Spiele- und Multimedia-Programmierung 3
O LWJGL AWTGLCanvas Tiefe auf 1 beschränkt Spiele- und Multimedia-Programmierung 5
Seikuassi LWJGL-Problem Spiele- und Multimedia-Programmierung 2
S [LWJGL] schwarzer Bildschrim beim rendern von .obj Model Spiele- und Multimedia-Programmierung 2
S [lwjgl] Renderbug bei mehreren Objekten Spiele- und Multimedia-Programmierung 2
R LWJGL: OpenGL Fehler - weitere Informationen auslesen möglich? Spiele- und Multimedia-Programmierung 2
S LWJGL Kamera Koordinaten invertiert. Spiele- und Multimedia-Programmierung 2
M LWJGL Text rendern Spiele- und Multimedia-Programmierung 3
B LWJGL Mauskoordinaten Spiele- und Multimedia-Programmierung 1
J LWJGL Update Schleife (Snake) Spiele- und Multimedia-Programmierung 6
B LWJGL Display.update() ist langsam Spiele- und Multimedia-Programmierung 5
R LWJGL: Performance glBegin, drawList, ... Spiele- und Multimedia-Programmierung 16
R LWJGL: Object Loader -> .obj, .c4d, ... laden Spiele- und Multimedia-Programmierung 3
R LWJGL: Textur -> unsichtbare Stellen, wie erzeugen? Spiele- und Multimedia-Programmierung 4
A LwJGL - Animation Stockt Spiele- und Multimedia-Programmierung 5
R [lwjgl] Cursor -> versetzt Zeichnen / Bild ist umgedreht Spiele- und Multimedia-Programmierung 2
R LWJGL: 3D Picking Spiele- und Multimedia-Programmierung 4
F LWJGL: Textur ändern mit GL11.readPixels Spiele- und Multimedia-Programmierung 5
F LWJGL: Licht und GL_LINES funktioniert nicht Spiele- und Multimedia-Programmierung 6
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
S LWJGL Rechteck wird nicht gezeichnet Spiele- und Multimedia-Programmierung 6
F LWJGL: Is undefined? Spiele- und Multimedia-Programmierung 7
F LWJGL Kamerabug Spiele- und Multimedia-Programmierung 2
F LWJGL Problem mit Erstellen eines Objekts und der Kamera Spiele- und Multimedia-Programmierung 5
F LWJGL Dreidimensionaler Würfel Spiele- und Multimedia-Programmierung 15
P LWJGL oder OpenGL (C++) Spiele- und Multimedia-Programmierung 7
P "Tiefe" in Objekten - LWJGL Spiele- und Multimedia-Programmierung 12
T LWJGL 3D Objekt Collision: Wie? Spiele- und Multimedia-Programmierung 11
S LWJGL Kamera Frage Spiele- und Multimedia-Programmierung 2
V Komischer Fehler in LWJGL Spiele- und Multimedia-Programmierung 18
Z lwjgl oder jogl nutzen Spiele- und Multimedia-Programmierung 9
Y LWJGL Hintergrund Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Textur wird falsch angezeigt Spiele- und Multimedia-Programmierung 12
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
Creylon [LWJGL] 2D Sprite Rotieren/Drehen Spiele- und Multimedia-Programmierung 6
CookieSoft LWJGL Ubuntu 12.04 Fehler Spiele- und Multimedia-Programmierung 7
E [LWJGL] Karusell, mehrere Objekte drehen sich um einen Mittelpunkt Spiele- und Multimedia-Programmierung 31
F lwjgl - Skysphere Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben