Skip to main content

ამოზნექილობის მეპი

Displacement Map
მარცხნიდან მარჯვნივ: საბაზისო გეომეტრია, ტესელაციით მიღებული მოდელი ხილული საბაზისო ბადით და მის გარეშე და ტესელირებული ზედაპირის ამოზნექვით მიღებული საბოლოო მოდელი.
        დღევანდელ თამაშებში და განსაკუთრებით კი ფილმებში ხშირად ხდება ძალიან მაღალი დეტალიზაციის მოდელების გამოყენება, რაც მკვეთრად ზრდის გარემოს რეალიზმს. მაღალი დეტალიზაციის დისკრეტული გეომეტრიული მოდელები, დეტალიზაციის გაზრდას ახდენენ პრიმიტივების რაოდენობის ზრდით რაც საბოლოო ჯამში საჭირო მეხსიერებაზე წრფივად აისახება. პრიმიტივების რაოდენობის ზრდა ასევე იწვევს ამაჩქარებელი სტრუქტურის, ხის ზრდას, რაც საბოლოოდ სხივების მიდევნების პროცესზეც აისახება ლოგარითმულად. თუმცა არსებობს შემთხვევები, რომლის დროსაც დეტალიზაციის გაზრდა შესაძლოა მოხდეს სხვა გზით ისე, რომ თავიდან ავიცილოთ პრიმიტივების რაოდენობის ზრდა. ხშირად საჭიროა რაიმე საბაზისო ზედაპირზე მიკრო(ან მაკრო) დეტალიზაციის დატანა, რის დროსაც გეომეტრიული მოდელის საერთი ტოპოლოგია არ იცვლება. სწორედ ამ მიზანს ემსახურება არსებული საბაზო გეომეტრიის დეტალიზაციის გაზრდაზე ორიენტირებული ამოზნექვის მეთოდი (თარგმანზე თავს არ ვდებ :) ).
        იმისათვის, რომ მეთოდმა მოახდინოს ზედაპირის სხვადასხვა წერტილების ამოზნიქვა/ჩაზნიქვა უნდა ჰქონდეს ინფორმაცია ამოწევის სიძლიერის შესახებ. თუკი ჩვენ ერთ მნიშვნელობას მივუთითებს ამოზნექვის სიდიდედ, მაშინ ზედაპირე თანაბრად ამოიწევა/ჩაიწევა ყველგან, რაც როგორც წესი ჩვენთვის ნაკლებად საჭიროა. იმისთვის, რომ ზედაპირის სხვადასხვა წერტილისთვის მივუთითოთ ამოზნექვის სხვადასხვა პარამეტრი გამოიყენება ამოზნექილობის მეპი, რომელიც სურათის სახით ინახავს ამოზნექილობის ინფორმაციას. შესაბამისად ამოზნექილობის, ისევე როგორც სხვა ნებისმიერი მეპის გამოყენებისათვის აუცილებელია, რომ ზედაპირი იყოს პარამეტრიზებული.
სურათზე ნაჩვენებია დიფუზიური(მარცხენა) და ამოზნექილობის(მარჯვენა) მეპები.
        გარდა ამოზნექილობის ინფორმაციისა ასევე საჭიროა ამოზნექვის დიაპაზონის განსაზღვრა. ეს აუცილებელია ამაჩქარებელი სტრუქტურის ასაგებად. ასეთ შემთხვევაში ამაჩქარებელ სტრუქტურებში არსებული პრიმიტივები უკვე მოცემულია არა სამკუთხედით, არამედ სამკუთხედის ზედაპირის ამოზნექით მიღებული 3 განზომილებიანი ობიექტით. როგორც წესი ამოზნექილობის მეპის ჩაწერა ხდება ხოლმე ერთკანალიანი შავთეთრი სურათის სახით, ხოლო ზედაპირის ამოზნექვას აკეთებენ გეომეტრიული ნორმალის(სამკუთხედის ან ვერტექსებიდან ინტერპოლირებული) გასწვრივ.
          ასეთ შემთხვევაში, როდესაც უკვე ამაჩქარებელ სტრუქტურაში არსებული პრიმიტივი წარმოადგენს არა დიდი რაოდენობით დამოუკიდებელ სამკუთხედებს არამედ მეზობელ სამკუთხედებს, რომლებიც აღწერენ კოჰერენტულ ზედაპირს, შესაძლებელია სხივის თანაკვეთის პროცესში სხვადასხვა ტიპის ოპტიმიზაციების გაკეთება.
სურათზე ნაჩვენებია ვექტორული და სკალარული ამოზნექილობის მეპებით მიღებული შედეგები.
        როგორც ზემოთ ავღნიშნეთ ზედაპირის ამოზნექვა ხდება ნორმალის გასწვრივ, რაც თავისმხრივ ზღუდავს მომხმარებელს შესაძლებლობებში. არსებობს მოდიფიცირებული ვარიანტი ალგორითმისა, რომელიც ამოზნექვას ახდენს არა ფიქსირებული გეომეტრიული ნორმალის მიმართ არამედ ამოზნექვის მიმართულებასაც და სიდიდესაც კითხულობს ტექსტურიდან. ასეთი მეთოდს ეძახიან ვექტორულ ამოზნექვას. ამოზნექილობის მეპი ვექტორული ამოზნექვის შემთხვევაში იწერება 3 კანალიან rgb სურათად და რომელიც აღწერს სხვადასხვა სიდიდის ვექტორებს მოცემულს გლობალურ ამ მხებ სივრცეში.

