Přivrácené a odvrácené stěny

Přednáška pokrývá základy 2D i 3D počítačové grafiky algoritmy pro kreslení a ořezávání v rovině, použití a zobrazování barev, zvětšování barevného rozlišení, kódování obrazu a rastrové grafické formáty, lineární transformace a projekce, metody reprezentace a zobrazování 3D scén, algoritmy výpočtu viditelnosti. Přednáška je doplněna cvičením - výroba modulů do knihovny JaGrLib v jazyce Java. V letním semestru na ni navazují přednášky pro vážnější zájemce Počítačová grafika II (PGR004) a Pokročilá 2D počítačová grafika (PGR007).

Přivrácené a odvrácené stěny

Příspěvekod gimli » 24. 1. 2007 21:53

Nevíte někdo jak se určí přivrácená a odvrácená stěna tělesa? Pelikán má na slidech, že pomocí normály, ale nějak mě nenapadá jakou orientaci bych musel dát hranám nebo s čím bych měl tu normálu násobit, nebo nakonec jak se liší normála přivrácené a odvrácené stěny?
gimli
Matfyz(ák|ačka) level I
 
Příspěvky: 10
Registrován: 21. 5. 2006 12:27
Bydliště: Dejvice

Příspěvekod dr.Bik » 24. 1. 2007 22:42

Ja si myslim, ze je to takhle (pozor, nasledujici radky se nemusi nutne zakladat na pravde :-) ale v OpenGL to takhle nejak funguje)

1) Normala je tam pouzita dost nesikovne, protoze kazda rovina v 3D ma normaly 2 (a pak nasobky, ale ja budu predpokladat, ze normaly jsou normalizovany) a ty jsou presne opacny.

2) Aby slo jednoduse urcit, ktera stena je privracena, potrebuje to od tvurce sceny konzistenci v tom, jak bude ty steny zadavat. Predpokladam, ze scena je tvorena polygonama (hezkejma, takovejma, ktery jsou v jedny rovine)

Kazda stena ma 2 strany, jedna je videt zevnitr telesa a jedna z vnejsku. Pozaduje se, kdyz se podivas na tu stranu, ktera jakoby miri ven z objektu, aby jednotlivy vertexy byly zadany po smeru hodinovejch rucicek (nebo mozna je to obracene, nicmene na principu to nic nemeni)

3) Vezmes 1., 2. a posledni bod v tomhle poradi a udelas z nich 2 vektory mirici z 1. bodu (tzn. 1. a 2, 1. a posledni) a udelas vektorovej soucin - tak dostanes jednu normalu pro kazdou stenu (je to teda lepsi jeste znormalizovat)

4) Dal si vezmes smer tvyho pohledu a porovnas ho s tou normalou a rozhodnes se podle toho, jestli je uhel mezi normalou a tvym pohledem z rozmezi (-Pi/2, Pi/2) nebo ne.

Tady normalizaci vlastne ani nepotrebujes, jde jen o znaminko skalarniho soucinu tech vektoru, ale je hezky mit vektory znormalizovany, ne :)

Takhle nejak to funguje (mam hrozne blbou 3D predstavivost, takze jak se mas konkretne rozhodnout bych musel chvili badat)
Jednou z hlavních příčin zániku Římského imperia bylo, že bez nuly nemohli Římané ohlásit úspěšné ukončení svých céčkových programů.
Uživatelský avatar
dr.Bik
Matfyz(ák|ačka) level II
 
Příspěvky: 73
Registrován: 9. 6. 2005 13:13
Bydliště: Prágl

Příspěvekod Petr-H » 24. 1. 2007 23:47

Stěna tělesa je přivrácená pokud normála stěny svírá se směrem pohledu tupý úhel, pokud je sevřený úhel ostrý, je stěna odvrácená. Normála přivrácené stěny tedy míří od pozorovatele, normála odvrácené stěny míří k pozorovateli.
Uživatelský avatar
Petr-H
Matfyz(ák|ačka) level II
 
Příspěvky: 81
Registrován: 30. 1. 2006 14:18
Bydliště: VŠK 17. listopadu
Typ studia: Informatika Mgr.
Login do SIS: hosep5am

Příspěvekod gimli » 25. 1. 2007 11:13

Petr H píše:Stěna tělesa je přivrácená pokud normála stěny svírá se směrem pohledu tupý úhel, pokud je sevřený úhel ostrý, je stěna odvrácená. Normála přivrácené stěny tedy míří od pozorovatele, normála odvrácené stěny míří k pozorovateli.


Tohle zní logicky, tak něco bych si i myslel, ale jak bylo zmíněno výše: "Každá stěna má dvě normály" a pochopil jsem, že tu správnou určím jedině tak, že mám systém v tom jak ty stěny zadávám. Každopádně dík.
gimli
Matfyz(ák|ačka) level I
 
Příspěvky: 10
Registrován: 21. 5. 2006 12:27
Bydliště: Dejvice

Dot product

Příspěvekod Inv » 25. 1. 2007 21:38

Petr H píše:Stěna tělesa je přivrácená pokud normála stěny svírá se směrem pohledu tupý úhel, pokud je sevřený úhel ostrý, je stěna odvrácená. Normála přivrácené stěny tedy míří od pozorovatele, normála odvrácené stěny míří k pozorovateli.


..přesně tak, takže stačí udělat skalární součin.
Inv
Matfyz(ák|ačka) level I
 
Příspěvky: 13
Registrován: 20. 1. 2006 23:48
Bydliště: 17. listopad A1602
Typ studia: Informatika Bc.


Zpět na PGR003 Počítačová grafika I

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 2 návštevníků