pisanje svojega lastnega rasterizatorja

Vsi tehnični vidiki izdelovanja iger - programiranje vseh vrst in oblik, modeliranje, animacija, risanje, dizajn, grafika, glasba in zvok, umetna inteligenca, matematika, fizika itd.

pisanje svojega lastnega rasterizatorja

OdgovorNapisal/-a AlienX » Če Jun 12, 2003 9:54 am

a je kdo že tako stvar probal napisati sam, torej mimo grafičnih API-jev (dx,ogl)

nje malo pove kakšni so bili rezultati in kako se je zadeve lotil

tnx
AlienX
with dreams to be a king, first one should be a man
-Manowar
Uporabniški avatar
AlienX
wannabe
wannabe
 
Prispevkov: 111
Pridružen: So Jan 11, 2003 9:35 pm

OdgovorNapisal/-a Firestar » Če Jun 12, 2003 8:20 pm

Poglej si male tole stran:

[url]sw-shader.sourceforge.net[/url]

Ce pa te teorija zanima, pa malce pobrskaj po internetu za software rasterizacijo. No, ja...ce te bo kaj zanimalo in bi rad kaj podebarital pa kar vprasaj... :-)
sem zmeraj za obujanje spominov ;-)
ce te zanima imam nekje celo en prastar clanek na to temo in ga lahko postam tule, ce se bo Rhuantavan strinjal ;-)
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a snake » Če Jun 12, 2003 9:22 pm

Hmm... ce se ne motim, mi je HugoBoss nekoč pravil o nekem "rendererju" (ki to ni). Ne spomnim se točno, kako je stvar delovala... Baje je bila zelo počasna :) Počakajte, da sam pove kako in kaj.
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a AlienX » Pe Jun 13, 2003 8:59 am

firestar: ja sm pogladal tist primer, samo je rahlo komplicirano vse skupaj. ta program dejansko simulira dx9 shaderje, jaz pa radim le software rasterizer.

Zdej jaz si nekako predstavljam kako naj bi to delal (če ni prov me popravite):

Nekako moram najprej vse trikotnike projecirat na eno površino. Potem ko dobim za vsak trikotnik tri sranice jih spremenih v pixle po določenih pogojih. Zatem pa še zapolnim trkotnik. viola.

aja btw: jaz ne jabim nikakršnih shaderjev, niti vertex niti face lightning. Zaradi mene je lahko ozadje črno, vsi trikotniki pa beli.

AlienX
with dreams to be a king, first one should be a man
-Manowar
Uporabniški avatar
AlienX
wannabe
wannabe
 
Prispevkov: 111
Pridružen: So Jan 11, 2003 9:35 pm

OdgovorNapisal/-a Firestar » Pe Jun 13, 2003 9:41 am

OK, mogoce sem res malce pretiraval s prvim ;-)
Torej, ce te prav razumem, ti ne zelis texturiranih poligonov, temvec samo enobarvne?
Potem nic lazjega ;-)
Dejansko vso risanje temelji na scanline-ih.
Imas npr. tri ogljisca s tremi koordinatami x, y in z.
Najprej moras ta ogljisca spraviti iz 3d prostora v 2d prostor (monitor).
To storis tako, da delis x in y komponento z propadajoco z komponento ;-)
Ko imas 2d koordinate, jih sortiras glede na y kompomento. Prva koordinata ti zdaj predstavlja vrh trikotnika. Sedaj pa sledi se samo risanje horizontalnih crt od enega roba, do drugega. Torej en rob je od vrhnje koordinate to naslednje in drugi od vrhnje do zanje. Naredis zanko, s katero se pomikas od zgornje y komponente proti naslednji (odvisno, katera od ostalih dveh je pac manjsa) in ker imas dolzino posameznega roba (d1 = druga.y - prva.y in d2 = tretja.y - prva.y) lahko izracunas, za koliko se moras pomakniti v smeri x pri posameznem premiku po y. Torej dx1 = (druga.x - prva.x) / d1 in dx2 = (tretja.x - prva.x) / d2.
Nato pa samo narises horizontalno crto (scanline) od prve do druge strani.

