მას შემდეგ, რაც Nvidia-მა 2018 წელს გამოაცხადა თავისი 20 სერიის RTX გრაფიკული ბარათები, მისი მკვლელი ფუნქცია, „ray tracing“ პოპულარული ტერმინია ვიდეო თამაშების წრეებში. მაგრამ ძნელია იმის გაგება, თუ რა არის სხივების მიკვლევა, როგორ მუშაობს და რატომ გამოიყურება უკეთესი, ვიდრე წინა ტექნიკა.
რა არის სხივების კვალი და როგორ მუშაობს იგი?
რეალურ სამყაროში, როდესაც რაღაცას ხედავთ, რასაც ხედავთ არის ფოტონი სინათლის წყაროდან. თქვენკენ მიმავალ გზაზე, ეს ფოტონი შესაძლოა აირეკლებულიყო ერთი ან რამდენიმე ზედაპირით. თითოეული ანარეკლი ცვლის სინათლის მახასიათებლებს, რომელიც აღწევს თქვენს თვალებში.
მზე ასხივებს სინათლის ფართო სპექტრს, თითოეული ზედაპირი შთანთქავს გარკვეულ შუქს და ასახავს სხვებს. რასაც ჩვენ ვხედავთ, როგორც მწვანე ზედაპირს, როგორიცაა ფოთოლი, ის ასე გამოიყურება, რადგან ის ძირითადად მწვანე შუქს ასახავს. თუ ფოთლის არეკლილი შუქი მოხვდება სხვა ზედაპირზე, მაგალითად, თეთრ კედელზე, მაშინ ეს ზედაპირი ოდნავ განსხვავებულად გამოიყურება, ვიდრე მასზე სუფთა თეთრი შუქი რომ ანათებდა. თითოეული ანარეკლი გავლენას ახდენს ყველა მომავალ ზედაპირზე, რომლებთანაც შუქი ურთიერთქმედებს, ცვლის მის ინტენსივობას და ხილულ ფერს.
Ray Tracing არის გრაფიკული ტექნიკა, რომელიც მიჰყვება იმავე პრინციპებს. გამოითვლება სინათლის სხივები, გამოითვლება არეკლილი და გარდატეხილი სინათლის თვისებები, როგორიცაა ფერი, და სხივი აგრძელებს მოგზაურობას.
რეალურ სამყაროში სინათლის ყველა წყარო, როგორიცაა ნათურა ან მზე, ასხივებს ფოტონებს ყველა მიმართულებით, რომელთა დიდი უმრავლესობა არასოდეს აღწევს თქვენს თვალში. ამის სიმულაცია იქნება საოცრად ინტენსიური პროცესი, რომელიც ძირითადად ფუჭად შედეგს იძლევა. დატვირთვის შესამცირებლად, სხივების მიკვლევა მუშაობს საპირისპიროდ, ასხივებს სხივებს კამერიდან. თითოეულ სხივს უფლება აქვს გაიაროს გარკვეული მანძილი ასახვის გარეშე ან ასახოს გარკვეული რაოდენობა გამოთვლების შესრულებამდე და პიქსელის მნიშვნელობის დაყენებამდე.
მაგალითად, სხივი გადმოცემულია მაყურებლის პერსპექტივიდან, როდესაც ის ხვდება თეთრ კედელს, ალგორითმი რეკურსიულად წარმოქმნის არეკლილი სხივი, რომელიც შემდეგ მოძრაობს ლურჯი შუშის ზოლში, ბოლოს არეკლილი სხივი ხვდება თეთრ სინათლის წყაროს და შეიწოვება. ცისფერი მინა შთანთქავს ყველა შუქს, გარდა ლურჯისა, რომელიც ასხივებს ლურჯ შუქს კედელზე, რის შედეგადაც პიქსელი ლურჯდება.
რატომ გამოიყურება Ray Tracing ასე უკეთ?
სცენების რეალურ დროში გადაღების სტანდარტული მეთოდი მოიცავს წინასწარ გამოთვლილ შუქურ რუქებს და მთელი სცენის განათებას. ზოგიერთი თამაში იყენებს შეზღუდულ მოცულობითი განათებას მოძრავი სინათლის წყაროების და დინამიური ჩრდილების დასაშვებად, ეს ტექნიკა იშვიათად გამოიყენება, თუმცა, რადგან ის საკმაოდ პროცესორით ინტენსიურია.
Ray Tracing-ს შეუძლია მიაღწიოს ფოტორეალისტურ შედეგს, თუ რაიმე დამატებითი სამუშაო შესრულდება თამაშის დიზაინის ეტაპზე. თუ ყველა ზედაპირი შეიცავს ისეთ დეტალებს, როგორიცაა არეკვლა, გამჭვირვალობა და როგორ ირღვევა შუქი მათში, საერთო შედეგი შეიძლება უფრო ბუნებრივი გამოჩნდეს. მიუხედავად იმისა, რომ ეს მიდგომა აშკარად მოიცავს უფრო მეტ სამუშაოს თამაშის დიზაინის ეტაპზე, ის საშუალებას იძლევა გამოჩნდეს შედეგი ფოტორეალისტური შუქით, რომელიც რეაგირებს ისე, როგორც უნდა, როდესაც ის აირეკლავს ბეტონს, ლითონს, ხის და მინას და ა.შ.
Ray Tracing საშუალებას იძლევა ზუსტი ასახვა და ჩრდილები ჩამოყალიბდეს, როგორც რენდერის პროცესის ნაწილი. რენდერის ტრადიციულ მეთოდებში, ორივე ეს ეფექტი სრულიად არჩევითია და შეიძლება გამოიწვიოს შესრულების მნიშვნელოვანი დარტყმები.
თავად Ray Tracing-ს გააჩნია შესრულების მასიური დარტყმა. ითვლებოდა, რომ სანამ Nvidia-ს RTX გრაფიკული ბარათები გამოცხადდებოდა ტექნიკის აჩქარებით სხივების მიკვლევისთვის რომ საჭირო გადამამუშავებელი სიმძლავრე პროგრამულ უზრუნველყოფაში რეალურ დროში სხივების მიკვლევისთვის ათწლეულზე მეტი იყო მოშორებით. ტექნიკის აჩქარების შემთხვევაშიც კი, სხივების მიკვლევა მაინც იწვევს შესრულების მნიშვნელოვან დაქვეითებას, რადგან ის მაინც ყველაზე ნელი ნაწილია ჩარჩოს გადაღების პროცესში.