Ik heb een probleem met een OpenGL programma dat ik aan het maken ben. Ik heb het probleem terug gebracht tot de volgende situatie: ik probeer een vierkant (QUAD) te tekenen met een verloop van kleuren (Rood in de ene hoek, groen in de ander, etc.).
Dit doe ik door de shademodel op smooth te zetten, zodat ik voor elk punt van de quad een aparte kleur kan definieren. De code ziet er dan zo uit:
Het resultaat ziet er dan als volgt uit:

Het probleem is echter dat ik in mijn programma ook licht nodig heb en dat het bovenstaande niet meer werkt op het moment dat ik het licht 'aanzet' door glEnable (GL_LIGHTING) aan te roepen. Op het moment dat ik dat doe, krijg ik het volgende:

De quad blijft dan geheel zwart. Omdat ik dacht dat het probleem kwam doordat ik nog geen lichtbronnen had gedefinieerd, heb ik deze ook toegevoegd, maar dit hielp geheel niet. Deze code staat (als commentaar) nog wel in mijn code, maar helpt dus niet.
Ik heb het programma zo klein mogelijk gemaakt, zodat het makkelijk te begrijpen is. Het bestaat nu enkel uit een main en een display functie. Download het hier.
Kan iemand mij vertellen wat ik hier fout doe?
Dit doe ik door de shademodel op smooth te zetten, zodat ik voor elk punt van de quad een aparte kleur kan definieren. De code ziet er dan zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| glShadeModel (GL_SMOOTH);
(...)
glBegin (GL_QUADS);
glNormal3f (0.0, 1.0, 0.0);
glColor3f (1.0, 0.0, 0.0);
glVertex3f (10.0, 50.0, 10.0);
glColor3f (0.0, 1.0, 0.0);
glVertex3f (90.0, 50.0, 10.0);
glColor3f (0.0, 0.0, 1.0);
glVertex3f (90.0, 50.0, 90.0);
glColor3f (0.0, 0.0, 0.0);
glVertex3f (10.0, 50.0, 90.0);
glEnd (); |
Het resultaat ziet er dan als volgt uit:

Het probleem is echter dat ik in mijn programma ook licht nodig heb en dat het bovenstaande niet meer werkt op het moment dat ik het licht 'aanzet' door glEnable (GL_LIGHTING) aan te roepen. Op het moment dat ik dat doe, krijg ik het volgende:

De quad blijft dan geheel zwart. Omdat ik dacht dat het probleem kwam doordat ik nog geen lichtbronnen had gedefinieerd, heb ik deze ook toegevoegd, maar dit hielp geheel niet. Deze code staat (als commentaar) nog wel in mijn code, maar helpt dus niet.
Ik heb het programma zo klein mogelijk gemaakt, zodat het makkelijk te begrijpen is. Het bestaat nu enkel uit een main en een display functie. Download het hier.
Kan iemand mij vertellen wat ik hier fout doe?
[ Voor 4% gewijzigd door Verwijderd op 01-02-2007 16:51 ]
