Loha
Kheb isee nvraagske, het ogenschijnlijke simpele backface culling loopt mis.
Ik heb al vanalles geprobeerd maar telkens verdwijnen er te veel vlakken of net te weinig. Gezien ik het nu echt ni meer weet en men ideen een beetje zijn uitgeput gaak hier posten wak gedaan heb, hopelijk kan iemand me verderhelpen
Beginnen bij het begin:
- DrawBackfaceCulled:
Ik loop hier men polygonen af en geef per polygoon de eerste 3 punten mee aan procedure IsPolyFrontFace
- IsPolyFrontFace:
De manier waark het verste mee gekomen ben (1 enkele polygoon fout):
Ik bereken eerst Ez (de Ez uit de viewingmatrix - deze is correct want men viewmat klopt met die van de nils, tekenen lukt ook perfect).
Vervolgens bereken ik zoals in de cursus de vectoren u en v (enkel zijnt er bij mij van dimensie 4 ipv 2).
Kneem hier dan het vectorproduct u x w = v van.
Dan doe ik ez . v (dotproduct) = N
Aan de hadn van deze N zou men moete kunnen zien of een polygoon frontface is (zijnde > ofte < dan 0).
Dit lukt dus op 1 polygoon na..(bij de standaard kubus die bij de engine werd gegeven)
Ik heb ook al letterlijk geimplementterd wat er in de cursus stond (bij BFC bij perspectiefprojectie, ge moet delen door Ax x Ay x Az opt einde, maar das altijd delen door 0, of toch meestal dus daar zit ook eits mis..en de bijhorende kleine d die we der moeten gebruiken is ook maar vaag)
Excuses voor weeral lastigvallen en de vage uitleg, indien nodig post ik gwn letterlijk men code wel ffkes
greets
Fris
EDIT: Kheb de methode uit het niet verplichte boek gebruikt en krijg net hetzelfde probleem. Hier gaan ze wedereom u en w berekenen , het vectorproduct hiervan en dan het dotproduct tussen v en u eye vector..Krijg hier net hetzelfde resultaat mee, 1 enkele polygoon die bij de kubus verkeerd staat (de onderste wordt getekend en de bovenste niet, tzou omgekeerd moeten zijn)