Ce povzamem:

Koda: Izberi vse
void trikotnik(Vector3D pVertices[3])
{
   double x1, x2, y, dx1, dx2;

   sort(pVertices);
// zgornji del
   dx1 = (pVertices[1].x - pVertices[0].x) / (pVertices[1].y - pVertices[0].y);
   dx2 = (pVertices[2].x - pVertices[0].x) / (pVertices[2].y - pVertices[0].y);
   x1 = x2 = pVertices[0].x;
   for (y=pVertices[0].y;y<pVertices[1].y;y++)
   {
       drawScanline(x1, x2, y);  // narisi crto od x1, y do x2, y
       x1 += dx1;
       x2 += dx2;
   }
// se spodnji del
   dx1 = (pVertices[2].x - pVertices[1].x) / (pVertices[2].y - pVertices[1].y);
   for (y=pVertices[1].y;y<pVertices[2].y;y++)
   {
       drawScanline(x1, x2, y);  // narisi crto od x1, y do x2, y
       x1 += dx1;
       x2 += dx2;
   }
}


Nekaj v tem stilu bi moralo biti. Ce sem se kje zmotil, se opravicujem, saj je ze zelo dolgo nazaj, kar sem pisal te stvari. Upam, pa, da je razvidna glavna ideja.
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a AlienX » Pe Jun 13, 2003 9:59 am

hvala za tole, samo mene je bolj zanimalo kako jaz to narišem v kakšen backbuffer in potem flipam v fronbuffer v openglju (tale treminologija je vzeta iz dx-a, ampak mislim, da veš kaj mislim)

AlienX
with dreams to be a king, first one should be a man
-Manowar
Uporabniški avatar
AlienX
wannabe
wannabe
 
Prispevkov: 111
Pridružen: So Jan 11, 2003 9:35 pm

OdgovorNapisal/-a snake » Pe Jun 13, 2003 2:55 pm

Eeee... Shraniš v back buffer, nato pa ga prikažeš (present premakneš v front buffer).

Nisem bral celotnega posta od FSja, pa vendarle. Shraniš screen v backbuffer, nato ga stlačiš v front buffer, ter slednjega prikažeš na ekran ter ga pustiš goreti. Nato pa v backbuffer ponovno narišeš sceno ter ga spet zafilaš v front, ter ponovno prikažeš slednjega...

1. draw scene to backbuffer
2. put that buffer into front
3. draw frontbuffer onto screen
GOTO 1
...

Boljše bi bilo, da ne kopiraš backbufferja v front (potratno), temveč enkrat bereš iz bb na ekran, drugič pa iz fb na ekran (flip)
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a Firestar » Pe Jun 13, 2003 3:10 pm

AlienX: zakaj za $%^& hoces v openGL-u izvajati softversko rasterizacijo poligonov?!? Eh...me je cisto minila volja do razlaganja ob tem ;-)
No, ja...ce ze zelis take bedarije zganjati, je najhitrejsa in najcistejsa pot taka, da narises kar pac zelis v neko teksturo (beri: pomnilnik, ki si ga alociral za teksturo) in potem vse skupaj prikazes kot poligon cez cel zaslon. Na [url]nehe.gamedev.net[/url] imas en tutorial, ki ti na kocki prikazuje avi filmcke...tam si poglej, kako je realizirana dinamicna tekstura.

OK, sorry, samo to se mi pa res zdi perverzno, da bi nekdo pri vse teh super giga penta modernih graficnih karticah sel OpenGL in CPU zlorabljat za softversko rasterizacijo. No, ja...vsak pac ima svoj fetis ;-)
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a Firestar » Pe Jun 13, 2003 3:11 pm

...aja pa zanimiv signature imas ;-)
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a snake » Pe Jun 13, 2003 3:13 pm

No, jaz vidim v tem nekaj malega (ok, dosti) smisla... rad bi razumel tehnologijo :) Sam res mu pa ni treba tega delat v OGLu.
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a snake » Pe Jun 13, 2003 3:20 pm

