Skip to main content

ფიზიკაზე დაფუძნებული რენდერი

Physically Based Rendering
სურათი აღებულია Corona-ს გალერიიდან.
        ფიზიკაზე დაფუძნებული რენდერი(შემოკლებით PBR) დღესდღეობით კომპიუტერული გრაფიკის სფეროში ერთ-ერთ ყველაზე აქტუალურ და მნიშვნელოვან თემას წარმოადგენს. ის უფრო ხელმისაწვდომი გახდა მას მერე რაც პერსონალური კომპიუტერების წარმადობა მკვეთრად გაიზარდა. სწორედ ამიტომ საჭიროდ ჩავთვალე ამ თემაზე ვრცელი პოსტის გაკეთება, სადაც მეტნაკლებად დაწვრილებით განვიხილავთ PBR-ის მთავარ პრინციპებს და ბოლო მიღწევებს.
        ხშირად ხდება ხოლმე ტერმინების არასწორი გამოყენება და ურევენ ერთმანეთში ფიზიკაზე დაფუძნებულ რენდერს და ფიზიკაზე დაფუძლებულ შეფერადებას(Shading). რეალურად რენდერი გულისხმობს  გარემოს ვიზუალიზაციის მთელს პროცესს, რომლის ერთ-ერთ კომპონენტსაც წარმოადგენს შეფერადებაც, შესაბამისად PBR-ისათვის მხოლოდ შეფერადების პროცესის ფიზიკურ მოდელზე დაფუძნება არ კმარა, საჭიროა რენდერერის სხვა დანარჩენი ნაწილებიც მაქსიმალურად ახლოს იყვნენ ფიზიკურ მოდელთან. დღეს უკვე წამყვანი თამაშის ძრავები ვიზუალიზაციაში უკვე ახდენენ ფრაგმენტების შეფერადებას ფიზიკურ მოდელზე დაფუძნებით რეალურ დროში, რაც მკვეთრად ზრდის გამოსახულებაში არსებულ რეალიზმს. 
        იმისათვის, რომ რენდერი იყოს ფიზიკაზე დაფუძნებული უნდა გააჩნდეს ფიზიკური მოდელი. რენდერის პროცესის ფიზიკურ მოდელს წარმოადგენს რენდერის განტოლება:
        რენდერის განტოლება აღწერს დამკვირვებლისკენ მომავალ განათებას უსასრულოდ მაღალი ხარისხის ინტეგრალური განტოლების სახით. ინტეგრალის მაღალი სიზუსტით გამოთვლა საკმაოდ დიდ გამოთვლით რესურსს მოითხოვს, სწორედ ამიტომ რელაურ დროში მომუშავე აპლიკაციები მის ამოხსნას თავს არიდებენ და სხვადასხვა ხერხებით(რომლების არაა ფიზიკურად სწორი) ცდილობენ მის მიახლოვებას. რეალურად ირიბი განათების გამოთვლა არის გრაფიკის ყველაზე რთული ამოცანა სწორედ ამიტომ ხდება რენდერის განტოლების გახლეჩვა 2 ნაწილად პირფაპირი და ირიბი განათების ცალცალკე გამოსათვლელად(ეს მიდგომა offline მეთოდებშიც აქტიურად გამოიყენება). განვიხილოთ პირდაპირი განათების გამოთვლის პროცესი.
