3D projekcija

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 
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 
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).:


Šā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)::

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 
Attēls: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 

Kategorija:3D grafika
Kategorija:Funkcijas
Kategorija:Lineārā algebra