Aja, kako potem tisto spraviti na ekran: glDrawPixels(...)

http://www.eecs.tulane.edu/www/graphics ... ixels.html
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a Firestar » Pe Jun 13, 2003 7:17 pm

snake: in kaksen smisel vidis v softverski rasterizaciji z knjiznjico, ki ima ze vgrajeno podporo za softversko in hardversko rasterizacijo? Oz. da je ideja se bolj perverzna...napisati softverski rasterizer, cigar rezultat prikazujes tako, da iz njega naredis teksturo in ga nalepis na trikotnik, ki ga posljes na radeon 9800 oz. geforce fx. Graficna bo takole vmes, preden bos uspel rasterizirati en bogi trikotnik (solid color seveda) cakala in spletla pulover, zimsko kapo ter rokavice za svoje vnuke.
sicer pa...kdo se danes sploh poslusa taksne stare prdce kot sem jaz...c c c c...
Kar pa se tice razumevanja pa je super, da se v to poglobite...in zato sem tudi bil tako navdusen nad idejo na zacetku, dokler mi nekdo ni omenil OpenGL-a za prikaz :-D
Softvare rasterizacija rules ;-)
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a snake » Pe Jun 13, 2003 9:59 pm

Firestar napisal/-a:snake: in kaksen smisel vidis v softverski rasterizaciji z knjiznjico, ki ima ze vgrajeno podporo za softversko in hardversko rasterizacijo? Oz. da je ideja se bolj perverzna...napisati softverski rasterizer, cigar rezultat prikazujes tako, da iz njega naredis teksturo in ga nalepis na trikotnik, ki ga posljes na radeon 9800 oz. geforce fx. Graficna bo takole vmes, preden bos uspel rasterizirati en bogi trikotnik (solid color seveda) cakala in spletla pulover, zimsko kapo ter rokavice za svoje vnuke.

Hmm... kot sem rekel, bistvo je v tem, da se naučiš kako stvar deluje. Kot sem rekel, mu ni treba uporabiti opengla, da samo prikaže en buffer na zaslon. Isto bi lahko dosegel na miljon drugih načinov.
Ja, grafična bo pletla pulover. Verjetno je že na pol poti odkar bereš tale post. Kot vedno. Pa vendarle, tukaj grafična nima nobene vloge. Software. Saj vem, da veš, pa vseeno.
In, zakaj ne bi implementiral lastne knjižice za softversko rasterizacijo, ki bi ležala na OpenGLu? Morda nitni ni mislil uporabljati OGLa, ampak se je samo napačno izrazil. Četudi se ni, ni rekel, kaj od OGLa bi uporabil. Če le prikaz texture na ekran, kdo mu brani? Kot že omenjeno, to bi lahko storil na miljon drugih načinov, morda bi posegel celo po ASMju, pravih registrih. Ah, kdo mu brani, naj piše kar 00010100 10010011!

To bi bila tista prava stvar, če že smo pri taki natančnosti, spraviti vsak pixel na ekran all by yourself. Pa zakaj? Čemu? Kot kaže, mu je bistvo pretvoriti 3d sceno v 2d, jo narisat ("scanline-at") v texturo (v nasprotju s tvojim primerom, ko scanlajnaš na ekran). Kako pa to spravi na ekran, ga pa niti ne zanima.
Firestar napisal/-a:sicer pa...kdo se danes sploh poslusa taksne stare prdce kot sem jaz...c c c c...Softvare rasterizacija rules ;-)
Indeed, twice! Ah, ne, joke! ;)
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a Firestar » Pe Jun 13, 2003 11:03 pm

