Skip to main content

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

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

კომპიუტერი მრავალი ვიდეო ბარათით
        ჰიბრიდული რენდერი ნაკლებად გავრცელებულია, რადგან დამატებით პრობლემებთანაა დაკავშირებული. რთულია CPU-ს და GPU-ს სინქრონიზაცია და ამავდროულად ორივე გამოთვლითი მოწყობილობის რესურსის ეფექტური გამოყენება. მიუხედავად ამისა მაინც გვხვდება ჰიბრიდული რენდერერები Arion, Indigo, luxrender, ... მაგალითად ერთერთი ვარიანტი სამუშაოს განაწილებისა არის, რომ CPU-მ მოახდინოს ამაჩქარებელი სტრუქტურების განახლება და მიწოდება GPU-ზე ასინქრონულად და GPU-მ არენდეროს. ეს მიდგომა კარგად მუშაობს რეალთამ რენდერის დროს დინამიურ სცენებში. ასევე შესაძლებელია შეფერადების ნაწილის პარალელურად გამოთვლა(აქ იგულისხმება პირდაპირი განათების დათვლა) GPU-ზე მაშინ როცა CPU ახდენს სინათლის გზების აგებას.
დარენდერებულია Arion-ში.

Comments

Popular posts from this blog

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

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

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

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