[CG]Hidden line

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Scheder
Posts: 212

Post#16 » Tue Aug 12, 2008 5:15 pm

ik ben recht voor de enterprise gegaan ^^
wa doe hij fout? kheb net men pauze, dus miss kank ergens helpe
[me hij werkt volledig = hij werkt voor enterprise XD, kmoet nog animatie doen of meerdere objecte, maar aangezien hij werkt voor enterprise en cubeAndpiramide, hopek da er ni meer teveel probleme gaan opduike]

wa ik doe is eigenlijk ni veel ze
ik loop alle driehoeken af, voor elke driehoek zettek A, B en C, zoda C vanbove ligt en B vanonder [zoals in cursus]
dan een lus van de kleinste tot grootste Y waarde
als de y waarde binne de viewport ligt dan stellek men scanline op, dus L en R
dan van Lx tot Rx, nakijken of x in viewport ligt, en gewoon voor elk punt op de scanline nakijke of dit dichter lag dan een vorig punt da we tegekwame op die x,y coor, en als het dichter ligt dan moet die kleure de nieuwe kleur zijn

*edit: was dus voor zbuffer

[dit is dus per lijnstuk in de wereld... voor de duidelijkheid]
mijn hiddenline lus zelf is ook weer ni zo moeilijk uit te legge
voor elke driehoek de A, B, C zetten, alle mu/lambda berekenen
nakijken hoeveel snijpunten er zijn, nakijken op het lijnstuk ervoor of erachter ligt, als het erachter ligt en er zijn snijpunten, lijnstuk inkorten
op het einde het overgebleven lijnstuk opslaan/tekenen
en we zijn klaar ^^

User avatar
Scheder
Posts: 212

Post#17 » Tue Aug 12, 2008 5:34 pm

mebi you got msn if you want to ask something fzo ? ^^
anyways, ik ga wa te ete hale

User avatar
Fristi
WOZ
Posts: 4565

Post#18 » Tue Aug 12, 2008 7:13 pm

hehe, thanks for the offer, maar das ook wa ik doe normaal :)

Nuja, wss zit er ergens nog wel een klein foutje in fzo, zal het nog wel nakijken, eerst wa calculus :D
Fristi Ad Infinitum

WINAK WOZ 2013 - ...
WINAK Magister Fristi 2012-2013
WINAK Feest 2011-2012
WINAK Schachtentemmer 2010-2011
WINAK Scriptor 2008-2009 | 2009-2010

User avatar
Scheder
Posts: 212

Post#19 » Fri Aug 15, 2008 11:02 pm

hmm, kheb is 10 lampekappe in een cirkel gedaan en ook ne keer 10 cube en piramids. nu blijkt da mijn hiddenline wel nog wa foutjes geeft... XD
maar nu is de vraag, ist de moeite om da te debugge, aangezien zbuf wel perfect werkt...?
en da is toch hetgeen ge ga gebruike voor output?

User avatar
Scheder
Posts: 212

Post#20 » Tue Aug 19, 2008 9:34 am

hmm, ik teken en het tekent goed, ik sluit oberon en teken nog is, 1 lijnstuk verkeerd. ik teken nog is, een ander lijnstuk verkeerd. zo hebbek 2 lijnstukke die soms wel getekend worde en soms ni. waaraan zou dees kunne ligge? slechte initialisatie van variabele? zoja welk soort variabele dan?
of waaraan zou da kunne ligge

btw nu vragek mij iets af aangezien bij hiddenline de dinge ervoor ligge en bij zbuf erachter en omgekeerd, dus ergens klopt mijn 'InFront()' ni, nu is de vraag, wa ligt dichter bij het oogpunt. als de diepte groter dan is of kleiner dan? ligt -2 dichter bij het oogpunt of -1? [-1 toch e, dus als de diepte groter is dan ligt het dichter e?]

Pieter Belmans
Posts: 593
Contact:

Post#21 » Tue Aug 19, 2008 7:59 pm

Thou are using a quantum computer?

Het klinkt vaag ja, en als het in een complex model is, is gauw even tekstuele output nalopen niet echt voor de hand liggend. Wat wel zou kunnen is twee "runs" met elkaar vergelijken, Linux kent ongetwijfeld wel een of ander shell command daarvoor :).

User avatar
Robbe
WOZ
Posts: 2161
Contact:

Post#22 » Wed Aug 20, 2008 12:58 am

Pieter Belmans wrote:Linux kent ongetwijfeld wel een of ander shell command daarvoor :).

Code: Select all

diff file1 file2
;)
"I'm not afraid of falling, I'm afraid of landing" -- Sam
How To Ask Questions The Smart Way

Zingen? UKA-n dat ook!

Pieter Belmans
Posts: 593
Contact:

Post#23 » Wed Aug 20, 2008 7:26 am

Ik dacht dat die niet zozeer zou zeggen waar het verschil zit, enkel hoe groot het verschil is :). Maar als daar dus (zoals je kan verwachten) 0 uitkomt, en de tekening toch anders is, zou ik 's heel raar kijken.

Als de getalletjes anders zijn is het de schuld van een of andere kosmische botsing, je zusje die bliksemsnel je MOFF heeft veranderd of een ander idee dat Robbe mag aandragen :).

User avatar
Scheder
Posts: 212

Post#24 » Wed Aug 20, 2008 12:37 pm

