Page 1 of 1

[cg] WToV

Posted: Tue Aug 12, 2008 6:10 pm
by Scheder
wnr moet dit eigenlijk gebeuren?
bij hiddenline net voor het tekenen?
bij zbuffer niet?
wat doet het eigenlijk ook al weer?
wrm doe ik ook alweer de eerste dinge laatst, och ja

Posted: Tue Aug 12, 2008 6:34 pm
by Pieter Belmans
Omdat uw window in reële coordinaten in het (gekozen) interval [(-1,-1),(1,1)] wordt uitgedrukt en je viewport (aka het beeldeke op uw scherm) in gehele coördinaten, in iets met de afmetingen van je afbeelding (700x700 deed ik dacht ik).

Als je nu iets op je scherm krijgt, heb je ofwel een heel ranzige interne opslag die eigenlijk al aan W2V doet door met opgeblazen coördinaten te werken, of je vermenigvuldigt alles gauw met een bepaalde factor vooraleer je tekent.

Wanneer je ze uitvoert boeit niet eigenlijk, het enige wat het doet is het middelpunt verplaatsen en je coördinaten voldoende groot maken zodat bij afronding je mooie gehele getallen krijgt. Je moet ze gewoon gedaan hebben vooraleer je iets tekent.

Ik deed het meestal vrij vroeg in de pipeline, omdat ik bij het debuggen dan meteen kon kijken naar getalletjes die ik op m'n scherm getekend zag worden :).

Posted: Tue Aug 12, 2008 7:39 pm
by Scheder
ik heb het voorlopig nog ni gebruikt, maar toch lukt het om dinge te tekene
dus ergens zie ik het nut er ook weer ni van in, aangezien het nu toch lukt

Posted: Tue Aug 12, 2008 8:47 pm
by Pieter Belmans
Flexibiliteit. Wat als jij een grotere afbeelding wil renderen of je viewport anders plaatsen?

Posted: Tue Aug 12, 2008 11:44 pm
by Scheder
als het met zbuffer is dan doe da er ni toe, ik kijk alleen de pixels na die in mijn viewport ligge, hmm maw alsk dus wtov doe, dan gaank mijn zbuffer dus moete aanpasse... great, aangezien die dus nix tekent bove gfx.viewxu, pff, swat hmm, das probleme vor morge

Posted: Wed Aug 13, 2008 5:09 am
by Scheder
ok, hmm wrm wil ik het maar ni snappe?
ok dus, waar haalt ge uw windowlower/upper en viewportlower/upper vandaan?
die moet ge op voorhand instelle?
die moet de gebruiker meegeve?
mr in ons geval, in hoeverre heeft het dan nut een verschillende waarde van window en viewport mee te geve?
het window groter make zou dan toch geen enkel nut hebbe?

Posted: Wed Aug 13, 2008 6:22 am
by Pieter Belmans
Er staat een mooie pdf op Blackboard 2007-2008, lees die en you will be enlightened.

Mag ik u toch aanraden om volgend jaar soms naar lessen/practica te komen? :P

Posted: Wed Aug 13, 2008 1:16 pm
by Robbe
Pieter Belmans wrote:Mag ik u toch aanraden om volgend jaar soms naar lessen/practica te komen? :P
Als GT-er is dat niet altijd mogelijk Pieter ;)

Posted: Wed Aug 13, 2008 2:21 pm
by Scheder
Ik wist wel da ik ni de enigste kon zijn me het probleem ^^
swat, ill read the pdf, thx
en over de lesse, als gt-er is da idd soms lastig, graphics viel dit jaar same me het project.
@Robbe: thx for backing me up ^^

ok reading the pdf
*edit: ok, maar ik heb ni gewerkt me die view/myview, kvond het maar vreemd en lastig om mee te werke. dus voor mij zal vpx en vpy dan altijd gewoon 0 zijn en (h, b), GfxPlane.viewu? [hangt er dan vanaf of ik zon kaderke rond mijn wereld wil f ni]

Posted: Wed Aug 13, 2008 3:46 pm
by Scheder
ok het werkt
alleen krijgek vanbove altijd nen legen band, men image vult ni heel de viewport, terwijl da toch zou moete denkek?

dit is mijn code:

Code: Select all


view^.vl.x := GfxPlane.viewxl;
view^.vl.y := GfxPlane.viewyl;
view^.vu.x := GfxPlane.viewxu;
view^.vu.y := GfxPlane.viewyu;

Images.Create(view^.img, view^.vu.x - view^.vl.x, view^.vu.y - view^.vl.y, Images.BGR888);
GfxBuffer.Init(view^.buf, view^.img);
Gfx.SetFillColor(view^.buf, Gfx.LGrey);
Gfx.DrawRect(view^.buf, view^.vl.x, view^.vl.y, view^.vu.x, view^.vu.y, {Gfx.Fill});

Gfx.DrawImageAt (GfxPlane.contxt, view^.vl.x, view^.vl.y, view^.img, GfxImages.NoFilter);
*edit: Oberon sluiten en trug openen hielp :roll:, oberon e... pff, iig band is weg nu
*edit2: hmm nu is de band er gewoon soms en dan weer ni :roll:, vreemd