Már egy hete túrom a Hálózatot, de nem jutok előrébb. Amit szeretnék, az a következő:
Adott egy fényképfelvétel, ahol egy négyzet alakú, perspektívában látszó felületre szeretnék olyan 3D-s objektumokat illeszteni, a megfelelő látószögben. Egy halom mintaképen látszik (http://www.perfectprototype.com/site/wp-content/uploads/2009/02/augment…), hogy megoldható a feladat, de konzultációra lenne szükségem.
Walaki? :-)
Üdv, Cözi
- 5320 megtekintés
Hozzászólások
Nem tudom, hogy a profik hogyan csinálják, de én beraktam Blender háttérképnek a képet és arra terveztem az objektumot. Utána GIMP-el kiigazítottam.
- A hozzászóláshoz be kell jelentkezni
A Blender-ben be lehet állítani a kamera irányvektorait? Vagyis, ha ismerem a perspektíva síkjának normál vektorát, akkor ahhoz hogyan tudom igazítani a kamerát?
- A hozzászóláshoz be kell jelentkezni
camera background?
No rainbow, no sugar
- A hozzászóláshoz be kell jelentkezni
Helló, ami neked kell, az az ARToolKit. Sok változata létezik, én Processinggel együtt használtam élő felvételeken.
http://www.bryanchung.net/?p=227
http://processing.org/
http://www.processingblogs.org/2006/07/26/augmented-reality/
- A hozzászóláshoz be kell jelentkezni
Igen, az ARToolkit jó kis megoldás. Csak sajna abból pont azt nem tudom kihámozni, mi is történik valójában (pontosan milyen matematikai műveletek szükségesek). Szeretnék összeállítani egy Java alkalmazást (az ARToolkit-nek van java változata), de első nekifutásra nem tudtam Netbeans alatt beüzemelni (igaz, nem vittem túlzásba a próbálkozást).
Odáig jutottam, hogy 8 pont alapján valahogy megadható a kamera helyzete (4 pont a perspektivikus képen, 4 meg a kamera síkjában).
- A hozzászóláshoz be kell jelentkezni
Elso lepeskent meg kell keresned a kepen a feluleteted, utana egy egy elkeresessel hatarozd meg legalabb 3 elenek a helyzetet, szamold ki ket, kozosellel osszekotott sarokpontjanak a koordinatait. A ket sarokponton atmeno el meghosszabitasaval meghatarozhatod az eltunesi pont koordinatait (ez akar kepen kivul is eshet). Ha az eleknek nincs metszespontja akkor a feluleted merolegesen nez a kamera fele.
Az eltunesi pontbol az alabbi tutorialban szereplo modszerhez hasonloan lehet meghatarozni a kamera helyet es szogeit:
http://www.fxguide.com/modules.php?name=fxtips&rop=showcontent&id=233
Ez nem CG-hez keszult, de az elmelet alkalmazhato barmire.
Fontos, hogy a renderelesnel, a kep es a renderelt objektum kamerajanak a latoszoge megegyezzen.
A kamera latoszoget legegyszerubben ugy lehet meghatarozni, hogy egy papirra 200mm tavolsagra ket jelet teszel es addig mozgatod a kamera elott amig a ket jel pontosan nem illeszkedik a kamera kepenek a ket fuggoleges szelere. A lap kameratol mert tavolsaga mm-ben elosztva 100-al a kamera latoszoge felenek a kotangense.
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
Hú, ez egy remek segédlet, köszönöm. Az még nem világos, hogy bár ismerem a kamera látószögét, illetve a kamera magasságát is becsülhetem, mégis hogyan hozom össze ezt az információt a Blender-rel (vagy bármi mással)?
Él és sarok detektálásról találtam írásokat, de addig is kézzel jelölöm be a sarokpontokat a perspektivikus képen. Ismerem a mintaábrát (négyzet, ismert oldalhosszakkal). Az eltűnési pontok kiszámítása ebből nem látszik nehéz feladatnak.
Csak ami utána jön.
- A hozzászóláshoz be kell jelentkezni
Sőt, hogyan tudom megállapítani, milyen messze van a kamera a fénykép síkjától?
- A hozzászóláshoz be kell jelentkezni
Ki tudom számolni az eltűnési pontokat, meg a fókusz távolságot, na de utána hogyan tovább?
Help!
- A hozzászóláshoz be kell jelentkezni
Kamera tavolsaga: Mivel ismered a kamera latoszoget, es ismered a negyzeted eltavolsagat. A latott kepen mert parhuzamos elek tavolsagabol ki tudod szamolni a kamera tavolsagat.
A fenti tutorial leirja, hogy az eltunesi pontokbol mikepp lehet kiszamolni a kamera dontesenek es elforgatasanak az erteket.
Ha blendert hasznalsz akkor a tavolsag, dontes, elforgatas ertekekkel kell transzformalni az eredeti objektumot. Ez biztositja, hogy ha kepet hatterkepnek allitod be a kameranak, akkor az objektumod ugyanugy fog kinezni, mintha a kepen lenne.
Ha csak egy animáláshoz kell a dolog, akkor a quick&dirty megoldas, az hogy letrehozol egy planet felulnezetben es linkeled az objektumodhoz. Az objektumot atteszed masik retegre es kikapcsolod a reteg megjeleniteset. Beallitod a kepedet hatterkepnek, es kijelolod a planet ugy, hogy annak a kozeppontja legyen a forgatas kozeppontja. Kameranezetre valtasz es arra teruletre mozgatod a planet ahol a kepen a kijelolt sik van. Ezutan addig forgatod es nagyitod a planet, amig annak az elei nem esnek egybe a kepeden levo terulettel. Mivel a plane linkelve van az objektumhoz az is ugyanugy lesz forgatva es nagyitva.
Ha animalt a hatter (pl. video) akkor az animacio sebessegetol fuggoen 2,3,5 kockankent megismetled a muveletet.
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
Hú, kezdek csalódni magamban, de még mindig segítségre szorulok. Nem tudok továbbjutni.
Szóval kiszámolom az eltűnési pontokat, azonban én egy térben elforgatott, döntött négyzetet használok, ahol az eltűnési pontok nem közös egyenesen helyezkednek el (legalábbis nem úgy, ahogy a segédlet mutatja).
Egyelőre szeretnék erre a térben döntött, forgatott négyzetre úgy testeket rajzolni, hogy pl egy kocka rajta a megfelelő perspektívában legyen.
Utána szeretnék mondjuk Java3d-ben mindenféle kész objektumot rátenni (autó, hajó, traktor, stb).
Konkrét ötlet, szakirodalom?
- A hozzászóláshoz be kell jelentkezni
Tudsz feltenni egy mintaképet?
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
A mintakép: http://cozi.hu/a1.jpg
A két eltűnési pont helye (az origo a bal felső sarok, y tengely lefelé pozitív, x tengely jobbra):
Vp1: (5205.5; -2197.1)
Vp2: (10947; 25498)
A sarokpontok:
A: (678; 598)
B: (1144; 1728)
C: (1300; 214)
D: (1680; 1210)
------------
Közben azon gondolkodom, hogyan tudnék egy 12 ismeretlenből álló egyenletrendszert megalkotni (3 térbeli koordináta, 4 pont). Ismerem a vetítés középpontját (0,0,0), ismerem a vetítési síkot, z=1. Ezen a síkon elhelyezkedő 4 pont ismert ((678, 598, 1); ... stb), ezzel 4 db térbeli egyenest meghatározhatok, amin a valódi térbeli négyzet 1-1 pontja elhelyezkedik (4 db egyenlet). Azután ismerem a térbeli pontok közötti távolságot (illetve ez konstans, legyen mondjuk ... mennyi? 50? 1000? -> ha nagy értéket adok meg, "messze" lesz a térbeli négyzetem). Újabb 4 db egyenlet. Esetleg az átellenes pontok távolságát is behozhatom, ez újabb 2 egyenlet.
Összesen 10 egyenlet, de 12 kéne a 12 ismeretlen miatt.
Hú, most jól jönne egy ötlet! :-)
Üdv, Cözi
- A hozzászóláshoz be kell jelentkezni
Valamennyire használható a feltöltött kép?
Üdv, Cözi
- A hozzászóláshoz be kell jelentkezni
HUP!
- A hozzászóláshoz be kell jelentkezni
subscribe
- A hozzászóláshoz be kell jelentkezni