ok...nekaj me zanima (v bistvu me ne, pa dobro ;-))...si sploh prebral moj post? in primer?
ne vem, od kod ti ideja, da sem jaz v primeru napisal naj narise scanline na ekran...groza...in zakaj ze graficna nima nobene vloge?
ah...who do i even bother...
ok...smo zasli iz prvotne teme, na katero sem pa mislim da ze odgovoril.
Se opravicujem vsem prisotnim, ce sem koga z pletenjem pulovrov mogoce uzalil, ni bil moj namen. Vsekakor nisem nic imel proti sw renderingu, kot si (ce si seveda prebral post) tudi sam ugotovil. Tudi proti asm-ju nimam nic, kot lahko sklepas, ce sem se sam ukvarjal s tem in optimiziral stvari sem ter tja. Vse torej lepo in prav.
Se pa tudi opravicujem, ce sem slucajno odgovoril na vprasanje s primerom...se ne bo vec ponovilo.
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a snake » So Jun 14, 2003 10:13 am

Uf, my bad! deloma sem sam pletel puloverje :) Se opravicujem (FSju) za povrsno branje!

Zakaj graficna nima nobenev vloge? Ima, vendar minimalno. Ni ji namrec potrebno pretvoriti 3d v 2d. Kar je velik del grafične kartice. Ter še mnogo drugega.

End of war! FS: Kar pridno odgovarjaj na vprašanja. Vsak odgovor je dobrodošel!
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a AlienX » Ne Jun 15, 2003 9:09 pm

a war, for me???geee, you shouldn't have...

ok, resno:

najprej tnx obema

ja vem da je čudno pisat software rasterizer v oglju, ampak nekje je treba začet. Nikakor ne mislim česa resnega narediti z software varianto, vandar jo bom kasneje verjetno potreboval v oglju - ampak ne za rendering - zato mora biti postopek določanja posameznih pik (rasterizacija) iz trikotnika identično postopku opengl-ja. zato bom ta software rasterizer naredil & sprobal povsem v ogl-ju.

kako pa bi drugače naredil kakšen softwware rasterizer brez ogl-ja???

AlienX
with dreams to be a king, first one should be a man
-Manowar
Uporabniški avatar
AlienX
wannabe
wannabe
 
Prispevkov: 111
Pridružen: So Jan 11, 2003 9:35 pm

OdgovorNapisal/-a BAADC0DE » Pe Jun 20, 2003 6:49 pm

Sw rasterizer je in bo vedno naloga vredna tipa ki se spogleduje z realizacijo rendererja za karkoli. Stvar je v tem, da ko pises dandanasnje shaderje moras vedeti vse, ali pa vsaj vecino, o postopku (transform, light, raster)

Tudi ce ti danasnje kartice omogocijo da stvari ni vec treba tako ful in depth razumet (in se vedno lahko scaras OpenGL kocko :> to se ne pomeni, da je take sorte znanje zanic.

Torej... na netu je dosti clankov, menim pa da mnogokateri zavajajo, saj poskusajo renderer pokazati kot neki cimbolj staticen stroj ki pozre cimbolj staticno definirane vertexe in poskusi iz njih spraviti recimo perspective corrected, z-buffered textured triangle. Cela finta je v fleksibilnosti. CPU ni cisti pipeline kot je grafa in prav je tako ;)

Vrzite se na design, ne na moc, in marsikatera izkusnja (ce ne celo vse) se direktno preslikajo v sodoben renderer za dx | OGL ;)


viva la own refrast
Uporabniški avatar
BAADC0DE
wannabe
wannabe
 
Prispevkov: 81
Pridružen: So Jan 11, 2003 5:17 pm

OdgovorNapisal/-a snake » Pe Jun 20, 2003 8:52 pm

Odgovor ki poda veliko... zelo čustven in ganljiv :cry:

:D

Aja, AlienX, pošlji mejl o njegovem rasterizerju (trikotnik je izljunil v konzolo).
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a AlienX » Pe Jul 04, 2003 3:15 pm

BAADCODE: hm, ja samo kako naj jas sploh začnem s sw rasterizorjem. če se ne sme uporabljati ogl/dx da pridem v grafični način. naj rišem v windows okno???

AlienX
with dreams to be a king, first one should be a man
-Manowar
Uporabniški avatar
AlienX
wannabe
wannabe
 
Prispevkov: 111
Pridružen: So Jan 11, 2003 9:35 pm

