Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Grafická knihovna OpenGL (21): nastavení světelných zdrojů

Radek Sedmak
Radek Sedmak (neregistrovaný)
25. 11. 2003 9:46 Nový

Bez titulku

celé vlákno

Moc pekna serie clanku, dekuji autorovi. Bude cela serie dostupna jako PDF ?

Pavel Tišnovský
Pavel Tišnovský (neregistrovaný)
25. 11. 2003 12:44 Nový

Re:

celé vlákno

Všechny díly jsem psal přímo v HTML, nevím, čím bych to rozumně překonvertoval do PDF. Pokud se do té konverze někdo bude chtít pustit, proč ne, já na to však žádný rozumný nástroj nemám; snad pouze tisk přes PostScript a konverze do PDF.

moje
moje (neregistrovaný)
25. 11. 2003 13:36 Nový

Re:

celé vlákno

Pokud by byl k dispozici html kod bez tech pridavnych veci, co jsou na rootu (aktuality a podobne), tak to klidne udelam.

Pavel Tišnovský
Pavel Tišnovský (neregistrovaný)
25. 11. 2003 15:35 Nový

Re:

celé vlákno

Pravděpodobněji nejlepší budou stránky na odkazech "Zobrazení pro tisk". Já samozřejmě mám svoje neupravené originály, které posílám do redakce, ale myslím že je korektní, aby se kopírovaly pouze stránky, na které je označení Roota a URL (je to pouze jeden řádek).

Předpokládám že někdo z redakce Roota čte tyto příspěvky a tak se k tématu vytváření "seskupení" vyjádří.

LeOnaRDo/CULT
LeOnaRDo/CULT (neregistrovaný)
25. 11. 2003 14:29 Nový

Re:

celé vlákno

(PDF)LaTeX & \usepackage[hyperindex, backref]{hyperref} ;-)
Nez to nekvalitne konvertovat tak bud to preznackovat v LaTeXu, nebo radeji vytvorit komplet HTML dokument s adekvatnim rejstrikem a obsahem a bibliografii.

Pavel Tišnovský
Pavel Tišnovský (neregistrovaný)
25. 11. 2003 15:29 Nový

Re:

celé vlákno

No já jsem se ze začátku rozmýšlel, jestli to psát v LaTeXu nebo přímo v HTML. Nakonec jsem zvolil HTML protože:
1. někdy používám značkování, které je v LaTeXu nestandardní - barvy apod.
2. šlo o článek určený přímo na WEB
3. překladače z (La)TeXu do HTML někdy zlobí (znám jich víc - Latex2HTML, TTH, tex2rtf apod.)
4. mám rád vše pod kontrolou, a to i kód HTML
5. umím oboje, makra mám ve vimu taky podobná

Klidně by ale šlo vytvořit nějakou indexovou stránku s odkazy na jednotlivé díly.

Pavel
Pavel (neregistrovaný)
25. 11. 2003 17:36 Nový

shrnuti

celé vlákno

Abych se priznal, zacinam se v tom ztracet. Jestli jsem to spravne pochopil, pro materialy se zadava: ambientni, difuzni slozka svetla, barva odlesku a faktor odlesku. Pro svetla se zadava to same (nejsem si jisty faktorem odlesku) plus dalsi parametry, ktere jsou zavisle na typu svetelneho zdroje (pozice, smer sireni svetla atd.).
Typ stinovani urcuje, pro co se bude vysledna barva pocitat. Bud muzeme pouzit konstantni (pocita se pro celou plosku) nebo Gouraudovo (pocita se pro vrcholy a na ploskach se interpoluje).
Ted uz zbyvaji jen normaly vrcholu. To jsou normaly na co (neni mi jasny jejich smer vzhledem k plosce)? Domnivam se, ze normala na plosku to byt nemuze, protoze obvykle jeden vrchol patri vice ploskam.

Pavel Tišnovský
Pavel Tišnovský (neregistrovaný)
25. 11. 2003 18:24 Nový

Re: shrnuti

celé vlákno

Já myslím, že se v tom neztrácíte, protože jste to shrnul velmi dobře. Takže k tomu stínování:

