Skip to main content

ფოტონების გაბნევა

Photon Mapping

        ფოტონების გაბნევის მეთოდი არის გლობალური განათების გამოთვლის მეთოდი რომელიც ახდენს ფოტონების გაბნევის სიმულაციას განათების წყაროებიდან სცენაში. მეთოდი გამოსახულების გამოთვლას ახდენს ორი გავლით. პირველ ჯერზე ხდება ფოტონების გაბნევის სიმულაცია სცენაში, რის შემდეგაც გაბნეულ ფოტონებს ვინახავთ აქსელერაციის სტრუქტურაში მოსახერხებელი ფორმით(რომლებიც ოპტიმიზირებულები არიან k-უახლოესი მეზობელის ამოცანის ამოხსნაზე), მეორე ჯერზე ხდება სხივების მიდევნება გაბნეულ ფოტონებზე და ვიღებთ საბოლოო გამოსახულებას. განსხვავებით გზების მიდევნების მეთოდისგან იგი არის ხედვაზე დამოუკიდებელი(View-Independent), რადგან განათების წყაროდან ფოტონების გაბნევა ხდება კამერაზე დამოუკიდებლად, რაც იწვევს რესურსების არამიზნობრივ ხარჯვას იმ პოტონებზე რომლებიც რეალურად გამოუყენებელი რჩება. მარტივი ფოტონების გაბნევის მეთოდი გულისხმობს წინასწარ განსაზღვრული რაოდენობის ფოტონების გაბნევას, რის გამოც ის არის მიკერძოებული მეთოდი. ეს იმას ნიშნავს, რომ გამოთვლის დროის გაზრდა ვერ მიგვიყვანს ბოლომდე კორექტულ შედეგამდე, თუმცა მეორესმხრივ ფოტონების რიცხვის გაზრდით შეგვიძლია მივიღოთ კორექტული შედეგი. თუმცა ეს მეთოდი ჯობნის უბრალო გზების მიდევნების მეთოდს როდესაც სინათლის წყარო პატარაა, ასევე საკმაოდ კარგად ხსნის მწველი სხივების, სპექტრული რენდერის და ზედაპირქვეშა გაბნევის პრობლემებს. არსებობს ფოტონების გაბნევის მეთოდის მოდიფიცირებული ვარიანტები რომლებიც მეტნაკლებად ხსნის ალგორითმთან დაკავშირებულ სირთულეებს და რომელთაც შემდგომში განვიხილავთ.

სურათზე აჩვენებია ფოტონების გაბნევის მეთოდი. სურათზე კარგად ჩანს მწველი სხივები და სინათლის სპექტრი.

Comments

  1. შთამბეჭდავია! :)
    შეგიძლია გვერდი-გვერდ დადო ერთი და იგივე სცენა სხვადასხვანაირად გამოსახული? ერთი ფოტონების გაბნევით, მეორე გზების მიდევნის მეთოდით + რენდერის დრო.

    ამას სამაგისტროსთვის იკვლევ?

    ReplyDelete
  2. ჩემ რენდერერში არ მაქვს ფოტონების გაბნევის მეთოდის მხარდაჭერა, ძირითადად გზების მიდევნების მიმართულებით ვმუშაობ. სამაგისტრო ნაშრომიც ამაზე იქნება + დემო.

    ReplyDelete

Post a Comment

Popular posts from this blog

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

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

სინათლის ხილული სპექტრი და სხივის თვისებები

Visible Spectrum სურათზე ნაჩვენებია პრიზმაში გამავალი თეთრი სხივის სპექტრულად გაშლის პროცესი.         სინათლე წარმოადგენს ელექტრომაგნიტურ ტალღას, რომელსაც როგორც ყველა ელექტრომაგნიტურ ტალღას გააჩნია რამოდენიმე მნიშვნელოვანი მახასიათებელი. ერთერთი მნიშვნელოვანი მახასიათებელი არის ტალღის სიგრძე, რომელიც განსაზღვრავს სხივის სპექტრულ ფერს. ელექტრომაგნიტური ტალღები ბუნებაში და თანამედროვე სამყაროში მრავლად გვხვდები. სხვადასხვა ტალთის სიგრძის(სიხშირის) ტალღებს იყენებენ როგორც საყოფაცხოვრებო(რადიო, მობილური ტელეფონი) დანიშნულების, ასევე სამედიცინო(რენდგენის სხივები) და სამხედრო(რადარები) მოწყობილობებში. ადამიანის თვალისთვის ხილული სინათლის ელექტრომაგნიტური ტალღების ტალღის სიგრძე იწყება დაახლოებით 400 ნანომეტრიდან და მთავრდება 700 ნანომეტრზე. ამ დიაპაზონს ქვემოთ ექცევა ულტრაიისფერი ტალღები და დიაპაზონს ზემოთ ექცევა ინფრაწითელი, რომელსაც ადამიანის თვალი ვერ აღიქვამს(იხილეთ ქვემოთ მოცემული სურათი). სინათლის თეთრი სხივი შედგება სხვადასხვა სიხშირის ტალღების ერთობლიობისგან.        

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

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