ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4381895
Jetzt (Chat):
24 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
OpenGL API + SDL
FBO + ATi-Karte == Problem
Normal
AutorThema
Fetze Offline
ZFX'ler


Registriert seit:
06.10.2007

Deutschland
FBO + ATi-Karte == ProblemNach oben.
Ich habe ein Problem.

Nach langem herumprobieren habe ich FBOs unter OpenGL nun endlich zum laufen gebracht. Hier der funktionierende Code:

Code:
--------------------< CreateFBO( .. ) from Texture object >--------------------

// Set-up texture
Bind(this);
Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_RGBA8, oglWidth, oglHeight, 0, Gl.GL_RGBA, Gl.GL_UNSIGNED_BYTE, null);
this.ApplyTexFlags( .. );

// Create objects
Gl.glGenFramebuffersEXT(1, out this.framebufferID);
Gl.glBindFramebufferEXT(Gl.GL_FRAMEBUFFER_EXT, this.framebufferID);

// Attach texture to FBO
Gl.glFramebufferTexture2DEXT(Gl.GL_FRAMEBUFFER_EXT, Gl.GL_COLOR_ATTACHMENT0_EXT, Gl.GL_TEXTURE_2D, this.textureID, 0);

// Initialize Depthbuffer
if (reqZBuffer)
{
    Gl.glGenRenderbuffersEXT(1, out this.depthbufferID);
    Gl.glBindRenderbufferEXT(Gl.GL_RENDERBUFFER_EXT, this.depthbufferID);
    Gl.glRenderbufferStorageEXT(Gl.GL_RENDERBUFFER_EXT, Gl.GL_DEPTH_COMPONENT, oglWidth, oglHeight);
    Gl.glFramebufferRenderbufferEXT(Gl.GL_FRAMEBUFFER_EXT, Gl.GL_DEPTH_ATTACHMENT_EXT, Gl.GL_RENDERBUFFER_EXT, this.depthbufferID);
}

// Status check


// Unbind all to regularily continue drawing operations
Gl.glBindRenderbufferEXT(Gl.GL_RENDERBUFFER_EXT, 0);
Gl.glBindFramebufferEXT(Gl.GL_FRAMEBUFFER_EXT, 0);
Bind(lastBound);

-----------------------------------------------------------------------------------


Code:
--------------------< ApplyTexFlags( .. ) from Texture object >--------------------

if ((this.texflags & TexFlag.EdgeClamp) != 0)
{
    Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_CLAMP_TO_EDGE);
    Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_CLAMP_TO_EDGE);
}
if ((this.texflags & TexFlag.Smooth) != 0)
{
    if ((this.texflags & TexFlag.MipMap) != 0)
    {
        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR_MIPMAP_LINEAR);
        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR);
        Gl.glGenerateMipmapEXT(Gl.GL_TEXTURE_2D);
    }
    else
    {
        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR);
        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR);
    }
}
else
{
    if ((this.texflags & TexFlag.MipMap) != 0)
    {
        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_NEAREST_MIPMAP_LINEAR);
        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_NEAREST);
        Gl.glGenerateMipmapEXT(Gl.GL_TEXTURE_2D);
    }
    else
    {
        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_NEAREST);
        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_NEAREST);
    }
}

-----------------------------------------------------------------------------------


Wie gesagt: Dieser Code funktioniert wunderbar. Das Problem ist, dass er genau das auf ATi-Karten scheinbar *nicht* tut, wieso ist mir ein Rätsel.

Hat irgendjemand eine Lösung oder ein vergleichbares Problem?
06.07.2008, 19:59:02 Uhr
knivil Offline
ZFX'ler


Registriert seit:
03.04.2008

Baden-Württemberg
Re: FBO + ATi-Karte == ProblemNach oben.
Wenn OpenGl, dann nVIdia, dann klappt's auch mit Linux. Nur meine Meinung.
07.07.2008, 11:19:32 Uhr
Fetze Offline
ZFX'ler


Registriert seit:
06.10.2007

Deutschland
Re: FBO + ATi-Karte == ProblemNach oben.
Ähm, das ist ja schön und gut - aber es wäre mir schon wichtig, dass auch ATi-Karten mit meinem Projekt klarkommen und FBOs sind da unverzichtbar ôo

ATi-Karten machen laut dem Hardwarebericht von Valve 2006 immerhin rund 30% aller Grafikkarten aus.
07.07.2008, 12:37:35 Uhr
Das Ich Offline
ZFX'ler


Registriert seit:
11.07.2005

Schleswig-Holstein
Re: FBO + ATi-Karte == ProblemNach oben.
Ich schau mir das morgen mal an. Mein FBO code läuft auf ATI, würde dir der helfen? Ich hatte erst auch Probleme mit FBOs.

Übrigends läuft OpenGL normalerweise reibungslos auf ATI Karten. Das sollte man ggf. aber extern diskutieren.
13.07.2008, 22:05:45 Uhr
http://www.one-digit-ahead.com/
Normal


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel