sooo nun sind die Schatten drin Ich würde gern eine einfache Art (kann ruhig ein paar Kanten haben) von Shadowmaps mit meinem Lampen realisieren. Ich bräuchte eigentlich "nur" eine Abfrage ob meine Lampe die Lichttextur projezieren soll oder nicht.. Soweit so gut..
1. Wie bekomme ich den Tiefenpuffer in eine Textur ohne FBO's? 2. Wie muss der Fragmentvergleich aussehen?
Nun ich kann doch nur eine gewissen anzahl an FBOs erstellen oder? Ich müsste aber min. 4 Tiefentexturen in den Shader bekommen. Ich habe das hier gefunden:
Äh, ich denke die Anzahl der FBOs ist nicht wirklich beschränkt. Des weiteren brauchst du auch nur einen FBO, den du kannst ja auch die Textur (=Tiefenbuffer) aushängen und eine andere einhängen. Ist sogar schneller als ein FBO-Wechsel.
Bei der Verwendung von glCopyTexSubImage2D wird die Textur einmal mehr als notwendig kopiert => schlecht.
GL_COLORATTACHMENT0_EXT bis 8 oder was auch immer sind für gleichzeitig gebundene Texturen! Du brauchst die aber eh nur nacheinander. Oben drein benötigst du sowieso das DEPTH_ATTACHMENT.
aber ich hab doch bloß einen Tiefenpuffer pro FBO?! Auch das FBO-Codebeispiel aus dem Tutorial (http://wiki.delphigl.com/index.php/GLSL ... d_Schatten) liefert einen fehler > glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) ist <> GL_FRAMEBUFFER_COMPLETE_EXT
hier noch die komplette Funktion zum erstellen:
Code:
function gsGenShadowFBO(Var AFBO: TFBOInfo): TBool32; var FBOState: TuInt32; begin with AFBO do begin glGenTextures(1, @image); glBindTexture(GL_TEXTURE_2D, image); glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT16, width, height, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, NIL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
//Initialisierung: FBO erstellen FBO binden Einen ColorBuffer an den FBO binden (ich glaub man braucht einen => ggf. RenderBuffer nehmen) FBO abschalten
// Rendern: FBO binden Schleife von 0 bis 10 begin Tiefentextur für Lampe i an GL_DEPTH_ATTACHMENT_EXT des FBO binden glCheckFramebufferStatusEXT zu debug-Zwekcen Tiefenbuffer leeren Aus Sicht von Lampe i rendern end FBO abschalten
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.