3D projekcija

Vikipēdijas lapa
Jump to navigation Jump to search

3D projekcija ir metodes veids ar kādu trīs dimensionālie punkti tiek pārnesti uz divu dimensiju plakni. Tā kā lielākā daļa metožu ir balstīta uz pikseļu informāciju, kas tiek atainota bitu plaknēs, tā iegūstot divdimensionālu attēlu, tad šo projekcijas veidu plaši izmanto datorgrafikā, inženierijā un rasēšanā.

Ortogrāfiskā projekcija[labot šo sadaļu | labot pirmkodu]

Kad cilvēka acis skatās uz ainu, objekti, kas atrodas tālāk, izskatās mazāki par objektiem, kas atrodas tuvāk. Ortogrāfiskā projekcija ignorē šo efektu, lai ļautu radīt zīmējumus, kas ir pēc mēroga, ko izmanto inženierijā.

Ortogrāfiskā projekcija izmanto mazu skaitu transformāciju, lai pārsvarā attēlotu no profila, daļu vai precīzus trīs dimensionāla objekta izmērus.

Ja plaknes skata normāle(kameras virziens) ir paralēls kādai no trīs asīm(x, y vai z asij), tad matemātiskā transformācija ir šāda: lai atainotu 3D punktus ax, ay, az uz 2D punktiem bx, by izmanto ortogrāfisko projekciju paralēlu y asij (profilskats), šāds vienādojums var tikt izmantots:

kur vektors s ir mērogs un c ir novietojuma izmaiņa. Šīs konstantes ir opcionālas un var tikt izmantotas, lai pareizi novietotu skata punktu(lauku, no kura tiek redzēts objekts). Izmantojot matricu reizināšanu, vienādojums ir sekojošs:

.

Kamēr ortogrāfiski attēloti attēli ataino objekta trīsdimensionālo dabu, objekts netiek atainots skatā kā to uztver vienkārši uz to lūkojoties vai fotografējot. Respektīvi, mainoties objekta attālumam no skatu punkta, tā dimensionāli raksturlielumi nemainās. Rezultātā, objekta raksturlielumi netiek samazināti vai palielināti atkarībā no tā cik tuvu objekts atrodas no skatītāja/kameras kā tas būtu perspektīvajā projekcijā.

Perspektīvā projekcija[labot šo sadaļu | labot pirmkodu]

Kad cilvēka acs aplūko ainu, objekti distancē izskatās mazāki kā objekti tuvumā — šī parādība ir zināma kā perspektīva. Kamēr ortogrāfiskā projekcija ignorē šo efektu, tādējādi ļaujot veikt precīzus mērījumus, tikmēr perspektīvā projekcija objektus attālumā ataino mazākus, tādējādi veidojot reālistisku skatu.

Perspektīvajai projekcijai ir nepieciešama daudz sarežģītāka definīcija salīdzinājumā ar ortogrāfisko projekciju. Lai konceptuāli saprastu šīs projekcijas uzbūvi ir jāiztēlojas 2D projekcija it kā objekts tiek skatīts caur kameras „skata meklētāju”(angļu val.: viewfinder). Kameras pozīcija, novietojums un skata lauks kontrolē projekcijas transformācijas raksturu. Sekojošie mainīgie definē šo transformāciju:

  •  — 3D pozīcija punktam A kas tiks projicēts.
  •  — 3D pozīcija punkta C kas būs kameras novietojuma punkts
  •  — Kameras novietojums
  •  — novērošanas pozīcija, kas ir relatīva attēlojuma virsmai, kas iet caur punktu C, kurš ir kameras punkts

Kas rezultējas:

  •  — a 2D projekcija

Kad un 3D vektors tiek projicēts kā 2D vektors .

Lai aprēķinātu vispirms tiek definēts vektors kā punkta A pozīcija koordinātu sistēmā, kas tiek definēta pēc kameras ar sakni C rotēta pēc pēc saistības ar sakuma koordinātu sistēmu. Tas tiek sasniegs atņemot c no a un tad pievienojot rotāciju rezultātam. Šī transformācija tiek dēvēta par kameras transformāciju(angļu val.: camera transform) un var tikt atainota šādi: atainojot rotāciju attiecībā pret x, y un z asīm(šajos aprēķinos pieņem, ka asis ir sakārtotas pretēji labās rokas likumam).: [1] [2]

Šāds attēlojums atbilst rotācijai par trim Eilera leņķiem(Euler angles), izmantojot xyz konvertāciju, kas var tikt interpretēta kā „rotācija ap netipiskām asīm (rotācija ap skatu) kārtībā z, y, x (lasot no labās uz kreiso)” vai „rotācija ap patiesajām asīm(kameras asis) secībā x, y, z (lasot no kreisās uz labo)”. Jāpievērš uzmanība tam, ka kamera netiek rotēta (), tad matricas atkrīt(kā identitādes) un tas savukārt atvieglo vienādojumu:

Alternatīva matricu nelietošanai ir(aizvietojot (ax-cx) ar x, noīsinot cosθ par c un sinθ par s):

Tagad šis transformētais punkts par tikt atainots 2D plaknē izmantojot formulu(šeit x/y ir izmantos kā projekcijas plakne, literatūrā var būt arī x/z)::[3]

Vai matricas formā izmantojot homogēnas koordinātas, sistēma

saistībā ar argumentiem izmanto līdzīgus trijstūrus, tas noved pie homogēnas koordinātes, dodot:

Attālums no skatītāja un redzamās virsmas, , ir tieši saistīs ar redzes lauku, kur ir redzes leņķis. (Piezīme: tiek pieņems, ka tiek punkti (-1,-1) un (1,1) tiek uzstādīti aplūkojamās virsmas stūros).

Vienādojums var tikt pierakstīts šādi:

Kur ir ekrāna izmērs, ierakstāmās virsmas izmērs, ir attālums no ierakstāmās virsmas līdz kameras centram un ir attālums no 3D objekta punkta, kas tiek attēlots, līdz kameras centram.

Tālākas apgriešanas un mērogojamības operācijas var būt nepieciešamas lai iestādītu 2D plakni uz konkrētā ekrāna.

Diagramma[labot šo sadaļu | labot pirmkodu]

Perspective transform diagram.svg

Lai noteiktu, kura ekrāna x koordināta ir saistīta ar punktu pie jāreizina punkta koordinātes:

kur

ir ekrāna x koordināte
ir modeļa x koordināte
ir fokālais garums — aksiālais attālums no kameras centra līdz monitoram
attālums līdz objektam.

Tā kā kamera ir 3D vidē, tad tas pats ir attiecināms uz y koordinātu, aizvietojot x ar y augstāk redzamajā diagrammā un vienādībā.

Atsauces[labot šo sadaļu | labot pirmkodu]

  1. K F Riley. Mathematical Methods for Physics and Engineering. Cambridge University Press, 2006. 931, 942. lpp. ISBN 0-521-67971-0. doi:10.2277/0521679710.
  2. Herbert Goldstein. Classical Mechanics (2nd izd.). Reading, Mass. : Addison-Wesley Pub. Co., 1980. 146–148. lpp. ISBN 0-201-02918-9.
  3. M Sonka, V Hlavac, R Boyle. Image Processing, Analysis & Machine Vision (2nd izd.). Chapman and Hall, 1995. 14. lpp. ISBN 0-412-45570-6.