OdgovorNapisal/-a Firestar » Pe Jul 04, 2003 4:00 pm

AlienX: saj ti nihce ni prepovedal, da ne smes uporabljati ogl/dx ;-)
Lahko z GDI-jem rises direktno na okno, lahko pa uporabis ogl/dx za prikaz celozaslonske texture, medtem ko tvoj rasterizer rise v to texture.
Moznosti je veliko, le za eno se je potrebno odlociti.
Sicer pa je res pohvalno, da se zelis lotiti sw rasterizacije. 8)
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a AlienX » Pe Jul 04, 2003 6:37 pm

z GDI nebi delal, ti pa si se zgražal ob misli, da bi sw r. uporabljal v ogl/dx, torej ti delaš drugače. kako???

AlienX
with dreams to be a king, first one should be a man
-Manowar
Uporabniški avatar
AlienX
wannabe
wannabe
 
Prispevkov: 111
Pridružen: So Jan 11, 2003 9:35 pm

OdgovorNapisal/-a Firestar » Pe Jul 04, 2003 8:09 pm

Nisem se zgrazal ;-)
Delal sem z direct-draw svoj cas, se prej pa mode 320x200 v dos-u ;-)
Lahko pa se tudi z Javo lotis, ce ti je vsec...so fantje cuda pisali tudi v Javi.
Seveda, pa ce ti je lazje z ogl/dx, pa vsekakor go ahead. Loti se kakor ti je najlazje in kar ti bo v najvecje veselje. Vsekako thumbs up, da se sploh lotevas tega.
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a AlienX » Pe Jul 04, 2003 10:53 pm

verjetno bom šel v oglju delat.

kaj pa recimo dx/ogl. kako ta dva apija prideta v graphic mode???
nekako obideta GDI (in nato kličeta driverje od grafične), ampak kako.

AlienX
with dreams to be a king, first one should be a man
-Manowar
Uporabniški avatar
AlienX
wannabe
wannabe
 
Prispevkov: 111
Pridružen: So Jan 11, 2003 9:35 pm

OdgovorNapisal/-a snake » Po Jul 07, 2003 1:27 pm

Da ne boš obupaval, ti svetujem nakup knjige "Tricks of the 3D Game Programming Gurus" 1700 strani dolga knjiga, kjer imaš lepo predstavljeno pisanje lastnega softwerskega rasterizatorja (ob koncu s podproro texturam).

Stvar je baje res odlična!


Jaz bi jo nabavil, če mi kdo da denar! :D
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a hugoboss » To Jul 08, 2003 9:50 am

//opozorilo: nisem natancno brav vseh prejsnih sporocilc, tako da bom mogoce izpisal kaksno bedarijo - se ze v naprej opravicujem

Svoj cas sem res malo tako za sprostitev pisal sw rasterizer. Kaj dalje od tega, da je s polzjo hitrostjo vedel risati trikotnike nisem prisel (ni casa za spilarije).
Ko se ravno toliko grebete glede okolja, ki bi naj prikazovalo sliko (OGL, DX, GDI, ...) -- na podam predlog: uporabite konzolo (sam sem svoj rast. najprej napisal za konzolo in moram reci da je izgledal prav prisrcno -- posebej ko sem razmisljal kaj je blizje po z-osi: pika, crta ali zvezdica) :-]]

