Nach meiner Auffassung und der daraus folgenden Implementierung des
backfaceCulling ist dieser Stern definitiv "backface" und sollte doch
nicht gezeichnet werden.
lg,
Philip
lg maria
Genau. Wenn der "Stern" nicht "wegschaut", dann ist es schon korrekt, wenn
er sichtbar ist.
Ciao,
Christoph
ch...@cg.tuwien.ac.at
der stern im screenshot schaut doch weg.. das soll ja die unterseite des
teapots sein, oder nicht?
oder wird der "stern" einfach vom backface-culling ausgenommen, weil es
sich nicht um ein echtes polygon handelt, sondern nur um 8 linien??
das würde erklären wieso dieser ominöse stern immer gezeichnet wird,
egal ob ich den teapot von oben betrachte (deckel) oder von unten (boden).
kann aber nicht sein, weil der boden beim flat-shading ja nicht
durchsichtig ist....
und warum wird der stern nicht mehr gezeichnet wenn ich den normalvektor
beim backface-culling nicht normalisiere...???
Ciao,
Christoph
ch...@cg.tuwien.ac.at
"Martin Grödl" <e022...@student.tuwien.ac.at> schrieb im Newsbeitrag
news:3fdd887d$0$29350$3b21...@tunews.univie.ac.at...
ich hab schon alle testobjekte durchprobiert... nur diese stern-sache
kann ich mir nicht erklären...
mir ist noch was aufgefallen:
mein programm erzeugt einen teapot wie auf den muster-screenshots:
http://stud4.tuwien.ac.at/~e0226538/stern01.jpg
der stern gehört ja eigentlich zum boden des teapot und ist in dieser
ansicht eigentlich ein backface... ich find es auch seltsam das es kein
echtes polygon ist, deshalb hab ich auch gedacht, dass es nur linien
sind und deshalb vom backface culling nicht entfernt werden
(funktioniert ja nur ab 3 vertices)
und jetzt kommts:
http://stud4.tuwien.ac.at/~e0226538/stern02.jpg
der teapot hat ja um den deckel herum einen zwischenraum, wo man
hineinsehen kann. im flat-shaded modus sieht man aber nix von dem
ominösen stern obwohl er im wire-frame mode dargestellt wird.
das bestätigt die vermutung dass es sich nur um linien handelt, weil von
denen bleibt beim scanfilling ja nichts über...
nur: warum hat der teapot von unten betrachtet dann kein loch, wenn es
linien sind?
auch seltsam:
http://stud4.tuwien.ac.at/~e0226538/stern03.jpg
wenn ich beim backface-culling den berechneten polygon-normalvektor
nicht normalisiere, dann wird der stern vom backface culling eliminiert,
so wie ich das eigentlich erwarten würde. sonst ändert das aber nix an
der darstellung, auch nicht bei anderen testobjekten.
mfg,
martin
Ich schau mir das ATOFF noch genauer an, das ist allerdings eine ziemliche
Zahlenwüste, werd mir was überlegen müssen, um das gscheit zu überprüfen...
Ciao,
Christoph
ch...@cg.tuwien.ac.at
"Martin Grödl" <e022...@student.tuwien.ac.at> schrieb im Newsbeitrag
news:3fddbead$0$18044$3b21...@tunews.univie.ac.at...
lg Robert
"Chris Chiu" <ch...@cg.tuwien.ac.at> schrieb im Newsbeitrag
news:3fddd91f$0$18702$3b21...@tunews.univie.ac.at...
http://www.chrischiu.com/uni/cg1lu/teapot-lowres_test.atoff
http://www.chrischiu.com/uni/cg1lu/teapot-lowres_test2.atoff
Es liegt tatsächlich am ATOFF-File (ich gehe hier mal vom teapot-lowres
aus), und zwar hab ich folgendes gemacht:
Die Mitte vom Stern ist genau (0, 0, 0), wie man, wenn man das
Koordinaten-Kreuz aktiviert, sehen kann. Ich hab also den Vertex im
ATOFF-File gesucht, der 0 0 0 als Koordinaten hat, das war jener Vertex mit
Index 211.
Also hab ich jene Faces isoliert, die 211 als Vertex-Index besitzen. Damit
sind 32 Faces übriggeblieben (sh. teapot-lowres_test.atoff).
Wenn man sich den Teapot von unten anschaut, hat die Grundfläche aber nur 16
Faces, irgendwas ist also doppelt hier.
Wenn man sich die 32 Faces im ATOFF-File genauer anschaut:
3 210 214 211 216 0 393 0
3 211 211 210 393 393 216 0 <- !!
3 214 217 211 0 512 393 0
3 211 211 214 393 393 0 0 <- !!
usw.
kommt man drauf dass jedes zweite Face den Vertex-Index 211 _zweimal_ hat.
D.h. es ist ein Dreieck, bei dem zwei Eckpunkte gleich sind, also folglich
wie eine Linie aussieht. Damit wäre geklärt, warum es nur Linien und keine
Triangles sind.
Wenn man sich das mit dem backface-culling weiterdenkt, dann kommt man
drauf, dass backface-culling nicht wirklich funktionieren kann, wenn zwei
der Vertizes (0, 0, 0) sind (Rechnet das mal durch). Es sollte beim
Kreuzprodukt am Ende (0, 0, 0) rauskommen.
Ich glaube hier liegt dann auch der Grund, warum beim Robert der Stern nicht
auftritt und bei anderen schon, denn Robert hat wahrscheinlich auf Z <= 0
getestet während die anderen auf Z < 0 getestet haben. Beim Robert wird der
Stern weggecullt, weil die Z-Koordinate vom Kreuzprodukt der
Backface-Culling-Berechnung 0 ist.
Ciao,
Christoph
ch...@cg.tuwien.ac.at
"robert" <a970...@hotmail.com> schrieb im Newsbeitrag
news:3fddfcde$0$30786$3b21...@tunews.univie.ac.at...
Ciao,
Christoph