Kial estas 4×4 matricoj uzataj por transformi aferojn en 3D?

Demando
Efektive 4×4 matricoj venas tre utilaj por transformi aferojn en 3D! Vi povas aldoni vektoron en la kazo de tradukado.

Kialo Malantaŭ Uzo De 4×4 matricoj por Transformi Aĵojn en 3D

La kialo uzi matricon resumas al havi unuforman manieron pritrakti malsamajn kombinitajn transformojn.

Ekzemple, rotacio estas kutime farita uzante matricon, do por trakti multoblajn transformojn (rotacio/tradukado/skalo/projekcio…ktp) en unuforma maniero, vi devas kodi ilin en matrico.

Nu, pli teknike parolante; transformo estas mapado de punkto/vektoro al alia punkto/vektoro.

p` = T(p); 

kie p` estas la transformita punkto kaj T(p) estas la transformfunkcio.

Konsiderante ke ni ne uzas matricon ni devas fari tion por kombini plurajn transformojn:

p1= T(p);

pfinalo = M(p1);

Ne nur matrico povas kombini plurajn specojn de transformoj en ununuran matricon (ekz. afina, lineara, projekcia).

Uzado de matrico donas al ni la ŝancon kombini ĉenojn de transformoj kaj poste multobligi ilin. Ĉi tio ŝparas al ni multon da cikloj kutime per la GPU (dankon al @ChristianRau por atentigi ĝin).

Tfinalo = T * Kiel rompi amidan ligon * P; // tradukiturniprojekto

pfinalo = Tfinalo*p;

Ankaŭ estas bone atentigi, ke GPU-oj kaj eĉ iuj CPU-oj estas optimumigitaj por vektoraj operacioj; CPUoj uzantaj SIMD kaj GPU-oj estantaj datumo movitaj paralelaj procesoroj laŭ dezajno, do uzi matricojn perfekte kongruas kun aparatara akcelo (efektive, GPUoj estis dizajnitaj por konveni matric-/vektorajn operaciojn).


KREDITO:

https://gamedev.stackexchange.com/questions/72044/why-do-we-use-4×4-matricoj-por-transformi-aferojn-en-3d?answertab=aktiva#tab-supro

Lasu respondon