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:
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.
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.