ik dacht eerder aan een boolean die ik ni intialiseer fzo, maar die een bepaald deel in het geheugen krijgt [niet geinitialiseerd dus] en dat dus de ene keer een true geeft omdat er eerder op die plaats in het geheuge die bit combinatie is geplaatst toenk een ander object aangemaakt heb en die de andere keer false geeft. Ik weet ni hoe garbage collection werkt fzo of hoe het initialisere van object soms in zijn werk gaat, maar ik dacht eerder da het probleem die richting uit zou gaan

btw hoe helpt het om mijn output te vergelijken? ik heb dezelfde xml/moff file, en die gaat door hetzelfde programma, ik heb echt nix verandert, gwn aantal keer hetzelfde gedaan en de welke output zou ik dan moete vergelijke? aangezien ik weet da die anders ga zijn [anders zou ik ook geen ander dinge uittekene]

maar hoe zittet nu me die infront? ist nu if depth <= of >= olddepth? ik gebruikte bij beide zbuf en hiddenline >= maar toch het omgekeerde resultaat in 9 vd 10 gevalle en in 1 geval toch hetzelde resultaat mja da wordt debugge, maar ist > of < ?

Peter

Pieter Belmans
Posts: 593
Contact:

Post#25 » Wed Aug 20, 2008 1:07 pm

Als er anders getekend wordt, zouden de coördinaten die je wenst te tekenen anders moeten zijn. Dan kan je kijken of er iets fout gaan in Gfx (als dus de tekstuele output gelijk is), of jij andere coördinaten laat tekenen.

Normaal gezien, met de default complieopties, initialiseert Oberon altijd alle variabelen op hun defaultwaarde, BOOLEAN op FALSE, INTEGER op 0, POINTER op NIL (allemaal onder voorbehoud, maar dat zouden ze moeten zijn :)).

Output, op alle niveaus, is echt het enige dat duidelijkheid kan verschaffen.


Normaliter werk je met negatieve coördinaten, omdat je langs de negatieve z-as werkt. Dus des te groter (= dichter bij 0) des te dichter. Maar Thomas had het net omgekeerd gedaan en dat werkte ook. Het hangt er dus maar vanaf hoe het bij jou geïmplementeerd is.

User avatar
Scheder
Posts: 212

Post#26 » Wed Aug 20, 2008 2:38 pm

me anders lag het ni zozeer aan de coordinate
ik bedoelde eerder zichtbaar f niet [de ene keer was een lijnstuk wel zichtbaar en de andere keer niet], maar miss moet ik idd wa output creeren. ik zie nog wel

miss moetek dan is nakijke ofk ergens me globale var werk fzo [which i doubt, mr het kan]

kzie wel, nu AEC

thx iig voor de info, dan kank weer verder

Peter

Pieter Belmans
Posts: 593
Contact:

Post#27 » Wed Aug 20, 2008 5:56 pm

Jamaar, als er iets anders getekend is, geef je andere instructies aan de tekenlibrary (of misschien niet). Dat moet je net onderzoeken als je wil kijken waar het aan ligt.

User avatar
Scheder
Posts: 212

Post#28 » Wed Aug 20, 2008 8:26 pm

ok zie
ik sla file op, ik doe system free van alle modules. ik compileer alle modules opnieuw [ok gfx/gfxplane miss ni, mr ik doe gfx.init() XD], ik klik op Draw.Draw world.xml~ en krijg dan hetvolgende

Image

ik sluit oberon
ik open oberon opnieuw
ik open toolfile
ik klik Draw.Draw world.xml~ en krijg...
[zie bovenaan int midden en dan 1 nr rechts]

Image

ik open hiddenline.mod
ik verander bij InFront() de kleiner dan in groter dan, sla op, system.free, compileer alle mod files, teken [ok wa ik nu krijg is mislukt, mr wacht], ik open hiddenline.mod trug, verander groter dan weer in kleiner dan, sla trug op, system.free, compileer, teken, trug de eerste foto, ik sluit oberon, open trug, teken trug, trug 2e foto, ... so, what am i changing...?

Dus hoe kan ik op die moment andere instructies meegeven?
ik heb helemaal nix gedaan behalve oberon sluite en opene of iets verandere en trug verandere

Pieter Belmans
Posts: 593
Contact:

Post#29 » Wed Aug 20, 2008 8:48 pm

Onderaan gaat er in beide gevallen iets fout, afgaande op de rotatie en positie van de kubus en piramide tegenover elkaar zou de groene piramide ook daar achter de kubus moeten liggen.

Daarnaast is dit een weinig handige testsituatie. Wat gebeurt op een model als de Enterprise? Hiddenline hoefde trouwens helemaal niet op meerdere objecten toepasbaar te zijn, dus eigenlijk mag je al het werk laten, als het op enkelvoudige modellen goed gaat :).

User avatar
Scheder
Posts: 212

Post#30 » Sun Aug 24, 2008 11:41 am

wel fuck it
ktekende 1 cube and piramid. ging fout, dus kzet wa output
kdacht dat wel zou ligge aan de moment da de lijne ingekort werde, ook al dee het iets da nooit zou moge, dus ja, fout in procedure wrs
kga dernaartoe ik zet output procedures
ik teken trug
alles is in orde...
en dan moogt ge het ni op oberon steke e...

*edit: just stressing, dont mind me XD*

Return to “1ste Bachelor”

Who is online

Users browsing this forum: No registered users and 33 guests