1 / 11

6. A 3D grafika alapjai

6. A 3D grafika alapjai. 6.1. A 3D szerelőszalag fölépítése 6.2. Térbeli alakzatok képe 6.3. Térbeli képelemek és modell-adatszerkezetek 6.4. Képelemek összeállítása, leképezés és vágás (6.1-6.4 jórészt a 3. fejezet megfelelő részeit idézik föl.) 6.5. Láthatóság, takarás

percy
Download Presentation

6. A 3D grafika alapjai

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése 6.2. Térbeli alakzatok képe 6.3. Térbeli képelemek és modell-adatszerkezetek 6.4. Képelemek összeállítása, leképezés és vágás (6.1-6.4 jórészt a 3. fejezet megfelelő részeit idézik föl.) 6.5. Láthatóság, takarás 6.6. A fénysugár-követési módszer 6.7. Árnyalás, a képpontok színe 6.8. Irodalom 6.9. Egyebek

  2. Tárgytér-módszerek: • Tárgytér: valódi távolságok és szögek (normál-vektor!) • SzKR: szem-(kamera-)KR • Nézetmező: csonkagúla • Közelsík (és távolsík) • Mélységvágás • Oldalvágás (2D)

  3. 6.6. A fénysugár-követés módszere • Fénysugár-követés (ray-tracing) • A tárgytérben (SZKR) • Minden képpontban: az ott látható felület-elem meghatározása • Az ott látott színárnyalat kiszámítása: „megvilágítási módszerrel” • „Valószerű képek” (realistic images) egyik módszere fényforrások, árnyékok, fény-visszaverődés, átlátszó felületek

  4. Az FSK eljárás váza • Előtte: mélységvágás, (hátlap-ritkítás,) és az oldalt kívül lévők megjelölése • VKR -> SzKR (tárgytér) • Keret; raszter:Kij képpontok • „fénysugár:” O->KijX = O+t*(Kij-O) • a legközelebbi felület? • Iij(r,g,b)0 • Iij(r,g,b): fényvisszaverődés, árnyékok, átlátszó felületek

  5. A kép kerete • C-től d (~50 cm) távolságra • a b (~30x40 cm) oldalú • Kij képpontok: i = 0,1,…,xmax, j = 0,1,…,ymax xi= -a/2 + a/xmax yj= -b/2 + b/ymax • for j := 0 to ymax dofor i := 0 to xmax dobegin … end; • A fénysugár: X = O + t·(Kij - O) = t·Kij; t>0

  6. A ciklus magja: • for j := 0 to ymax dofor i := 0 to xmax dobeginsugár:„P= t·Kij”; zxy:= zmax; lapxy:=hatter; {a háttérlap följegyzése}foreach lap dobeginsik:= „a lap síkja”; {P=B+u·(A-B)+v·(C-B)} „P(x,y,z,u,v,t):= döféspont”; {sík és sugár}if 0u,v,1-u-v  0 then {a háromszögben van}if z < zxy thenbegin {közelebb van?} zxy:=z; lapxy:=lap; {a lap följegyzése}end;{if-if}end; {foreach lap} putPixel(i,j, „a lapxy színe a zxy pontban”); {megvilágítás!}end; {for i,j}

  7. Megjegyzések • foreach y foreach x foreach lap … • Gyorsítások: a kereten kívüliek megjelölése testek dobozolása (foreach tárgy foreach lapja) lapok rendezése legkisebb z szerint térfelosztás • putPixel(i,j, „a lapxy színe a zxy pontban”); Iij(r,g,b)0 := I(lap, x,y,z) „megvilágítási modell” • Ez csak Iij(r,g,b)0 ; fény-visszaverődés: később

  8. Rekurzív FSK • Első ütközés: a látott pont, színe a közvetlen megvilágításból • A testek között fény-visszaverődés (és átlátszó testeken fény áthaladás) • Milyen fény esik a látott pontba másokról visszaverten? (A testen áteresztve?)

  9. Rekurzív FSK • Az ideális visszaverődés törvénye: (LN) szög = (SN) szög; egy síkban • A fénytörés törvénye: sin a / sin b = nk / nb; egy síkban • s1 sugár: a látás iránya • s2v és s2a másodlagos sugarak; milyen fény esik be arról? • Csak véges számú visszaverést számolunk • Csak az ideális visszaverési irányt számoljuk

  10. for j := 0 to ymax dofor i := 0 to xmax dobegins1 := „P= t·Kij”; szin := FSK ( s1 ); putPixel(i,j, szin);end; {for i,j} ColorfunctionFSK(s1:Vector3D);var mpt: Point3D; ksz: Color;begin(mpt,felület):=aLegközelebbi(s1,felületlista);if (nincs mpt) thenFSK :=háttérSzín;elsebeginksz:=megvilágításiModell(felület,mpt); FSK:= ksz; end; {if-else: van mpt}end; {FSK function}

  11. ColorfunctionrFSK(kpt:Point3D; s1:Vector3D; mélység:Integer);var mpt: Point3D; s2v,s2á:Vector3D; ksz,vsz,ász: Color;beginif mélység > korlát then rFSK:=Fekete;elsebegin (mpt,felület):=aLegközelebbi(s1,felületlista);if (nincs mpt) then szín:=háttérSzín;elsebeginksz:=megvilágításiModell(felület,mpt); s2v:=tükrözés(s1,felület,mpt); vsz:=rFSK(metszéspt,s2v,mélység+1); s2t:=megtörés(s1,felület, mpt); ász :=rFSK(mpt,s2t,mélység+1) rFSK{szín}:=kever(ksz,ksúly,vsz,vsúly,ász,ásúly);end; {if-else: van mpt}end; {if-else: mélység<korlát}end; {rFSK function}

More Related