Transformation Matrix
![]() |
სურათზე ნაჩვენებია ლოკალური კოორდინატთა სისტემა ვიზუალურად, რომელიც მოცემულია ჰომოგენური ტრანსფორმაციის მატრიცის სახით. |
ტრანსფორმაციის მატრიცა გვაძლევს საშუალებას, რომ მოვახდინოთ სხვადასხვა ტიპის გეომეტრიული ტრანსფორმაციები ერთი ოპერაციით(მატრიცაზე გადამრავლებით). ზემოთ მოცემულ სურათზე ნაჩვენებია 4x4 მატრიცა, რომლის პირველის 3 სვეტი შესაბამისად აღნიშნავს იმ ტრანსფორმაციის(ლოკალური საკოორდინატო სისტემის) ღერძების მიმართულებებს რომელსაც ეს მატრიცა ინახავს, ხოლო მე4 სვეტი აღნიშნავს პოზიციას. ამ პოსტში განვიხილავთ ტრანსფორმაციის ჰომოგენურ მატრიცას. ჰომოგენურ მატრიცაში ვექტორების ჩაწერა ხდება 4 კოეფიციენტით(x, y, z, w) სამის ნაცვლად, სადაც მე4 კოეფიციენტი არის წონა ასე რომ ამ სახით ჩაწერილი სხვადასხვა ვექტორები მაგალითად: [2, 4, -1, 1] და [6, 12, -3, 3] არის ერთი და იგივე.
ვექტორის ამ სახით ჩაწერა საშუალებას გვაძლევს ერთმანეთისგან განვავსხავოთ პოზიციის და მიმართულების მატარებელი ვექტორები და ამის საჭიროება რეალურად არსებობს. მოვიყვანოთ მაგალითი: ვთქვათ გვაქვს რაიმე გეომეტრია, რომელიც შედგება პოზიციის და მიმართულების მატარებელი ვექტორებისგან (ვერტექსები, ნორმალები), რომლებიც ჩაწერილია 3 კომპონენტით(x, y, z). როცა გვსურს ასეთი გეომეტრიის გადაადგილება მის პრიმიტივებს(ვერტექსებს, ნორმალებს) სათითაოდ ვამრავლებთ ტრანსფორმაციის მატრიცაზე(რომელიც ინახავს ინფორმაციას მხოლოდ გადაადგილების შესახებ), ამის შემდეგ პოზიციის აღმნიშვნელი ვექტორებიც(ვერტექსები) და მიმართულების აღმნიშვნელი ვექტორებიც(ნორმალები) შეიცვლება, რაც არ არის სწორი. ვექტორი რომელიც აღნიშვავს მიმართულებას გადაადგილებისას არ უნდა იცვლიდეს მნიშვნელობას. ასე, რომ თუ გვსურს ეს პრობლემა თავიდან ავიცილოთ ვექტორებს დავუმატოთ მე4 კომპონენტი, პოზიციის მატარებელ ვექტორებში მე4 კომპონენტში ჩავწეროთ 1-ს, ხოლო მიმართულების მატარებელ ვექტორებში 0-ს. ამის შემდეგ მიმართულების მატარებელი ვექტორის მატრიცაზე გადამრავლებისას არ მოხდება მატრიცის მე-4 სვეტის გათვალისწინება, რომელიც ასახავს გადატანას.
მატრიცებში ერთეულოვან ელემენტს წარმოადგენს მატრიცა რომელზე გადამრავლებაც არაფერს ცვლის, ამ მატრიცას ქვია ერთეულოვანი მატრიცა.
როგორც სურათზე ჩანს პირველ 3 სვეტს მე4 კოეფიციენტი აქვს 0-ის ტოლი ხოლო მე4 სვეტს 1-ის, რადგან მატრიცის პირველი 3 სვეტი ასახავს ორიენტაციას ხოლო მე4 პოზიციას.
ტრანსფორმაციის მატრიცები ძალიან გართოდ გამოიყენება კომპიუტერულ გრაფიკაში. მათი საშუალებით შეგვიძლია ჩავწეროთ ინფორმაცის ტრანსფორმაციის შესახებ და შემდეგ ვაკეთოთ მასზე მანიპულაცია. ტრანსფორმაციის მატრიცების საშუელებით ძალიან ადვილად ხდება ხისტი ანიმაციების გაკეთება. გრაფიკულ პროცესორებში პირდაპირ არის გათვალისწინებული მატრიცებზე ოპერაციები რაც დამატებით საშუელებას გვაძლევს.
ვექტორის ამ სახით ჩაწერა საშუალებას გვაძლევს ერთმანეთისგან განვავსხავოთ პოზიციის და მიმართულების მატარებელი ვექტორები და ამის საჭიროება რეალურად არსებობს. მოვიყვანოთ მაგალითი: ვთქვათ გვაქვს რაიმე გეომეტრია, რომელიც შედგება პოზიციის და მიმართულების მატარებელი ვექტორებისგან (ვერტექსები, ნორმალები), რომლებიც ჩაწერილია 3 კომპონენტით(x, y, z). როცა გვსურს ასეთი გეომეტრიის გადაადგილება მის პრიმიტივებს(ვერტექსებს, ნორმალებს) სათითაოდ ვამრავლებთ ტრანსფორმაციის მატრიცაზე(რომელიც ინახავს ინფორმაციას მხოლოდ გადაადგილების შესახებ), ამის შემდეგ პოზიციის აღმნიშვნელი ვექტორებიც(ვერტექსები) და მიმართულების აღმნიშვნელი ვექტორებიც(ნორმალები) შეიცვლება, რაც არ არის სწორი. ვექტორი რომელიც აღნიშვავს მიმართულებას გადაადგილებისას არ უნდა იცვლიდეს მნიშვნელობას. ასე, რომ თუ გვსურს ეს პრობლემა თავიდან ავიცილოთ ვექტორებს დავუმატოთ მე4 კომპონენტი, პოზიციის მატარებელ ვექტორებში მე4 კომპონენტში ჩავწეროთ 1-ს, ხოლო მიმართულების მატარებელ ვექტორებში 0-ს. ამის შემდეგ მიმართულების მატარებელი ვექტორის მატრიცაზე გადამრავლებისას არ მოხდება მატრიცის მე-4 სვეტის გათვალისწინება, რომელიც ასახავს გადატანას.
მატრიცებში ერთეულოვან ელემენტს წარმოადგენს მატრიცა რომელზე გადამრავლებაც არაფერს ცვლის, ამ მატრიცას ქვია ერთეულოვანი მატრიცა.
![]() |
ტრანსფორმაციის ერთეულოვანი მატრიცა |
ტრანსფორმაციის მატრიცები ძალიან გართოდ გამოიყენება კომპიუტერულ გრაფიკაში. მათი საშუალებით შეგვიძლია ჩავწეროთ ინფორმაცის ტრანსფორმაციის შესახებ და შემდეგ ვაკეთოთ მასზე მანიპულაცია. ტრანსფორმაციის მატრიცების საშუელებით ძალიან ადვილად ხდება ხისტი ანიმაციების გაკეთება. გრაფიკულ პროცესორებში პირდაპირ არის გათვალისწინებული მატრიცებზე ოპერაციები რაც დამატებით საშუელებას გვაძლევს.
Comments
Post a Comment