Skip to main content

მოცულობითი რენდერი

Volumetric Rendering
კადრი WATCH DOGS-ის ტრეილერიდან. დარენდერებულია Arnold-ში.
        მოთხოვნები, რომელსაც დღევანდელი საწარმოო რენდერერი უნდა აკმატოფილებდეს დღითიდღე იზრდება. ის რაც რამოდენი წლის წინ ფანტასტიკის სფერო იყო დღეს აუცილებლად გვეჩვენება, ხდება ბევრი ახალი მიმართულების კვლევა, ცდების ჩატარება და შედეგად ვიღებთ საინტერესო ახალ შესაძლებლობებს. შესაბამისად რენდერერებიც მით უფრო მეტად დახვეწილ ფუნქციონალს იძენენ და უფრო და უფრო რეალისტურ გამოსახულებებს გვაძლევენ. აქამდე ბლოგზე განხილული თემებში შედიოდა მხოლოდ ზედაპირების რენდერი. რაც გულისხმობს დაშვებას, რომ სინათლის გაბნევა ხდება მხოლოდ ზედაპირებზე და მათ შორის ენერგია გადადის დანაკარგების გარეშე.
        ზედაპირს ჩვენ ვეძახით 2 სხვადასხვა ოპტიკური გარემოს საზღვარს რომლებსაც რენდერერებში სხვადასხვანაირად აღვწერთ. თუმცა რეალურ გარემოში სინათლის სხივის გაბნევა შეიძლება მოხდეს არა მხოლოდ ოპტიკური გარემოების გასაყარზე არამედ ერთი ოპტიკური გარემოს შიგნითაც. სივრცული გამბნევი გარემოს რეალურ ნათელ მაგალითს წარმოადგენს მაგალითად: ნისლი, კვამლი, ორთქლი, მღვრიე ან/და ფერადი სითხე და ნებისმიერი კონდუქტორი.
        სივრცეში გამავალი სხივს შეიძლება ახასიათებდეს რამოდენიმე ფენომენი:
  1. შთანთქვა(Absorption) - როდესაც სხივის გარემოსთან ინტერაქციისას კარგავს ენერგიას და გადადის სითბოში. სინათლის შთანთქვა არ ხდება სინათლის სპექტრის ყველა ნაწილში თანაბრად, შესაბამისად სივრცულ გარემოში ნაწილობრივ შთაინთქმული სხივმა შესაძლოა იცვალოს ფერი.
  2. გამოსხივება(Emission) - როდესაც სივრცული ნაწილაკი თავად ასხივებს სინათლეს.
  3. გაბნევა(Scattering) - როდესაც სხივი ხვდება გარემოში არსებულ ნაწილაკებს და იბნევა სხვადასხვა მიმართულებით. გაბნევას ყოფენ 2 ნაწილად: გარეთ გაბნევა და შიგნით გაბნევა. გარეთ გაბნევას უწოდებენ ფენომენს, როდესაც დამკვირვებლისკენ მიმავალი სხივი იბნევა სივრცულ ნაწილაკებზე და შესაბამისად დამკვირვებელთან მისულ სხივს აქვს ენერგიის დანაკლისი. თუმცა ისევე როგორც ხდება სხივიდან გარეთ გაბნევა, ასევე შესაძლოა სხვა მიმართულებით მიმავალი სხივები გაიბნენ ამავე ნაწილაკზე და წავიდნენ დამკვირვებლის მამართულებით. სივრცულ ნაწილაკზე გაბნეულ სხივებს გააჩნიათ რაიმე განაწილება. ზუსტად ისევე, როგორც ზედაპირების შემთხვევაში აღვწერდით მას BSDF-ით აქაც ხდება გაბნევის განაწილების აღწერა ფუნქციით რომელსაც უწოდებენ ფაზურ ფუნქციას(Phase Function). თუკი სივრცულ ნაწილაკებზე სხივის დაცემისას გაბნევა ხდება ყველა მიმართულებით თანაბრად მაშინ ამბობენ, რომ ფაზური ფუნქცია არის იზოტროპულიხოლო თუ არათანაბრად მაშინ ანიზოტროპული.
სურათზე ნაჩვენებია სინაის მილევის და გაბნევის შემთხვევები სქემატურად. სურათის სწარო.

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

კადრი ფილმიდან "Rise of the Planet of the Apes". დარენდერებულია Manuka-ში.

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