Матриц гэж юу вэ?

3D програмчлалд матриц хэмээх ойлголт чухал үүрэгтэй. Англиар matrix гэж бичдэг хэрэв гүүгэлдвэл энэ үг хэрэг болох байх.

Матриц нь мөр болон багана хэлбэрээр бичигддэг тоонуудын цуглуулга юм. Жишээ нь дараах зурагт 4×4 хэмжээтэй матриц байж байна.

4×4 матриц

Мөн матриц нь 4×1, 1×4, 3×3, 4×4 гэх мэт хэмжээсийн хувьд хэд ч байж болно. Вектор хэмээх ойлголтыг бид 10-н жилд байхдаа авсан билээ. Үүгээр чиглэл болон байрлалыг дүрсэлж болно. Векторыг 1×4 ч юм уу баганан хэлбэртэй матриц байдлаар бичиж болдог.

Матриц үржүүлэх

Матриц үржүүлэлт нь ямар нэгэн цэг эсвэл векторыг transform хийхэд ашиглагддаг. transform хийнэ гэдэг нь эргүүлэлт, байршил өгөх, scale хийх гэх мэт үйлдлүүдийг хэлнэ.

Матриц үржүүлэх үйлдлээ мартсан байгаа бол сануулах үүднээс дараах 4×4 болон 4×1 хэмжээтэй хоёр матриц үржүүлэх харуулъя.

хооронд нь үржүүлэх хоёр матриц

 

Эхний мөрийг үржсэн үр дүн

 

хоёр дахь мөрийг үржсэн үр дүн

 

гурав дахь мөрийг үржсэн үр дүн

 

дөрөв дэх мөрийг үржсэн үр дүн

 

үр дүн

 

За матриц үржих нь нэг ийм юм байдаг байж тэгвэл энэ ямар хэрэгтэй эд вэ?

үүний тулд эхлээд 3D модель гэж юу вэ гэдгээс эхлэх хэрэгтэй байхаа. Ямарваа нэгэн объектийг гурван хэмжээст огторгуйд дүрслэхийн тулд тэр объектийн гадаргууд харъялагдах түүвэр цэгүүдийг сонгон авч тэдгээр түүвэр цэгүүдийг хооронд нь холбох замаар тухайн объектийн гадаргууны мэдээллийг дүрсэлдэг. Үүнийг зургаар харуулбал

 

Өөрөөр хэлбэл дүрслэх гэж байгаа объект нь баахан цэгүүдийн олонлогоос бүтдэг гэсэн үг. Цэгийг мэдээж тухайн  моделийн огторгуйн координатын системийн тэнхлэгт байрлах координат утгаар нь цувуулан бичиж дүрсэлдэг.

Энэ моделийг бүрэлдүүлж байгаа цэгүүдийн мэдээлэл нь зөвхөн энэ моделийн хувьд яригдах огторгуйн хувьд дүрслэгдэх цэгийн координатууд байдаг. Өөрөөр хэлбэл Модель-огторгуйд өөрийн гэсэн тооллын эхтэй, тэр тооллын эхтэй хамааралтай баахан цэгүүдийн байршилийн мэдээлэл байна гэсэн үг. Үүнийг модель огторгуй гэж нэрлэдэг англиар model-space.

Хэрэв энэ модель огторгуйн цэг бүрийг ямар нэгэн матрицаар үржүүлвэл үр дүнд нь юу гарах вэ? Чухам энэ үр дүнгээс эхэлж матрицын үр ашиг гарч эхэлнэ. Хэрвээ үржүүлвэл world-space огторгуйд яригдах координатын цэгүүд үр дүнд нь бий болно. world-space координатын систем нь чухам 3-н хэмжээст огторгуйд энэ объектийн цэгүүд хаана оршиж байна вэ гэдгийг нь илтгэдэг.

world-space-ийн цэгүүдийг view матрицаар үржүүлвэл камерын хувьд яригдах огторгуйн цэгүүд бий болно. view матриц нь камерийг хааш нь эргүүлэх вэ хаана байрлуулах вэ гэх мэт мэдээллийг агуулна. Ингээд camera-space ийн цэгүүд бий болно.

цаашлаад projection матриц гэж байдаг бөгөөд үүгээр homogeneous координатын цэгүүдийг гаргаж авахад хэрэглэдэг. Үр дүнд нь камерийн хувьд алслалтын проекц мэт төсөөлөгдөх цэгүүд бий болдог.

тэгэхээр model, view, projection гэсэн гурван янзын матриц, model-space, world-space, camera-space, homogeneous-space гэсэн дөрвөн янзын координатын огторгуйг 3D програмчлалд ашиглаж байгааг сая дурдлаа.

Матрицын хэрэглээний хувьд яривал тухайн объектийг 3D scene буюу тухайн програмын 3D орчин дэх огторгуйн хувьд яг хаана аваачих, эргүүлэх тал дээр санаа тавихийн тулд model матрицийн утгуудыг өөрчилөх нь байна.

камерийг шилжүүлэх эргүүлэх гэх мэт үйлдэлд view матрицийн утгуудад өөрчлөлт оруулах хэрэгтэй гэх мэт. Матриц эргүүлэлт, translation, scale гэх мэт үйлдлүүдийн талаар их сургуулийн 1-р курсын шугаман алгебр хичээлд тодорхой заасан байх ёстой. Хэрвээ шаардлагатай гэвэл энд дэлгэрэнгүй бичиж болно.

 

Нэмэлт уншлага

  • http://en.wikipedia.org/wiki/Matrix_(mathematics)
  • http://en.wikibooks.org/wiki/OpenGL_Programming/3D/Matrices
  • http://www.gamedev.net/topic/367153-why-call-clip-space-homogeneous/
  • https://docs.google.com/document/d/16KFW16L53saHMKP5yfa-5VK4iuoKBUiycwtVJmZ832U
  • http://en.wikipedia.org/wiki/Transformation_matrix
Сурталчилгаан дээр дapж биднийг дэмжээрэй. ↓ ↓ ↓

2 сэтгэгдэлтэй

  1. naagi says:

    za eniigch sn oilgochwolch ther graphic card matrits der ajildag gsn uguu massiv ?

  2. гг says:

    Өөрөөр нь яаж үржүүлэх вэ??? куб зэрэгтэй гэсэн үг л дээ

Сэтгэгдэл бичих

*

Таныг илтгэгч аватар зураг GrAvatar.com (Хэрхэн ашиглах вэ?)

© 2010-2012 Hicheel.inFo .
Wordpress дээр суурьлаж Theme Junkie ашиглан SaKu бүтээв. HOSTED BY DUSAL HOSTING
Ангилал 3D график програмчлал (5 дахь хичээл 7 хичээлээс)