GL_EYE_PLANE Rationale

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

GL_EYE_PLANE Rationale
kurz und knapp:
warum wird die ebene, die ich mittels glTexGenfv(GL_S, GL_EYE_PLANE, genS); angebe, erstmal durch die inverse modelview matrix gedreht?

im aktuellen redbook wird das auch nur so beilaeufig erwaehnt, und der code, der das demonstriert, invertiert die identitaetsmatrix. (haha)

die gleichungen fuer die koordinaten benutzen dann auch noch kamerakoordinaten; falls man also von der “normalen” semantik der modelview
ausgeht (transformation model->view), dann wird in der texturkoordinatengenerierungsfunktion ein vektor in kamerakoordinaten mit dem normalenvektor
der ebene multipliziert, der vorher durch die inverse modelview (von rechts) multipliziert wurde; das muesste also ein vektor in modelkoordinaten sein.

und dass ist irgendwie … schlecht. wieder zum redbook: im gleichen kapitel steht, dass die texturgenerierungsfunktionen quasi den abstand des punktes
von der angegebenen ebene darstellen( falls ||genS|| = 1 ). das macht nur sinn, wenn die koordinaten/vektoren im selben vektorraum angegeben werden.

war das als convenience gedacht? “der programmierer braucht da sicher ne inverse matrix, also multiplizieren wir mal die inverse modelview drauf.” ?!

mit der bitte um erleuchtung
– kabel