Ik was men z-buffer aant implementeren en ben dus op een probleem gestoten.
Ik kan laten tekenen en opkleuren tot dit:
Quite obvious dat dit niet klopt, probleem is dattek ni echt weet waark men fout moet zoeken, hence ga ik ffkes men redenering kort opschrijven en dan hopelijk ziet iemand daar dan de kemels in..
Wat ik nu dus doe is:
Ik overloop men polygonen (getrianguleerde)
Projecteer deze.
Dan werk ik d.m.v. een scanline
neem een y waarde ,zien waar deze snijd met men object, laat dan tussen de 2 snijpunten alle x- waardes aflopen, zo overloop ik dus alle pixels.
dan elke pixel die ik tegenkom bepaal ik de diepte van (al naargelang perspectief of parallel projectie)
en update dan men Z-buffer.
Deze laatste ziet er als volgt uit :
Code: Select all
ZBuffer = POINTER TO Pixels;
Pixels = ARRAY OF ARRAY OF PixelDesc;
PixelDesc =
RECORD
depth : REAL;
color : Gfx.Color;
END;
Dit doe ik dan door heel men z-buffer te overlopen en alsk een pixel tegenkom met depth kleiner dan MAX(REAL) (standaardwaarde) teken ik, zoek dan de volgende pixel waarvoor dit geld en dan teken ik een lijn tussen deze 2..
Geen idee ofda da ook maar iets of wa goed is maar voor zover ik den arickx zijne cursus kan interpreteren..
Greets
Fristi