R
dass eine graka die keinen opengl treiber hat (nur MiniGL), einen opengl befehl nicht ausführt... hmm... wozu die aussage?
und wo ich gerade am rumklugscheissen bin
Abbadon schrieb:
für gewöhnlich berechnet man für jedes dreieck eine normale
bei opengl kann man für jeden "vertex" eine angeben indem man vor glVertex glNormal setzt, da sich bei GL_TIRANGLE_STRIP 2 Dreicke 2 eckpunkte teilen hast du ein problem. Ich bin mir nicht ganz sicher was opengl da macht, würd mich aber mal interessieren.
ich weiß nicht woher du deine definition von "normal" hast, aber es gibt zig wege normalen zu berechnen. bei opengl ist es nicht 100%ig definiert was mit einer normalen passiert. in den meißten fällen sollte die normale jedes vertices dafür genutzt werden um die intensität der beleuchtung für den vertex auszurechnen und dann auf einem poly zwischen deren vertices zu interpolieren.
es kann sein dass einige implementationen von opengl keine beleuchtung durchführen (die normale ignorieren), einige könnten die normale pro poly nutzen und flat shaden (ich glaube alte matrox karten machen das) und es gibt auch raytracer die eine phong beleuchtung durchführen mittels der normale, sie interpolieren also die normale und führen eine intensitätsberechnung pro pixel durch.
bei programmen wie z.b. 3dsmax gibt es mehrere normalen pro vertex, dort gibt es dann smoothgroups, dadurch ist dein begriff von "normal" noch weiter entfernt.
es gibt programme die pro vertex nur einmal eine normale mit einer bestimmten richtung pro vertexauf addieren (um dann mittels durchschnitt die vertexnormale zu erhalten). mache kommen auf die vertexnormale indem sie normalisierten normalen der angrenden polys aufaddieren, manchmal sind die noch normalisiert. beim bumpmapping werden die normalen aus texturen ausgelesen, bei terrain kann man sie mittels steigung errechnen (schneller als kreuzproduckte angrenzender polys zu nutzen).
so, genug ge[/klugscheiss]t
rapso->greets();