[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: DOOMFloor
Martin Kuchinka wrote:
>
> Ahoj Fsichni(Hlavne FIDO),
> Co si tak pamatuju bylo mozne snad ve vsech doomovkach na Amize vy/za-pnout
> podlahu nebo strop, ale z vlastni zkusenosti si myslim ze to ten zbytek moc
> neurychlilo. Tak by me zajimalo jak to s tou podlahou je (myslim vypocet),
> melo by to byt dost rychly, ne?? Tohle me zatim nenapadlo jak to udelat,
> aby to bylo rychly...
>
> Diky MarK
No, je to trosku slozitejsi nez vykresleni steny. Vlastni body se
prenasej
po radcich, protoze na kazdej radek je konstantni Z souradnice, tudiz se
nemeni perspektiva. Ja jsem to delal tak, ze jsem si nejdrive spocital
tabulku, kde jsem mel vzdycky odpovidajici Z na konkretni radek
obrazovky
tzn. pri 320x256 jsem mel tabulku o 256 hodnotach. Pak jsem udelal
Y=Z[y]*sin(a) a Y=Z[y]*cos(a), kde "a" je uhel pohledu "kamery" a "y"
je cislo radku, ktery zrovna kreslim. Tim jsem ziskal souradnice v
prostoru
X,Y (2D souradnice je v tomto pripade dostacujici) , ty se potom
prevedou
na souradnice textury (napr. pri texture 256x256 bodu (X and 255) ,(Y
and 255))
No a potom potrebuju inkrementy Dx a Dy, ktery budu pricitat k
souradnici
textury. Ty ziskam normalovym uhlem, tzn. Dx=cos(a) Dy=sin(a) no a pak
jedu ve smycce a zkopiruju vzdycky 1 bod z textury (X,Y) do radku na
obrazovce
, pak prictu Dx k X a Dy k Y a jdu na dalsi bod. Pokud bys to na neco
chtel,
mohu ti poskytnout kompletni zdrojak texturovani podlahy vcetne
stinovani,
kterej jsem pouzil v Testamentu II. (Je naprosto nejrychlejsi ze vsech
;-)
Jinak to, ze v nejake Doomovce standartniho typu nema vliv vypnuti
podlahy
na rychlost enginu je dukaz toho, ze koder byl naprosty blb a ostatni i
mene
narocne veci zerou tolik casu, ze se to ani nepozna ;-)
cau,FiDo of INSANITY
- References:
- DOOMFloor
- From: Martin Kuchinka <kuchinka@k332.feld.cvut.cz>