Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Master
Založen: 28. 08. 2007 Příspěvky: 35
|
Zaslal: 28. prosinec 2007, 17:01:46 Předmět: Vypocet normaly v bode? |
|
|
Zdravim.Potreboval bych vypocitat normalu v bode(vertexu).Pro plosku to neni problem,tam se vezmou 3 vertexy,ze ktere se sklada.Ale jak se da vypocitat normala v jednom bode?To se taky berou nejake okolni body?
Diky za pomoc |
|
Návrat nahoru |
|
|
johnnash
Založen: 30. 07. 2007 Příspěvky: 80
|
Zaslal: 28. prosinec 2007, 17:20:18 Předmět: |
|
|
Co konretne potrebujes udelat? Predpokladam ze pro 1D prostor to asi nechces. |
|
Návrat nahoru |
|
|
Augi
Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 28. prosinec 2007, 17:30:43 Předmět: |
|
|
Můžeš např. vzít normály všech plošek, do nichž vertex patří, a tyto normály zprůměrovat. |
|
Návrat nahoru |
|
|
Lando
Založen: 29. 07. 2007 Příspěvky: 33 Bydliště: Cestice
|
Zaslal: 28. prosinec 2007, 17:31:38 Předmět: |
|
|
Udela se prumer trojuhelniku, ktery obsahujou ten jeden vertex. Je mozny pouzit ruzny vahovy kriteria jako napr plocha tech trojuhelniku, uhel ktery sviraji dve zainteresovane hrany atd. , kde potom ty normaly, ktere maji vetsi vahu se projevi vic...
Tohle neni uplne jednoduchej problem. Pokud si udelas krychli a chces vypocitat jeji normaly, je nejlepsi mit v kazdem vrcholu tri normaly pro kazdou stranu. Naproti tomu treba u koule je nejlepsi mit jednu normalu. Proto existujou v lepsich modelovacich programech tzv. smoothing groups, kdy v jednej skupine jsou vsechny normaly zprumerovany, ale mezi skupinama je videt ostra hrana (existuji dve normaly pro kazdej hranicni bod)... |
|
Návrat nahoru |
|
|
Master
Založen: 28. 08. 2007 Příspěvky: 35
|
Zaslal: 28. prosinec 2007, 19:08:20 Předmět: |
|
|
uz mi bylo porazeno pouzit normaly okolnich plosek a ty pak normalizovat.
Potrebuju to jen do skoly na maly projekt.Ale napadlo me jeste jine reseni na to,co zrovna potrebuju.Ale dik za reakce. |
|
Návrat nahoru |
|
|
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 15. březen 2008, 02:19:31 Předmět: |
|
|
Takze ak som to spravne pochopil, ked chcem vypocitat normalu vo vrchole kocky, vypoctam normalu trojuholnikov, ktorych jeden bod je prave bod, v ktorom chcem vypocitat normalu, potom tieto normaly spriemerujem a vysledny vektor este normalizujem ???? |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 15. březen 2008, 04:02:14 Předmět: |
|
|
No nejdřív si ke každému trojúhelníku spočítáš jeho normálu (tzn. ze třech jeho vertexů), pak si ke každému vertexu přidáš informaci, ke kterým trojúhelníkům ten vertex patří. Potom pro každej vertex spočítáš normálu tak, že sečteš a normalizuješ normály všech trojuhelníků, jichž je ten vertex součástí. To je základní princip. Během výpočtu se stává, že tam máš shodné vertexy ale patřící k jiným trojúhelníkům (tzn. máš tam duplikace), to je normální a není třeba to během výpočtu nijak řešit. Dá se to rozšířit o další funkce, např:
Řekněme, že počítáme normálu pro nějaký vertex. Když je hrana mezi trojúhelníkem, ke kterému ten vertex patří, a sousedním trojúhelníkem moc ostrá (= když je úhel mezi jejich normálami moc velký), nebude se normála sousedního trojúhelníku přidávat do součtu. To se hodí třeba u krychle - nechceš přece vyhlazovat hrany, co mají alespoň 90 stupňů, vypadalo by to blbě. Leda tu krychli trochu natesselovat, pak by to mohlo být fajn. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 16. březen 2008, 22:30:43 Předmět: |
|
|
Eosie správně vysvětlil jako obvykle , ale to, co psali předřečníci, je s prominutím blbost.
Lidi! Pokud je to opravdu vrchol (třeba zmíněný "vrchol kocky"), tak snad má tolik normál, na kolika plochách se ten vrchol podílí. Nemůže mít jednu normálu, když je tam lom plochy. Totéž platí i pro hrany, kde je lom mezi dvěma trojúhelníky apod. Pokud to není bod nespojitosti, tak normála je stejná v nekonečně malém okolí toho bodu. Pokud jsou trojúhelníky v modelu stejně velké, tak je triviální udělat průměr normál těch okolních ploch, na kterých se bod podílí. Pokud nejsou stejně velké, je nutno toto zohlednit. (Doufám, že pro výpočet do školy lze brát situaci se stejně velkými trojúhelníky a tím se celá situace docela trivializuje. ) |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 17. březen 2008, 05:29:35 Předmět: |
|
|
To zohlednění velikosti trojúhelníků se dělá celkem jednoduše. Při výpočtu normály celého trojúhelníku se nenormalizuje, takže čím větší obsah trojúhelníku, tím větší bude délka té normály. Potom větší trojúhelníky budou mít při sčítání normál větší vliv na výslednou normálu vertexu. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
|