Skip to main content

გლობალური განათება

Global illumination

        კომპიუტერულ გრაფიკაში გამოყოფენ ორი ძირითადი ტიპის განთებას:
  1. პირდაპირი განათება (Direct illumination) - რომელიც გამოწვეულია სინათლის წყაროდან წამოსული სხივების პირდაპირი დაცემით.
  2. ირიბი განათება (Indirect illumination) - ყველა დანარჩენი განათება, რომელიც გამოწვეულია ერთჯერადად ან მრავალჯერადად არეკლილი სხივებით. 
        მათ გაერთიანეგას უწოდებენ გლობალურ განათებას (Global illumination). ეს უკანასკნელი არის განათების აღწერის მაქსიმალურად რეალისტური მოდელი და გამოსახულების გარჩევა რომელიც მიიღება გლობალური განათების მოდელირებით რეალური გამოსახულებისაგან ფაქტიურად შეუძლებელი ხდება.
სურათზე ნაჩვენებია პირდაპირი(ზედა), ირიბი(შუა) და გლობალური(ქვედა) განათების მაგალითები. დარენდერებულია Colibri-ში.
        გამოსახულების დათვლა პირდაპირი განათებით მარტივად ხდება უბრალო სხივების მიდევნების ალგორითმით, რომელიც სცენის ყოველი ხილული წერტილისათვის ითვლის პირდაპირ განათებას ჩრდილის სხივების საშუალებით. რაც შეეხება ირიბ განათებას მისი გამოთვლა უბრალო სხივების მიდევნებით ვერ ხერხდება და მთავარ პრობლემას წარმოადგენს. სწორედ ამის გამო ირიბი განათების დათვლის ნაცვლად შემოაქვთ გაბნეული(Ambient) განათება, რომელიც აღწერს იმ მინიმალურ გაბნეულ, ირიბ განათებას, რომელსაც მიმართულება არ გააჩნია და ყველა მხრიდან მოდის. გაბნეული განათების შემოღებით მოხდა რენდერის განტოლების ყველაზე რთულად დასათვლელი ნაწილის მიახლოებითად ამოხსნა ძალიან სწრაფად, რამაც შესაძლებელი გახადა გამოსახულების რეალურ დროში გამოთვლა. თუმცა არის ბევრი შემთხვევა სადაც განსხვავება რეალურ, ირიბ განათებასა და გაბნეულ(ambient) განათებით მიახლოებულს შორის ძალიან თვალშისაცემია, სწორედ ამისი შედეგია ისეთი მეთოდების გამოჩენა როგორიცაა მაგალითად Ambient Occlusion, რომელიც ასევე ცდილობს ეს თვალშისაცემი განსხვავება დამალოს. დღევანდელ კომპიუტერულ თამაშებში, რომელთა დიდი უმრავლესობა დაფუძნებულია რასტერიზაციის ალგორითმებზე(OpenGL, DirectX) სულ რამოდენიმე წელია რაც გამოჩნდა ირიბი უკეთესი მიახლოება.
კონუსების მიდევნების მეთოდი
        სურათზე ნაჩვენებია კონუსების მიდევნების სადემონსტრაციო ვერსია, რომლის ინტეგრირებაც მოახდინეს შემდგომ Unreal Engine 4-ში. ეს მეთოდი ითვლის მხოლოდ ერთჯერად ირიბ განათებას. მისი გამოყენება მოხდა ძალიან შეზღუდული ფორმით მხოლოდ დახურულ, პატარა სცენებში. მეთოდი ითხოვს დიდ მეხსიერებას, რადგან ინახავს სპარს OcTree-ს, თავისი ტექსტურებით, რომლის აგებასაც ასევე დიდი დრო ჭირდება.
        აქვე უნდა აღინიშნოს რომ ზემოთ აღნიშნული პროექციაზე დაფუძნებული ტექნოლოგიები, მათი მუშაობის სპეციფიკიდან გამომდინარე ვერ ახდენენ ასეთი ტიპის განათების გამოთვლას. დღევანდელი პოპულარული თამაშის ძრავები არის ჰიბრიდული ტექნოლოგიის და იყენებს როგორც პროექციებს ასევე მიდევნებებს.
        არსებობს მიდევნებაზე დაფუძნებული სხვადასხვა მეთოდები, რომლებიც მაქსიმალური სიზუსტით ახდენენ გლობალური განათების გამოთვლას და რომელი მეთოდებიც ჩემი პირადი ინტერესის საგანს წარმოადგენს.

Comments

Popular posts from this blog

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

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

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

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

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

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