პირდაპირი განათების გამოთვლა ნიშნავს სინათლის წყაროებიდან პირდაპირ მოსული განათების დათვლას რომელსაც აღწერს შემდეგი განტოლება:
        როგორც გატოლებიდან ჩანს აქაც გვხვდება ინტეგრალი, თუმცა წინამორბედისგან განსხვავებით ის სასრული ხარისხისაა და მისი გამოთვლა ბევრად მარტივია. ინტეგრალში გვხვდება 4 თანამამრავლი:
  1. fr - იგივე BSDF, გაბნევის განაწილების ფუნქცია.
  2. L - სინათლის წყაროს ინტენსივობა.
  3. V - ხილვადობა.
  4. G - გეომეტრიული ფაქტორი.
        ამ 4 კომპონენტიდან ხილვადობის დათვლა მოითხოვს ყველაზე მეტ გამოთვლით რესურსს. სწორედ ამიტომ რეალურ დროში მომუშავე აპლიკაციებში მისი გამოთვლა ხდება ალტერნატიული, დაბალი სიზუსტის გამოთვლის მეთოდებით(Shadow mapping) ან საერთოდ არ ხდება. გზების მიდევნების მეთოდი მას ითვლის სხივისა და სცენის თანაკვეთის ამოხსნის გზით, რაც მაქსიმალურ სიზუსტეს იძლევა და შესაბამისად დიდ დროს მოითხოვს. ერთ-ერთ მნიშვნელოვან ნაწილს ამ ოთხეულში წარმოადგენს BSDF-ი (fr), რადგან სწორედ ის არის პასუხისმგებელი შეფერადებაზე.


ფიზიკაზე დაფუძნებული შეფერადება
Physically Based Shading

        ფიზიკაზე დაფუძნებული შეფერადება გულისხმობს BSDF ფუნქციის ისეთ იმპლემენტაციას, რომელსაც საფუძვლად უდევს სინათლის სხივის გაბნევის ფიზიკური პროცესის მათემატიკური მოდელი. ფონგის, ბლინის მოდელები არაა ფიზიკაზე დაფუძნებულები. ასეთ მოდელებს ეძახიან ემპირიულებს, ისინი არ მოითხოვენ დიდ გამოთვლით რესურსს, ამიტომაც წლების მანძილზე ფართოდ გამოიყენებოდა კომპიუტერულ თამაშებში და დღესაც გამოიყენება.
        გარდა ზემოთ მოყვანილი განმარტებისა ფიზიკაზე დაფუძნებული გაბნევის განაწილების ფუნქციები ასევე აკმაყოფილებენ შემდეგ თვისებებს:
  1. რეციპტრულობა - თუკი განათებისა და დამკვირვებლის მიმართულებებს შევუცვლით ადგილებს ამან შედეგზე გავლენა არ უნდა იქონიოს.
  2. ენერგიის მუდმივობა - არეკლილი განათება(ენერგია) არ უნდა იყოს მეტი დაცემულ განათებაზე.
მიკროწახნაგოვანი BSDF-ები
        უხეშ, მიკროწახნაგოვან ზედაპირზე სინათლის სპეკულარული არეკვლის ფენომენის ერთერთ პირველ მათემატიკურ მოდელს წარმოადგენს Cook-Torrance-ს მოდელი, ის მიიჩნევს, რომ ზედაპირი შედგება უამრავი , მცირე ზომის მიკროწახნაგისგან, რომელთაც აქვთ სხვადასხვა მიმართულება და რომლების სხივებს ირეკლავენ სარკულად. თუ ჩვენ ჩავთვლით რომ რენდერი მიმდინარეობს არა მიკრო მაშტაბში, მაშინ კარგი იქნება თუ სხივების არეკვლის პროცესს შევაფასებთ უფრო ზუსტად, მათემატიკურად და გამოვიყენებთ მას როგორც BSDF-ს. Torrance-Sparrow-ს(1967) BSDF-ს აქვს შემდეგი სახე:
სადაც N, V  და L არის მაკრო ნორმალი, დამკვირვებლის და განათების მიმართულება, ხოლო 
  1. D - აღწერს მიკრო წახნაგების მიმართულებებს(NDF).
  2. F - ფრესნელის არეკვლადობა.
  3. G - გეომეტრიული ფაქტორიაღწერს სინათლის სხივების მიკროზედაპირებზე თანაკვეთის, ბლოკირების შედეგად ინტენსივობის შესუსტებას.
სურათზე ნაჩვენებია ერთეულოვანი ფართობის მქონე მიკროწახნაგოვან ზედაპირზე სხივების არეკვლა. ცისფრად ნაჩვენებია მიკროწახნაგების ნორმალები სხივების დაცემის წერტილებში. წითლად ნჩვენებია დაბლოკილი სხივი.
        განვიხილოთ თითოეული მათგანი დეტალურად:
