[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ScanLine



Martin Kuchinka wrote:
> 
>   Nedokazal byste nekdo popsat jak pracuje ScanLine rendering???
> 
> MarK
Je to takovej hybrid, vznikly ze Z-Bufferingu. Jedina jeho vyhoda,
oproti
Z-Bufferu je, ze nezabira tolik pameti - nema totiz soucasne cely
Z-Buffer celyho obrazu, ale jen jeho jedne radky. Musis tedy postupne
pocitat pruseciky radky na obrazovce s jednotlivymi polygony.

V praxi bych to udelal asi takhle:

nejdrive bych pole vertexu (XYZ) otocil v prostoru, perspektivne
promitnul do 2D a vysledek ulozil do dvou poli [x][y](s perspektivou) a
[z].
A pak postupne brat jednotlivy radky a stanovit, ze Y=0 (az treba 256) a
Xmin=0 a Xmax=treba 320. Pak bych si vynuloval Z-Buffer - coz bude pole 
cisel (int nebo float) veliky jako sirka obrazovky.Pak bych vzal
polygony
postupne po sobe a testoval jejich hrany, jestli neprochazi timto
usekem,
pokud ano, vykreslit usek polygonu, ktery touto primkou prochazi a
prubezne
zapisovat Z souradnici do Z-Bufferu.Celou dobu musis samozrejme
kontrolovat
Z souradnici polygonu a Z souradnici ze Z-Bufferu, a prokreslit jen to,
co je
"bliz k tobe" Je otazka, zda to chces i texturovat - potom bys musel
pocitat
i korekci perspektivy pro U a V souradnice s prostoru textury. Pro
zrychleni
algoritmu by bylo vhodny si polygony nejdriv setridit podle osy Y a pak
postupne vyhazovat ty, ktery uz nemuzu cestou potkat.

BTW: Na co to chces pouzivat ? Upozornuju, ze na 3D engine do gamesy to
neni
     zrovna nejrychlejsi , spise tak na nejaky CAD ci renderovaci
engine.

		FiDo of INSANITY