Comments

Popular posts from this blog

რუსული რულეტკის მეთოდი

Russian Roulette Technique რუსული რულეტკის მეთოდი არის ფართოდ გავრცელებული ტექნიკა მონტე-კარლოს ინტეგრირების პროცესის შესაწყვეტად(სახელწოდება მოდის ცნობილი რუსული თამაშიდან). იმის მაგივრად, რომ პროცესი შევწყვითოთ ხისტად, მაგალითად შერჩევების რაოდენობის რაიმე მაქსიმალურ რაოდენობაზე, რუსული რულექტკის მეთოდი გვეხმარება ინტეგრირების პროცესის მიუკერძოვებლად შეწყვეტაში. მთავარი იდეა რუსული რულეტკის მეთოდისა არის ის, რომ რუსული რულეტკა წყვეტს მონტე კარლოს მეთოდს რაიმე არანულოვანი p ალბათობით(ალბათობა შეიზლება შეირჩეს ერთხელ ან მონტე კარლოს მეთოდის ყოველ ბიჯზე სათითაოდ რაიმე მნიშვნელოვნობით) ან აგრძელებს მას და შემდგომი პროცესიდან მიღებულ შედეგს ამრავლებს 1/p - ზე. რადგან რუსული რულეტკის მეთოდი პროცესის შეწყვეტას ახდენს რაიმე არანულოვანი p ალბათობით ყოველთვის რჩება იმის შანსი, რომ პროცესი გაგრძელდეს რაც იმას ნიშნავს, რომ მონტე კარლოს ინტეგრირების პროცესისათვის ნებისმიერი სიღრმე მიღწევადი ხდება. სწორედ ამიტომ ხისტი შეზღუდვით მიღებული მიკერძოება( სისტემატიური შეცდომა ) ქრება რუსული რ...

ფერების RGB მოდელი

RGB Color Model         ფერების RGB მოდელი წარმოადგენს ისეთ მოდელს რომელშიც სამი ძრირითადი ფერის წითელი, მწვანე და ლურჯის საშუალებით მიიღება ფერების ფართო სპექტრი. მისი დასახელებაც მოდის სწორედ ძირითადი ფერების ინგლისური სახელწოდების ინიციალებიდან(Red, Green, Blue).         ფერთა სპექტრის ამდაგვარი წარმოდგენა დაკავშირებულია იმასთან, რომ გამოსახულების გამოტანის მოწყობილობებში რომელიც გააჩნიათ კომპიუტერებს, ტელევიზორებს ფერის მიღება ფიზიკურად ხდება სწორედ ამ სამი ძირითადი ფერის შეზავებით. დღესდღეობით ყველაზე გავრცელებული არის 24 ბიტიანი RGB მოდელი, სადაც თითოეულ კომპონენტს ეთმობა ერთი ბაიტი და შესაბამისად შეუძლია მიიღოს ნებისმიერი მნიშვნელობა [0, 255] დიაპაზონში, რაც საბოლოოდ გვაძლევს 16777216 განსხვავებულ ფერს.

CPU GPU და ჰიბრიდული რენდერერები

წყარო         დღემდე აქტუალურია თემა CPU რენდერერი ჯობია თუ GPU . იმისათვის რომ ამ კითხვას მეტნაკლებად ამომწურავი პასუხი გავცეთ განვიხილოთ რენდერერის სტრუქტურა და მოცემულ პლათფორმებზე იპმლემენტაციასთან დაკავშირებული პრობლემები. რენდერერი შედგება რამოდენიმე დიდი კომპონენტისგან როგორიცაა ხილვადობის ამოცანა შეფერადება ინტეგრატორები ფუნქციონალი ხილვადობის ამოცანა         ხილვადობის ამოცანა ერთერთი ყველაზე რთულია გამოთვლითი რესურსის კუთხით. გარდა იმისა, რომ სხივის გეომეტრიასთან თანაკვეთის დათვლას საკმაოდ დიდი დრო ჭირდება, ასევე საჭიროა ამაჩქარებელ სტრუქტურების განახლება კადრიდან კადრზე დინამიური სცენებისათვის. კარგი ისაა, რომ რენდერერის ეს ნაწილი საკმაოდ ადვილად ენკაპსულირებადია და შესაბამისად გვხვდება ბიბლიოთეკები მაგალითად embree(intel), fireRays(AMD), OptiX prime(nvidia), ... რომლებიც ამ ამოცანას საკმაოდ ეფექტურად ხსნიან და რენდერერებშიც მეტნაკლებად ადვილად ინტეგრირდებიან.  სხივების მიდევნების პროცესში ძალიან მნიშვნელოვანია მსგ...