ნორმალების განაწილების ფუნქცია
        ნორმალების განაწილების ფუნქცია(NDF), როგორც სახელწოდებიდან ჩანს აღწერს მიკროწახნაგენის ნორმალების განაწილებას. ნორმალების განაწილება მკვეთრად მოქმედებს ზედაპირის საბოლოო სახეზე. ზედაპირის განაწილების ფუნქცია შეიძლება მოცემული იყოს სხვადასხვა სახით. არსებობს განაწილების რამოდენიმე ცნობილი ფუნქცია, რომლების ხშირად გამოყენება პრაქტიკაში, მაგალითად Phong, Beckmann, GGX. თუმცა ექსპერიმენტებში, სადაც ხდებოდა შედარება რეალურ გაზომილ BSRF-ებთან GGX-მა საგრძნობლად უკეთესი შედეგი აჩვენა. GGX განაწილებას აქვს შემდეგი სახე:
სადაც χ+(a) უდრის 1-ს თუ a>0, ხოლო 0-ს წინააღმდეგ შემთხვევაში. m არის მიკრონორმალი, n მაკრონორმალი, θm არის კუთხე მათ შორის, ხოლო αარის ზედაპირის სიუხეშის პარამეტრი.
გრაფიკი უჩვენებს GGX განაწილებას, როგორც გრაფიკიდან ჩანს როდესაც α=1.0 ნორმალების განაწილება ხდება თანაბარი.


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

დაჩრდილვის და მასკირების ფუნქციები


        განათების წყაროდან მომავალი სინათლე შესაძლოა მიკროწახნაგოვანი ზედაპირის ყველა ნაწილზე არ მოხვდეს, ამ პროცესს ეწოდება დაჩრდილვა(იხილეთ ზედა სურათი). ასევე მიკროწახნაგოვანი ზედაპირის ნაწილი შესაძლოა არ ჩანდეს დამკვირვებლიდან და შესაბამისად დამკვირვებლისკენ არეკლილი სხივები შესაძლოა დაიბლოკოს, ამ ფენომენს უწოდებენ მასკირებას.(იხილეთ ქვემოთ მოცემული სურათი)
        რეალურად ორივე, მასკირებაც და დაჩრდილვაც წარმოადგენს ხილვადობის ფენომენს და ერთმანეთისაგან პრინციპულად არ განსხვავდება. არსებობს დაჩრდილვის/მასკირების გამოთვლის სხვადასხვა მეთოდები, რომელთაც თავისი დადებითი და უარყოფითი თვისებები ახასიათებთ. ერთერთ ყველაზე პოპულარულს წარმოადგენს Smith-ის(1967) დაჩრდილვის/მასკირების ფუნქცია. მისი განმარტებით გეომეტრიული ფაქტორი შესაძლოა აღიწეროს, როგორ მასკირების და დაჩრდილვის ნამრავლი, ხოლო მასკირებაც და დაჩრდილვაც შესაძლოა აღიწეროს ერთი ხილვადობის ფუნქციით G1.
G2oim) = G1om) * G1im)
        სადაც ωo არის სხივის დაცემის მიმართულება, ωi სხივის არეკვლის მიმართულება ხოლო ωm ნორმალი. ωo, ωi და ωm მიმართულებებს ხშირად L, E და H ითაც აღნიშნავენ.

თავად GGX განაწილებისათვის Smith-ის G1 ფუნქციას Schlick-ის მიახლოვებით აქვს შემდეგი სახე:
სადაც θv არის კუთხე v და m ვექტორებს შორის, ხოლო αg არის ზედაპირის სიუხეშის პარამეტრი. ქველოთ მოცემულ გრაფიკზე ნაჩვენებია G1 ფუნქცია როდესაც αg იცვლება 0-დან 1-მდე. 


გრაფიკი უჩვენებს დაჩრდილვის(y ღერძი) დამოკიდებულებას სხივის დაცემის კუთხესთან(x ღერძი) სხვადასხვა ზედაპირის სიუხეშის(α) დროს, მიკროწახნაგების GGX განაწილების პირობებში.

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

Comments

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 განსხვავებულ ფერს.