.[ ČeskéHry.cz ].
Vypocet normaly v bode?

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Master



Založen: 28. 08. 2007
Příspěvky: 35

PříspěvekZaslal: 28. prosinec 2007, 17:01:46    Předmět: Vypocet normaly v bode? Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
johnnash



Založen: 30. 07. 2007
Příspěvky: 80

PříspěvekZaslal: 28. prosinec 2007, 17:20:18    Předmět: Odpovědět s citátem

Co konretne potrebujes udelat? Predpokladam ze pro 1D prostor to asi nechces. Laughing
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Augi



Založen: 28. 07. 2007
Příspěvky: 782
Bydliště: Čerčany

PříspěvekZaslal: 28. prosinec 2007, 17:30:43    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Lando



Založen: 29. 07. 2007
Příspěvky: 33
Bydliště: Cestice

PříspěvekZaslal: 28. prosinec 2007, 17:31:38    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Master



Založen: 28. 08. 2007
Příspěvky: 35

PříspěvekZaslal: 28. prosinec 2007, 19:08:20    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 15. březen 2008, 02:19:31    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 15. březen 2008, 04:02:14    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 16. březen 2008, 22:30:43    Předmět: Odpovědět s citátem

Eosie správně vysvětlil jako obvykle Smile, 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. Cool)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 17. březen 2008, 05:29:35    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna