| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 01.06.09 Prihlásený: 14.01.18 Príspevky: 32 Témy: 17 |
Čaute, potreboval by som pomoc. Takže, mám kocku u ktorej mám vyriešené tieto veci:
1) Vykreslenie kocky na základe 8 bodov spojených čiarami. (bresenhamov algoritmus)
2) Rotácia tejto kocky + škálovanie (pomocou transformačných matíc)
3) Vykresľovanie iba viditeľných strán kocky. (robené na základe normálových vektorov strany)
4) Vyfarbenie kocky (flood fill (so zásobníkom))
Teraz som sa dostal do fáze kedy musím túto kocku nejakým spôsobom natieňovať (osvetliť). Je mi jasné že to musím pravdepodobne robiť cez phongov osvetlovací model pomocou tých zložiek. Teoreticky teoriu k tomu trošku chápem. Chápem že musím nejakým spôsobom pracovať s tými normálami (pravdepodobne asi vypočítať normály jednotlivých bodov). Každopádne sa v tomto cítim dosť stratený. Hľadal som všemožné príklady na nete, študoval teoriu ale aj po tom všetko mám v tom trošku guláš. Nájde sa tu niekto kto s týmto pracoval a poprípade vie ako by sa to "teoreticky" dalo spraviť? Nečakám tu žiadny kód ale skôr myšlienky ako by ste to robili.
Na konci len podotknem že nesmiem používať žiadne vstavané 2d,3d funkcie ale iba vykreslenie čiar atd.. ktoré som si sám naprogramoval.
Predom ďakujem za akúkoľvek pomoc alebo odozvu
Gamecam
|
|
Registrovaný: 19.03.07 Prihlásený: 14.04.24 Príspevky: 7076 Témy: 85 Bydlisko: BA | Napísal void: 22.11.2015 2:14 | |
|
Matfyz, eh? Musis si zostit normalu tej plochy a zistit aky uhol zviera relativne ku svetlu. Ak je >=90° tak je to v tieni, inak to je osvetlene. Potom to uz len naskalovat podla toho aky uhol zvieraju. Cim je blizsie cislo k 90°, tym to bude blizsie k tmavej. Este si treba dat pozor na to ci vstavane matematicke funkcie vracaju radiany alebo stupne...
_________________ Desktop: CPU AMD R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA Powercolor VEGA56 + Raijintek Morpheus II | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 & Notebook: DELL inspiron 7537 i7 4500U, 16GB RAM, nv750, FHD IPS,Crucial M4 128GB | ARCH x64 & Surface Go 8/128 & Mobil: LG v40 ThinQ (2018) & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN |
|
Registrovaný: 01.06.09 Prihlásený: 14.01.18 Príspevky: 32 Témy: 17 | Napísal autor témy Gamecam: 22.11.2015 2:26 | |
|
Bohužial matfyz nie Aplikovaná informatika. Tam ide práve o to že máme použiť konkrétne phongov model ten má 3 zložky ambientnú, diffuznu a zrkadlovú. Konkrétne som študoval čo a ako s týmito zložkami ale aj tak som sa k ničomu nejak nedopracoval. bohužiaľ ja a matematika tiež nie sme nejak extra kamaráti. To či bude strana osvetlená alebo nie je bezpredmetné pretože sa bude jednať o pohľad s predu zo stredu a s toho isté miesta pôjde aj svetlo, to znamená že tie strany ktoré budú viditeľné budú aj osvetlené. teraz skôr premýšlam ako vypočítať normály jednotlivých pixelov a ako vypočítať uhle a ako to celé vlastne previesť do javy.
|
|
Registrovaný: 19.03.07 Prihlásený: 14.04.24 Príspevky: 7076 Témy: 85 Bydlisko: BA | Napísal void: 22.11.2015 17:08 | |
|
Nemusis spocitat normaly jednotlivych pixelov ale normaly ploch (iba ze by kazdy pixel ob plocha) Ak by si to chcel mat pekne hladko tak potom urobit farebny gradient medzi predchadzajucou plochou a nasledujucou plochou. Normalu vypocitas bud cez maticovu operaciu. https://en.wikipedia.org/wiki/Normal_(geometry) ? Plochu si das do tvaru ax+by+cz=d a vektor (a,b,c) by mal byt normala pre danu plochu, nie?
_________________ Desktop: CPU AMD R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA Powercolor VEGA56 + Raijintek Morpheus II | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 & Notebook: DELL inspiron 7537 i7 4500U, 16GB RAM, nv750, FHD IPS,Crucial M4 128GB | ARCH x64 & Surface Go 8/128 & Mobil: LG v40 ThinQ (2018) & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN |
|
Registrovaný: 01.06.09 Prihlásený: 14.01.18 Príspevky: 32 Témy: 17 | Napísal autor témy Gamecam: 22.11.2015 23:26 | |
|
Už chápem čo tým myslíš. nevieš ešte náhodou ako yypočítam ten uhol medzi dvomi normálami? Pre príklad mám 2 normálové vektory u(1,1,1) a v (0,0,40000) a fakt netuším ako z týchto dvoch vektorov dostanem uhol EDIT: Už som to našiel
|
|
Registrovaný: 19.03.07 Prihlásený: 14.04.24 Príspevky: 7076 Témy: 85 Bydlisko: BA | Napísal void: 22.11.2015 23:31 | |
|
Osobne si myslim ze na to je skalarny sucin. Oprav ma ale ak sa mylim. Toto by ste mali mat prebrate z matematiky. Skus pogooglit, no malo by to byt ono. EDIT: mozno pomoze: http://www.sportgymke.sk/mvd/AnalytickaGeometria/SkalarnySucin.pdf
_________________ Desktop: CPU AMD R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA Powercolor VEGA56 + Raijintek Morpheus II | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 & Notebook: DELL inspiron 7537 i7 4500U, 16GB RAM, nv750, FHD IPS,Crucial M4 128GB | ARCH x64 & Surface Go 8/128 & Mobil: LG v40 ThinQ (2018) & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN |
|
Registrovaný: 01.06.09 Prihlásený: 14.01.18 Príspevky: 32 Témy: 17 | Napísal autor témy Gamecam: 23.11.2015 0:27 | |
|
Už to mám, ďakujem za pomoc a bol tam k tomu trošku zložitejší vzorček double vysledok; double delenec=((x.u1*y.u1)+(x.u2*y.u2)+(x.u3*y.u3)); double delitel1=Math.sqrt(Math.pow(x.u1, 2)+Math.pow(x.u2, 2)+Math.pow(x.u3, 2)); double delitel2=Math.sqrt(Math.pow(y.u1, 2)+Math.pow(y.u2, 2)+Math.pow(y.u3, 2)); double delitel=delitel1*delitel2; return vysledok=delenec/delitel; Toto mi vypočítalo cos alfa čo pre moje účeli bolo dostačujúce. Stačí potom už len vynásobiť toto číslo farbou a dostaneš niečo v rozmedzí 0-255, čo odpovedá aj farbe osvetlenia.
|
|
Registrovaný: 19.03.07 Prihlásený: 14.04.24 Príspevky: 7076 Témy: 85 Bydlisko: BA | Napísal void: 23.11.2015 0:30 | |
|
Hej, tomu sa hovori skalarny sucin Som sam seba prekvapil, ze si z tohto este nieco pamatam, predsa len ta skola na nieco je...
_________________ Desktop: CPU AMD R7 1700x @ 3.85GHz | Cooling be quiet! Dark Rock Pro 4 | MB ASRock X470 Taichi Ult. | RAM 4x8GB DDR4 G-SKILL TridentZ RGB 3000 CL16-16-16-36 | VGA Powercolor VEGA56 + Raijintek Morpheus II | SSD Crucial MX300 525GB | HDD Seagate Ironwolf 3TB 5900rpm | PSU CORSAIR RM750X | MONITOR AOC Q3279VWFD8 | MOUSE HyperX Pulsefire FPS + Razer eXactMat | HyperX Alloy FPS Brown | HyperX Cloud | ARCH x64 & Notebook: DELL inspiron 7537 i7 4500U, 16GB RAM, nv750, FHD IPS,Crucial M4 128GB | ARCH x64 & Surface Go 8/128 & Mobil: LG v40 ThinQ (2018) & SBC: Raspberry pi 0 | 3B+ & Headphones: Senheiser HD58X | AKG K551 + detachable cable mod | Linsoul TIN T2 | KZ SZN |
|
Registrovaný: 01.06.09 Prihlásený: 14.01.18 Príspevky: 32 Témy: 17 | Napísal autor témy Gamecam: 23.11.2015 0:36 | |
|
No ja a matematika si nerozumieme takže nech sa tomu hovorí ako chce hlavne že to funguje
|
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Shader model v Počítačové hry | 3 | 527 | 12.12.2010 18:38 heretik | | Shader model v nVidia grafické karty | 16 | 1247 | 04.07.2007 18:22 majso | | Svedsky model [ Choď na stránku: 1, 2, 3, 4, 5 ] v Spoločnosť, politika, psychológia, filozofia, náboženstvo | 130 | 11009 | 08.09.2006 15:50 peterb | | projekt - model v Ostatné | 1 | 441 | 25.02.2010 14:03 rooobertek | | Model 769N help ! v Ovládače | 12 | 1430 | 17.02.2007 18:18 shiro | | macbook - konkretny model v Notebooky a netbooky | 13 | 772 | 04.02.2012 13:15 petocervik | | MVC: časť model v PHP, ASP | 2 | 604 | 26.01.2011 16:55 Flety | | i5 aký model v Intel - Integrated Electronics | 5 | 447 | 01.03.2015 12:10 mato59 | | I: model zeleznice v Informujem sa | 0 | 367 | 22.04.2010 20:15 Rasputin | | Dátový a databázový model v Databázy | 2 | 814 | 13.06.2009 21:33 myxall | | Interaktívny model areálu - flash? v Ponuka práce | 0 | 747 | 03.02.2011 11:22 beretta | | shader model 2.0 v ATI/AMD grafické karty | 4 | 3271 | 29.07.2008 19:57 Luks | | HD 4890 ktory model ? [ Choď na stránku: 1, 2, 3 ] v Grafické karty | 63 | 3144 | 12.08.2009 12:29 mano8 | | Notebook Microbook model 7020 v Notebooky a netbooky | 3 | 834 | 31.03.2009 12:09 marzo | | Kupovanie tabletu model M33 v Mobilné zariadenia | 12 | 579 | 27.09.2013 18:50 Lantern | | RaspberryPi 3 Model B v Mikropočítače | 24 | 1269 | 12.05.2016 11:01 eon5 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|