1. konstantní stínování bere v úvahu pouze normálu zadanou u jednoho vrcholu (u trohúhelníků se jedná vždy o první vrchol, jinde je to trošku složitější). OpenGL resp. grafický akcelerátor vůbec nezajímá, zda se jedná o skutečnou normálu k povrchu nebo je to nějaký vektor zadaný "od oka". Jestliže však chceme, aby bylo těleso správně osvětleno, definujeme normálový vektor korektně.

2. Gouraudovo stínování počítá barvu v každém vrcholu. Proto musí být zadána pro každý vertex normála, ze které se za pomoci Phongova osvětlovacího modelu barva spočítá. Proto se zadávají normály ve vrcholech, i když z geometrického hlediska je to samozřejmě nesmysl. Normály ve vrcholech se spočtou například tak, že se provede součet normalizovaných normál stěn které mají tento vrchol společný. Výsledný vektor se poté znovu normalizuje, takže výsledkem je průměr všech normál stěn se stejným vrcholem. No a následně se provede lin. interpolace mezi barvami vypočtenými ve vrcholech.

Kdyžtak zkusím nakreslit nějaký vysvětlující obrázek a potom zde uvést odkaz.

Pavel
Pavel (neregistrovaný)
25. 11. 2003 19:25 Nový

Re: shrnuti

celé vlákno

Diky, uz je to jasne.

Pavel Tišnovský
Pavel Tišnovský (neregistrovaný)
26. 11. 2003 7:52 Nový

Re: shrnuti

celé vlákno

To je dobře, že nemusím kreslit ten obrázek, trošku mi to dělá problémy :-)

Našel jsem na netu toto:
http://www.cs.unc.edu/~davemc/Class/136/Lecture24/shading.html

http://meru.cecs.missouri.edu/courses/cecs361/assignments/tutorial/images/sharp_normals.gif

lioil
lioil (neregistrovaný)
7. 12. 2003 5:53 Nový

Svetlo na pevnem miste ve scene

celé vlákno

Dobry den,

mam nasledujici problem:
svetlo jsem umistil nekam "ke stropu" doprostred sceny

pri kazdem Render() hned po glLoadIdentity() MODEL_VIEW matice jej znovu umistuji na stejnou pozici
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
presto pokud se otacim ve scene obraz se ztmavuje a zesvetluje a na obektech lze spatrit zcela jasne jak se svetlo pohybuje spolecne se mnou (kamerou)

co delam spatne?

dekuji za odpoved

ps. pouzivam ve scene take masking (pistolka v Ortho() modu ) a pokud zacnu pracovat se svelem ona pruhlednost kolem pistolky je jaksi mene pruhledna, pouze u svetla "jednicka na konci->bodove svetlo" je pruhlednost vpohode

Razi
Razi (neregistrovaný)
9. 4. 2004 18:02 Nový

Re: Svetlo na pevnem miste ve scene

celé vlákno

V podstate ste napisal presny navod na to, ako nastavit svetlo, ktore sa pohybuje spolu s pozorovatelom (co je presny opak vasej snahy :).

Pohyb po scene si mozete predstavit ako posun a rotaciu sceny vzhladom na staticku poziciu (a smer pohladu) pozorovatela. V OpenGL sa tento nachadza v pociatku suradnej sustavy a pozera sa v zapornom smere osi Z.

Ak sa pozicia svetla nastavuje hned po resetovani modelview matice, osvetli vykreslenu scenu vzdy z rovnakej pozicie. Ale pozor! Rovnakej nie vzhladom na scenu, ale vzhladom na pociatok suradnej sustavy (a teda aj vzhladom na pozorovatela).

Ak chcete mat svetlo staticke vzhladom ku scene a nie ku pozorovatelovi, nastavte jeho poziciu v case, ked modelview matica obsahuje transformaciu, ktora sa aplikuje na vykreslovanu scenu. Bezne je to napriklad tesne predtym, nez zacnete scenu skutocne vykreslovat.

Xennus
Xennus (neregistrovaný)
26. 11. 2006 13:24 Nový

farba

celé vlákno
takze chcem sa spytat ako spravit aby svetlo nemenilo farbu objektu zadanu glColor*() totiz spravil som si farebny stvorec a ked nan svietim tak zmni farbu uplne na farbu svetla chcem aby sa len stmavilo/zosvetlilo ked nieje/je na svetle
Zasílat nově přidané příspěvky e-mailem