Prakticen nasvet: obstajata 2 dokaj znana sw rast., ki si ju splaca ogledati:
1- Mesa3D (v primeru, da ni kompilirana za Voodoo etc. ali pa ni na podprti 3d kartici preklopi v pure sw);
2- CS (kolikor sem slisal ima CrystalSpace - free GNU/GPL 3d pogon - vgrajen sw render (ki je po meneju mnogih gigantsko hiter);
(3-) no pa se en je: Quake2 ima tudi built-in sw rast.


btw. mogoce koga zanima zakaj je bil moj sw rast. tako pocasen: sam seveda ko izumljam toplo vodo ne berem najprej po inetu kako in kaj ampak mi vedno v prvo uspe napisati najbolj NE optimiran postopek pod soncem -- namrec moj rast. ni risal trikotnikov s scanlines ampak je za vsak pixel na zaslonu trace-al skozi prostor... (ja, ja, saj me je sram :oops: :oops: :oops: ) -- in tako je na 2GHz skatli pridelal ~3FPS
hugo2me@hotmail.com

Linux & Quake & Final Fantasy RULZ!
School SUX!
Uporabniški avatar
hugoboss
poznavalec
poznavalec
 
Prispevkov: 189
Pridružen: So Jan 11, 2003 9:57 pm

OdgovorNapisal/-a AlienX » To Jul 08, 2003 1:39 pm

trace skozi prostor do prvega polinoma???
hmmm, a ni enostavneje projekcija, še posebaj na začetku, ko sta recimo dva/trije trikotnika/ki na zaslonu.
with dreams to be a king, first one should be a man
-Manowar
Uporabniški avatar
AlienX
wannabe
wannabe
 
Prispevkov: 111
Pridružen: So Jan 11, 2003 9:35 pm

OdgovorNapisal/-a Firestar » To Jul 08, 2003 2:58 pm

Verjetno je mislil, da je vsak pixel posebej transformiral iz 3d -> 2d, namesto, da bi transformiral samo posamezna ogljisca, nato pa risal scanline.
Uporabniški avatar
Firestar
poznavalec
poznavalec
 
Prispevkov: 173
Pridružen: Pe Jan 17, 2003 11:24 am
Kraj: Maribor

OdgovorNapisal/-a hugoboss » Sr Jul 09, 2003 9:32 am

pametna metoda:
transformiramo 3d->2d 3x ogljisce in narisemo scanlines

moja nora metoda:
za vsak 2d pixel trace-amo skozi prostor, ce naletimo na naos ravnino, izracunamo presecisce in preverimo ce lezi znotraj trikotnika (racunanja dovolj za 200 let). No a bostaja se kaj bolj zmesanega :evil: :oops: :?:
hugo2me@hotmail.com

Linux & Quake & Final Fantasy RULZ!
School SUX!
Uporabniški avatar
hugoboss
poznavalec
poznavalec
 
Prispevkov: 189
Pridružen: So Jan 11, 2003 9:57 pm

OdgovorNapisal/-a snake » Sr Jul 23, 2003 6:44 pm

Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

OdgovorNapisal/-a snake » Če Jul 24, 2003 8:04 pm

Umm... no, ce koga zanima, cemu sluzi tisti link. Tisto kar tam lezi, je preprosta stvarca, ki nam olajsa nase experimentiranje. vsebuje vsega 3 funkcije

ptc_open(char* title, int width, int height) // ustvari
ptc_update(void* buffer)
ptc_close()

torej, za nas ustvari okno, ter nanja (v framebuffer) vtakne buffer (s pomocjo ptc_update). Nic zajbavanja z nastavitvami okna ipd.

Zelo uporabno za pisanje rasterizatorja ;)

Aja, pa se tele link zna biti zanimiv. Sem se danes malce zafrkaval z rasterizacijo, pa sem ga odkril. Nisem se prevec pogledal. Ce slucajno ni predstavljen line-drawing algoritm v celoti (za samo en oktant), poglejte na gamedev.net (v google vpisite "line drawing algorithm") ;)

http://www.doc.ic.ac.uk/~dfg/graphics/

poglejte si pdf-je in ppt-je, nekaj bo ze pravega ;)


Tole je zelo cool in lahko nekoliko vpliva na hitrost razvoja v2 :? :oops: :D :roll:


PS. Matematika je mogoce nekoliko prezahtevna za zacetnike (in nezacetnike). Ampak, hej! Ce se je ne bomo naucili tukaj, kdo nas jo pa bo?!
Uporabniški avatar
snake
expert
expert
 
Prispevkov: 782
Pridružen: Pe Jan 10, 2003 8:28 am
Kraj: NULL

Naslednja

Vrni se na Izdelovanje iger

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 0 gostov

cron