OpenGL accumulatie buffer werkt niet op alle computers

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Ik heb een raar probleem met OpenGL's accumulatie buffer. Ik heb een stuk code geschreven (niet bijzonder spannend) en het werkt perfect op Windows 7 32bit met een Intel Series 4 IGP. Ook werkt het perfect op een Linux bak waarvan ik de exacte specs niet weet. Maar nu is het gekke dat het niet werkt op mijn computer thuis (Windows 7 64bit, met een ATI HD4850, waarvan ik gister de drivers nog heb geupdate).

Nu denk ik dus niet dat het de code is, maar dat het ligt aan 'iets' op mijn computer. Toch stel ik deze vraag in PROG omdat het zeer specifiek is mbt tot OpenGL's accumulatie buffer. Andere programmas werken namelijk perfect, en andere features van OpenGL (zoals shaders) werken ook prima.

Toch nog even wat code:

C:
1
2
3
//Initialisatie van de accumulatie buffer
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_ACCUM | GLUT_DEPTH);
glClearAccum(0.0, 0.0, 0.0, 0.0);


C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    int i;
    GLint test[1];
    float weigth = 1.0/(float)apertureSamples; 
    glLoadIdentity();
    UpdateCamera();

    glClear(GL_ACCUM_BUFFER_BIT);
    glGetIntegerv(GL_ACCUM_RED_BITS, test);
    //test = 16 op pcs waar het wel werkt, 0 op pcs waar het niet werkt
    for(i = 0; i < apertureSamples; i++)
    {       
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
        glPushMatrix();
        glTranslatef(10*i, 0, 0);
        DrawScene(); //draw a couple of spheres
        glPopMatrix();
        glAccum(GL_ACCUM, weigth);
            //Hier krijg ik met glGetError() error 1282 GL_INVALID_OPERATION
        glFlush();
    }
    glAccum(GL_RETURN, 1.0);
    glutSwapBuffers();
}


Heeft iemand enige clue waarom dit niet werkt op Windows 7 64bit met een HD4850? Geen enkel ander programma (geeft naar mijn weten) problemen.

Verder weet ik dat de meeste van dit soort effecten tegenwoordig met float-textures en shaders gedaan worden, maar helaas is het een opdracht, dus op zijn minst wil ik een goede poging gedaan hebben om accumulatie buffers te laten werken voordat ik zoiets probeer.

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Je GL implementatie van je videokaart ondersteunt simpelweg geen accumulation buffers. Zoals je zelf al zegt worden deze dingen vaak door shaders afgevangen tegenwoordig; en zijn er amper nog effecten die de accumulation buffer daadwerkelijk gebruiken.
GL_INVALID_OPERATION is generated if there is no accumulation buffer.

GL_INVALID_OPERATION is generated if glAccum is executed between the execution of glBegin and the corresponding execution of glEnd.

[ Voor 20% gewijzigd door PrisonerOfPain op 04-03-2011 10:48 ]


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Maar een ATI HD4850 ondersteunt het niet en een Intel IGP wel, dat lijkt me gewoon erg sterk, is er een of andere manier om erachter te komen? Verder dacht ik dat OpenGL bij geen support altijd een software fallback had?

Hmm...

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Download glView en kijk bij "Display modes & pixel formats" of je kaart er ondersteuning voor heeft.

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Misschien dat je geen backward compatible opengl 3/4 profiel krijgt van de nieuwere driver op jouw computer. Weet niet zeker, maar accum buffer zouden goed deprecated kunnen zijn.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

Mijn AMD 5870 kan het iig niet :). Volgens mij is het ook echt een dode feature, ik kan niet herinneren dat ik 'm ooit gebruikt heb zien worden.

[ Voor 62% gewijzigd door .oisyn op 04-03-2011 13:30 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Damn, ik krijg ook net hetzelfde van mijn leraar te horen. Volgend jaar zullen ze iets anders verzinnen, nu mag ik FBOs gaan uitzoeken (wat ik niet heel erg vind, Computer Graphics is een leuk vak :D).

~ Mijn prog blog!

Pagina: 1