FBO Framebuffer object [LWJGL] 2D tutorial gesucht

Kroko309

Mitglied
Ich habe versucht ein gutes tutorial fuer das FBO zu finden. Jedoch habe ich nur solche gefunden wo es fuer 3D ist oder in c++ geschrieben ist. Das Problem dabei ist, dass ich in c++ nicht programmieren kann und auch noch nicht in 3D.
Im OpenGL bin ich nur ein anfänger. Ich habe es mit diesen beispielen versucht zu verstehen:
Tutorial 14 : Render To Texture | opengl-tutorial.org
Tutorial 14 : Render To Texture | opengl-tutorial.org
Render to Texture with Frame Buffer Objects (FBO) - LWJGL

Mein letzter versuch endete so:
Code:
package fbo2dtutorial2;


import java.util.logging.Level;
import java.util.logging.Logger;
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;
import static org.lwjgl.opengl.ARBFramebufferObject.*;
import static org.lwjgl.opengl.EXTFramebufferObject.*;
import static org.lwjgl.opengl.GL11.*;


/**
 *
 * 
 */
public class FBO2dTutorial2 {

    public static int dispHeight = 600, dispWidth = 800;
    static int colorTextureID;
    static int framebufferID;
    static int depthRenderBufferID;
    
    public static void main(String[] args) 
    {
        
        
        initDisplay();
        initGL();
        
        initLoop();
        
        cleanUp();
        
    }
    
    
    
    
    private static void initLoop()
    {
        while (!Display.isCloseRequested())
        {
            try {
                Thread.sleep(100);
            } catch (InterruptedException ex) {
                Logger.getLogger(FBO2dTutorial2.class.getName()).log(Level.SEVERE, null, ex);
            }
            
            glBegin(GL_QUADS);
            glVertex2f(0.0f, 0.0f);System.out.println("Kreslím bod A");
            glVertex2f(1.0f, 0.0f);System.out.println("Kreslím bod B");
            glVertex2f(1.0f, 1.0f);System.out.println("Kreslím bod C");
            glVertex2f(0.0f, 1.0f);System.out.println("Kreslím bod D");
            glEnd();
            
            renderToFBO();
            
        }
    }
    
    
    private static void renderToFBO()
    {
        glBindTexture(GL_TEXTURE_2D, 0);                                // unlink textures because if we dont it all is gonna fail
        glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, framebufferID);        // switch to rendering on our FBO
        
        System.out.println("Kreslím");
        glClearColor (1.0f, 0.0f, 0.0f, 0.5f);
        glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);            // Clear Screen And Depth Buffer on the fbo to red
        glLoadIdentity ();                                              // Reset The Modelview Matrix
        
        
        glBegin(GL_QUADS);
            glTexCoord2f(0.0f, 0.0f); glVertex2f(-1.0f, -1.0f);  // Bottom Left Of The Texture and Quad
            glTexCoord2f(1.0f, 0.0f); glVertex2f( 1.0f, -1.0f);  // Bottom Right Of The Texture and Quad
            glTexCoord2f(1.0f, 1.0f); glVertex2f( 1.0f,  1.0f);  // Top Right Of The Texture and Quad
            glTexCoord2f(0.0f, 1.0f); glVertex2f(-1.0f,  1.0f);  // Top Left Of The Texture and Quad
        glEnd();
        
        
        glDisable(GL_TEXTURE_2D);
        glFlush ();
    }
    
    /******************************************************************************/
    
    private static void cleanUp() {
        Display.destroy();
    }

    private static void initGL() {
        glMatrixMode(GL_PROJECTION);                                            //zvolili sme si projekcny matrix
        glLoadIdentity();                                                       //zresetovali sme pamať matrixu
        glOrtho(0,Display.getWidth(),0, Display.getHeight(), -1, 1);            // zvolili sme si typ zobrazenia a velkosť videnej plochy
        glMatrixMode(GL_MODELVIEW);                                             //zvolili sme si modelview matrix
        
        glClearColor(0,0,0,1);                                                  //nastavenie farby pozadia/ničoho na danu hodnotu
        
        glDisable(GL_DEPTH_TEST);                                               //Deaktivovali sme Depth test pretože nebudeme pracovatť v 3D
        glEnable(GL_TEXTURE_2D);
        
        /***************/
        initFBO();
    }

    private static void initDisplay() {
        try {
            Display.setDisplayMode(new DisplayMode(dispWidth,dispHeight));
            Display.create();
            Display.setVSyncEnabled(true);
        } 
        catch (LWJGLException ex) {
            Logger.getLogger(FBO2dTutorial2.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        glColor3f(1,1,0);
        glBegin(GL_QUADS);
            glTexCoord2f(0.0f, 0.0f);System.out.println("Kreslím bod 1");
            glTexCoord2f(1.0f, 0.0f);System.out.println("Kreslím bod 2");
            glTexCoord2f(1.0f, 1.0f);System.out.println("Kreslím bod 3");
            glTexCoord2f(0.0f, 1.0f);System.out.println("Kreslím bod 4");
        glEnd();
    }

    private static void initFBO() {
       // check if GL_EXT_framebuffer_object can be use on this system
        if (!GLContext.getCapabilities().GL_EXT_framebuffer_object) {
            System.out.println("FBO not supported!!!");
            System.exit(0);
        }
        else {
             
            System.out.println("FBO is supported!!!");
             
            // init our fbo
     
            framebufferID = glGenFramebuffersEXT();                                         // create a new framebuffer
            colorTextureID = glGenTextures();                                               // and a new texture used as a color buffer
            //depthRenderBufferID = glGenRenderbuffersEXT();                                  // And finally a new depthbuffer
     
            glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, framebufferID);                        // switch to the new framebuffer
            
            // initialize color texture
            glBindTexture(GL_TEXTURE_2D, colorTextureID);                                   // Bind the colorbuffer texture
            
            glTexImage2D(GL_TEXTURE_2D, 0,GL_RGBA8, 500, 400, 0,GL_RGBA, GL_INT, (java.nio.ByteBuffer) null); // Give an empty image to OpenGL
            
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);              // Poor filtering. Needed !
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);              // Poor filtering. Needed !
            glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_COLOR_ATTACHMENT0_EXT,GL_TEXTURE_2D, colorTextureID, 0); // attach it to the framebuffer
            
            
            // Always check that our framebuffer is ok
            if(glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
            System.out.println("pojebalo sa to");
            
            glViewport(0,0,500,400);
    }
    
}

    
}

:rtfm: ---> ;(

Meine frage an euch ist, ob ihr mir einen tutorial empfehlen würdet der genau fuer dass ist wozu ich ihn brauche. Oder ob ihr mir einen source code schreibt mit einer guten kommentaren-//erklärung :oops:

Ich ferstehe nicht wie ich dass FBO erstellen soll und es am bildschirm zeigen soll und naturliech wie ich rein zeichne. Danke fuer euere hilfe und tut mir leid wegen meiner deutschen gramatik.
 

Kroko309

Mitglied
Niemand kann mir sagen wie ich in glOrtho ein FBO (hintergrund) erstele?????
Bitte, ich bin in einer sackgasse. Ohne das FBO kan ich das spiel nicht zu ende programieren.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J virtuellen Framebuffer darstellen Spiele- und Multimedia-Programmierung 2
G [LibGDX/Java] ArrayList Object Speicher Spiele- und Multimedia-Programmierung 3
R LWJGL: Object Loader -> .obj, .c4d, ... laden Spiele- und Multimedia-Programmierung 3
M Wavefront Object Loader zeigt nur eine Textur an. Spiele- und Multimedia-Programmierung 7
Kr0e OpenGL .. Pixel Buffer Objekt oder Frame Buffer Object? Spiele- und Multimedia-Programmierung 2
B Java 3D Object Loader -- Facharbeit Spiele- und Multimedia-Programmierung 9
M Probleme mit WaveFront-Object - Datei Spiele- und Multimedia-Programmierung 7
N Object Loader Spiele- und Multimedia-Programmierung 1
L Wie kann ich mehrere Texturen auf ein Object File mappen Spiele- und Multimedia-Programmierung 4
coolian lwjgl glfw window zeigt nur grau an Spiele- und Multimedia-Programmierung 0
coolian slick lwjgl text darstellen mit UnicodeFont funktoniert nicht? Spiele- und Multimedia-Programmierung 11
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 [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: 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
CookieSoft Slick und LWJGL Texture lag Spiele- und Multimedia-Programmierung 13
U OpenGl 1.1 (LWJGL GL11.*) und weiter? Spiele- und Multimedia-Programmierung 7
0 Grafikfehler LWJGL Spiele- und Multimedia-Programmierung 2
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben