Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Implementacija softverskog renderinga

[es] :: 3D programiranje :: Implementacija softverskog renderinga

Strane: 1 2

[ Pregleda: 6640 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bkaradzic
Branimir Karadžić
ArenaNet
Seattle, WA

Član broj: 14953
Poruke: 1630
*.socal.res.rr.com.

Sajt: https://github.com/bkarad..


+11 Profil

icon Re: Implementacija softverskog renderinga10.11.2007. u 07:23 - pre 200 meseci
Fixed point je zapravo veoma jednostavan. Pomnožiš float point broj sa vrednošću koja u fixed point predstavlja 1 i zaokružiš rezultat. U praksi to izgleda ovako:
Code:

typedef int fix16;

fix16 float2fix(float x)
{
    return int(x * 65536.0f);
}

float fix2float(fix16 x)
{
    return float(x) / 65536.0f;
}

fix16 int2fix(int x)
{
    return fix16(x) << 16;
}

int fix2int(fix16 x)
{
    return int(x) >> 16;
}

Obrati pažnju da što više bitova ostavljaš za ceo deo, to je preciznost manja, ili što više bitova ostavljaš za ostatak to je manji opseg celog dela broja. Pošto fixed point koristiš u maksimalnom opsegu koji je kao i rezolucija ekrana ceo deo broja ne mora da bude u širokog opsega.

 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
212.200.29.*

ICQ: 208550327


+14 Profil

icon Re: Implementacija softverskog renderinga10.11.2007. u 12:26 - pre 200 meseci
Hcala na objasnjenju :)
EOF
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
212.200.234.*

ICQ: 208550327


+14 Profil

icon Re: Implementacija softverskog renderinga14.11.2007. u 18:22 - pre 200 meseci
Ubacio sam Goraud lighting i sve radi super...

Jedini problemcic...

U nekim trenucima mi je potrebno da dobijem normalu trougla u WORLDkoordinatama...

Ali, cini mi se da se normala ( koja je 'za sada' u LOCAL koordinatama ) ne moze transformisati pomocu WORLD matrice???

Sve radi kada uzmem vertexe koje transformisem WORLD matricom i onda nadjem vektorski proizvod... Normala je ok transformisana.

Ali, kada normalu, koju sam na pocetku prekalkulisao ( znaci u LOCAL koordinatama ) transformisem world matricom, dobijam nezeljene rezultate...

Da li je normala kao vektor drugacije prirode od pozicija vertexa? Postoji li nacin da prekalkulisane normale ( u LOCAL sistemu ) transformisem 'nekom' matricom jer je to znatno brze od Vektorskog proizvoda, etc... ?
EOF
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
..w.sh.dynamic.163data.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: Implementacija softverskog renderinga14.11.2007. u 18:46 - pre 200 meseci
Možeš uvek da transformišeš svetlo u lokalni prostor objekta, time menjaš
transformacije svih normala sa samo jednom transformacijom svetla - po objektu.
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
212.200.234.*

ICQ: 208550327


+14 Profil

icon Re: Implementacija softverskog renderinga14.11.2007. u 19:31 - pre 200 meseci
Aham! Da da! Hvala!
To, verovatno, pali i za Backface removing gde mi opet trebaju normale ( u WORLD ) i pozicija kamera koju cu, znaci, inverzno da transformisem world koordinatama...
EOF
 
Odgovor na temu

[es] :: 3D programiranje :: Implementacija softverskog renderinga

Strane: 1 2

[ Pregleda: 6640 | Odgovora: 24 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.