Skip to main content

Posts

Showing posts with the label კომპიუტერული გრაფიკა

ფოტონების პროგრესული გაბნევის მეთოდი

Progressive Photon Mapping სურათზე ნაჩვენებია განსხვავებები გზების მიდევნებას , გზების ორმხრივ მიდევნებას , მეტროპოლისის სინათლის ტრანსპორტირებას , ფოტონების გაბნევასა და ფოტონების პროგრესულ გაბნევას შორის. წყარო         ფოტონების გაბნევის მეთოდი  (PPM) ძალიან ეფექტურია სინათლის გადამტანი გარკვეული ტიპის კაუსტიკური გზებისათვის, რომლებიც გზების მიდევნების ცალმხრივი და ორმხრივი ვარიანტისათვის პრობლემას წარმოადგენს, თუმცა მის უმთავრეს უაროფით მხარეს წარმოადგენს მიკერძოება . პირველ მნიშვნელოვანი მიზეზს მიკერძოებისა არის შეფერადების წერტილში ფოტონების მოძიების ფიქსირებული   რადიუსი, ხოლო მეორე წყარო მიკერძოებისა არის ფოტონების ფიქსირებული რაოდენობა. ორივე მათგანი ძალიან მკვეთრს ვიზუალურ ხარვეზებთანაა დაკავშრებული, შესაბამისად ხარვეზების მოშორების ერთადერთ გზას წარმოადგენს ფოტონების რაოდენობის ზრდა და მოძიების რადიუსის შემცირება, რაც საბოლოოდ იმდენად ზრდის მოთხოვნილი მეხსიერების მოცულობას და გამოთვლით რესურსს რომ სრულიად უვარგისი ხდება რეალური ამოცანები...

BVH-ის მშენებლები

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

სხივზე მარშირების მეთოდი

Ray Marching ნისლიანი ტყე დარენდერებული მთლიანად სხივზე მარშირების მეთოდით. სურათი აღებულია Iñigo Quílez-ის საიტიდან .         სხივზე მარშირება არის ვიზუალიზაციის ერთ-ერთი მეთოდი, რომლის საშუალებითაც ხდება ვიზუალიზაცია, სადაც ხილვადობის ამოცანა წყდება სხივზე მარშირების გზით. მარშირება იწყება სხივის სათავიდან და ხდება სხივის გასწვრივ მანამ, სანამ ზედაპირს არ მივუახლოვდებით წინასწარ განსაზღვრულ მანძილზე ახლოს. თუკი ბიჯების წინასწარ განსაზღვრული რაოდენობის გავლის შედეგაც ზედაპირთან სათანადოდ მიახლოვება არ მოხდა ეს ნიშნავს, რომ თანაკვეთა ვერ ვიპოვეთ. იმისათვის რომ მოვახდინოთ მარშირება მაგალითად 3 განზომილებიან სცენაში საჭიროა სცენის თინოეული წრტილისათვის ვიცოდეთ უახლოეს ზედაპირამდე მანძილი. ზოგ შემთხვევაში, ძირითადად მარტივ სცენებში ამისი დადგენა ხდება მარშირების პროცესშივე თუმცა რთული სცენების შემთხვევაში ხშირად გამოიყენება გადათვლილი ინფორმაცია, რომელიც შენახულია მოსახერხებელი ფორმით ამაჩქარებელ სტრუქტურაში. ინფორმაციას, რომელიც სცენის თითოეული წე...

სპექტრული რენდერი

Spectral Rendering სპექტრული რენდერი Arion-ში.         ფიზიკაზე დაფუძნებული მიუკერძოებელი რენდერი გულისხმობს რენდერის განტოლების სრულად ამოხსნას. თავისმხრიც რენდერის განტოლება აღწერს დამკვირვებელთან მოსულ განათებას  λ ტალღის სიგრძეზე რაც იმას ნიშნავს, რომ თუ ჩვენ გვსურს რენდერი მაგალითად სინათლის ხილულ სპექტრში  სრულად, აუცილებელია ინტეგრირება სპექტრზე  λ-ს მიმართ.         იმის გამო, რომ დამატებითი ინტეგრირების პროცესი ზრდის რენდერის დროს ხშირად სპექტრის ფართო კვლევას თავს არიდებენ რენდერერები და გამოთვლას ახდენენ სასრული რაოდენობის, ფიქსირებულ ტალღის სიგრძეებზე. ყველაზე ხშირად საწარმოო რენდერერებში ფერის წარმოგდენა ხდება  ფერების RGB მოდელით , რომელიც შესაამისად აღწერს მხოლოდ სპექტრის 3 კომპონენტს. ფერის ასეთი აღწერა საკმაოდ კარგ შეგდეგს იძლევა და მოიცავს რეალური ამოცანების დიდ ნაწილს, ასევე კარგად ხდება მისი წარმოდგენა კომპიუტერშიც და შემდგომში არსებულ გამომთვლელ მოწყობილობებშიც მისი ინტეგრაცია, სწორედ ამიტომ საწა...

ზედაპირის ფართობის ევრისტიკა

Surface Area Heuristic წვრილი დიაგონალური სამკუთხედი და მისი AABB.         იმისათვი, რომ შევძლოთ სხვადასხვა ამაჩქარებელი ხეების ხარისხის შეფასება და ერთმანეთზე შედარება აუცილებელია ვიცოდეთ რაიმე კრიტერიუმი, რაც განსაზღვრავს მის ხარისხს. მსგავსი კრიტერიუმების საფუძველზე ჩვენ შეგვიძლია ავაგოთ შემფასებელი ფუნქცია, რომელიც შეძლებს ხის ხარისხის დადგენას. ეს ფუნქცია დაგვეხმარება ხის აგების პროცესში, შევადაროთ ერთმანეთს სხვადასხვა ხეები/ქვეხეები და მათში შევარჩიოთ ჩვენთვის ყველაზე ხელსაყრელი. ეს ფუნქცია შეიძლება იყოს ევრისტიკული, რომელიც არაოპტიმალურად, მინიმალური გამოთვლებით შეაფასებს ხეს.         როდესაც ჩვენ ვცდილობთ ავაგოთ ამაჩქარებელი სტრუქტურა, რომელიც  დაგვეხმარება სხივებისა და გეომეტრიული პრიმიტივების თანაკვეთის ამოცანის სწრაფად გადაჭრაში, მთავარ პრიორიტეტს წარმოადგენს სწორედ სხივების ზედმეტი შემოწმებების მინიმიზაცია. ჩვენ ზემოთ ვთქვით, რომ თუ შემომსაზღვრელი ყუთი დიდია და პრიმიტივს მჭიდროდ არ ეკვრის ეს ხის კორექტულობას არ არღვევს,...

ნორმალების მეპი

Normal Map მარცხენა - საწყისი გეომეტრიული მოდელი 2 (მილიონი სამკუთხედი), შუა - გამარტივებული მოდელი (500 სამკუთხედი) მარცხენა - გამარტივებული მოდელი (500 სამკუთხედი + ნორმალების მეპი) სურათის აღებულია ვიკიპედიიდან.         იმისათვის, რომ გამოსახულება ვიზუალურად ბევრად რეალისტური გავხადოთ შეგვიძლია ზედაპირის სხვადასხვა წერტილებისათვის მოვახდინოთ სხვადასვა ვიზუალიზაციის ნორმალების განსაზღვრა. თუკი ჩვენ ზედაპირის მიკროგეომეტრიულ მიმართულებებს შევინახავთ ტექსტურაში(ვექტორის x,y,z კომპონენტებს RGB ფერის სახით) ადვილად შევძლებთ მათ დაკავშირებას ზედაპირის წერტილებთან. ტექსურას რომელიც ინახავს მიკროგეომეტრიულ მიმართულებებს ეწოდება ნორმალების მეპი .         მაქსიმალურად მაღალი ხარისხის მისაღებად საჭიროა საბაზისო გეომეტრიის განსაზღვრა და მასზე ნორმალების მეპის დატანა. ამოზნექილობის მეპისაგან განსხვავებით ის არ ცვლის რეალურ ზედაპირს რასაც თავისი დადებითი და უარყოფითი თვისებები აქვს. ნორმალების მეპს ამოზნექილობის მეპთან შედარებით ბევრად ნაკ...

ბრტყელი და გლუვი შეფერადება

Flat and Smooth shading ბრტყელი შეფერადება - გეომეტრიული ნორმალებით(მარცხენა) გლუვი შეფერადება - ინტერპოლირებული ნორმალებით(მარჯვენა)         როდესაც ჩვენ რაიმე სახით აღვწერთ სცენაში არსებულ გეომეტრიულ ზედაპირებს, ჩვენ შეგვიძლია ზედაპირის ნებისმიერი წერტილისათვის ცალსახად განვსაზღვროთ გეომეტრიული ნორმალი(ზედაპირის მართობი), მიმართულება საითაც არის ზედაპირი მიმართული. თუმცა მხოლოდ გეომეტრიული ნორმალით პოლიგონალური მეშის ვიზუალიზაცია არ იძლევა ყოველთვის დამაკმაყოფილებელ შედეგს, განსაკუთრებით მაშინ როდესაც გლუვ ზედაპირს აღვწერთ სამკუთხა მეშის სახით საჭიროა ძალიან დიდი რაოდენობის სამკუთხედები რათა ბრტყელი წახნაგები შეუმჩნეველი გახდეს. ამიტომ მოხდა ვიზუალიზაციის ნორმალის შემოღება, რომელიც აღწერს ზედაპირის მიკრომიმართულებას და რომელიც შესაძლოა არ ემთხვეოდეს გეომეტრიულ ნორმალს. მაგალითად სამკუთხა მეშის შემთხვევაში რადგან ჩვენ შეიძლია ყოველი სამკუთხედისათვის გეომეტრიული ნორმალის განსაზღვრა, მაშინ სამკუთხედების წიბოებზე რომელსაც სამკუთხედი მეზობელ სამკ...

მოცულობითი რენდერის განტოლება

Volumetric  Rendering Equation სივრცული რენდერი. დარენდერებულია Arion-ში.         იმისათვის, რომ მოვახდინოთ სივრცული გარემოს კორექტული რენდერი პირველ რიგში უნდა მოხდეს სივრცული რენდერის განტოლების განსაზღვრა.         სივრცული რენდერის განტოლება, ისევე როგორც  ზედაპირების შემთხვევაში  აღწერს განათებას რომელიც მოდის დამკვირვებლის x წერტილში ω მიმართულებიდან. თუკი x წერტილიდან ω მიმართულებით არსებული უახლოესი ზედაპირი მდებარეობს s მანძილში         σ a (x)   არის სინათლის მილევის კოეფიციენტი სივრცის x წერტილში. σ s (x)   არის სინათლის გაბნევის კოეფიციენტი(სივრცული ნაწილაკების სიმკვრივე) სივრცის x წერტილში. Tr(x,x t ) არის სინათლის გამტარობა (ნაწილობრივი ხილვადობის ფუნქცია x და x t წერტილებს შორის). როგორც განტოლებიდან ჩანს დამკვირვებლის x წერტილში ω მიმართულებიდან  მიმავალი განათება შეგვიძლია წარმოავადგინოთ 3 კომპონენტის ჯამის სახით: ზედაპირიდან მომავალი მილეული განათება - ω მ...

ამოზნექილობის მეპი

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

მრავალი მნიშვნელოვნობით შერჩევა *

Multiple Importance Sampling         ჩემი იმპლემენტაცია პირდაპირი განათების ინტეგრირებისა მრავალი მნიშვნელოვნობის მეთოდით Shadertoy-ზე. :)         პირდაპირი განათების დასათვლელად ხდება განათების გამოთვა 2 მეთოდით: BRDF -ის შერჩევით და განათების წყაროების შერჩევით , და მიღებული შედეგების შეზავება ხდება MIS-ის საშუალებით :)

მხები სივრცე

Tangent Space სურათზე ნაჩვენებია სფერო, მისი ზედაპირის წერტილში ნორმალი(ლურჯი) და მხები(წითელი).         მანამ სანამ განვმარტავთ მხებ სივრცეს კარგად უნდა გვესმოდეს თუ რას ნიშვანს სივრცე და საკოორდინატო სისტემები. 3 განზომილებიანი საკოორდინატო სისტემაში განზაზღვრულია ცენტრი და 3 ძირითადი მიმართულება, პირობითად ამ მიმართულებებს X, Y და Z-ით აღნიშნავენ. ასეთ სისტემაში ნებისმიერ წერტილი შეგვიძლია აღვწეროთ (x,y,z) სამეულით. თუ ეს 3 მიმართულება არის ერთმანეთის მიმართ მართობული მაშინ ასეთ საკოორდინატო სისტემას ეწოდება მართკუთხა კოორდინატთა სისტემა. იმისათვის რომ ადვილად დავიმახსოვროთ ვექტორების დასახელებელი არსებობს მარჯვენა და მარცხენა ხელის წესი, რომელიც განსაზღვრავს საკოორდინატო სისტემის ვექტორებს სხვადასხვანაირად. წესის თანახმად თუ ჩვენ გავშლით 3 თითს: ცერას, საჩვენებელს და შუას, ხოლო 2-ს(ნეკას და არათითს) მოვხრით მაშინ X-ს ვუწოდებთ მიმართულებას, რომელსაც უთითებს საჩვენებელი, Y-ს უთითებს  შუა და Z-ს უთითებს ცერა. (იხილეთ ქვედა სურათი) სურათზე ნაჩვენებია სა...

მსგავსი სხივების პაკეტებად მიდევნება

Packet based coherent ray tracing სურათზე ნაჩვენებია მსგავსი სხივები და მათი შემომსაზღვრელი ფრუსტუმი.         საწარმოო რენდერერებში, მაშინ, როდესაც პროექტში არსებული სცენის მოცულობა იზრდება, იზრდება სცენაში არსებული ობიექტების რაოდენობა, იზრდება სენსორის გარჩევადობა, ... , საჭირო ხდება დამატებითი ოპტიმიზაციების გაკეთება რათა რენდერერი დასმულ ამოცანებს ადვილად გაუმკლავდეს. წინა პოსტებში ჩვენს მიერ განხილული რენდერის პროცესში ხდებოდა ციფრულ გამოსახულების თითოეული პიქსელისთვის აღდგენილი კამერიდან მიმართული პირველადი სხივების მიდევნება სათითაოდ. ამ დროს ხდებოდა თითოეული სხივისათვის თანაკვეთის შემოწმება სცენასთან, რომელიც გულისხმობს თანაკვეთების შემოწმებას სცენის შესაბამისი ხის( BVH -ის) კვანძებთან რეკურსიულად, ძირიდან ფოთლებისკენ. შესაბამისად ყოველი სხივს თავიდან უწევს ხეში ჩასვლა შესაბამის ფოთლებამდე სადაც უკვე ხდება უშუალოდ პრიმიტივებთან თანაკვეთის გამოთვლა. სცენაში არსებული ობიექტების რაოდენობის ზრდა იწვევს ხის ზრდას სიმაღლეში და შესაბამისად თანაკვეთის დათვლის ...

გარემომცველი წინაღობა

Ambient Occlusion სურათზე ნაჩვენებია საკლასო ოთახი გარემომცველი წინაღობით და მის გარეშე(გაბნეული განათებით). სურათი აღებულია aaa-studio-ს საიტიდან.           როგორც ვიცით გლობალური განათების დათვლის პროცესში მთავარ პრობლემას ირიბი განათების დათვლა წარმოადგენს. ირიბი ეწოდება იმ განათებას, რომელიც პირდაპირ სინათლის წყაროდან არ მოდის. მაშინ, როდესაც რენდერის დრო უფრო მნიშვნელოვანია ვიდრე ხარისხი ცდილობენ ირიბი განათების კორექტულ დათვლას თავი აარიდონ. ამ პრობლემის ერთ-ერთ გადაწყვეტას წარმოადგენს გაბნეული განათება (Ambient Light), რომელიც შემოგვაქვს სცენაში და ვიძახით, რომ ის ყველგანაა, მას არ გააჩნია პოზიცია და მიმართულება. გაბნეული განათების შემოღება დაგვეხმარება გავანათოთ სცენის ის წერტილები, სადაც სინათლის წყაროდან წამსული განათება პირდაპირ ვერ აღწევს, თუმცა მათი განათება მოხდება თანაბრად, ყველგან ერთნაირად, რაც რა თქმა უნდა რეალობისგან შორსაა.         გარემომცველი წინაღობა(თარგმანი შესაძლოა არ იყოს სწორი, ინგლისურად A mbient O cclusion...

მეტროპოლისის სინათლის ტრანსპორტირება

Metropolis Light Transport         1997 წელს ერიკ ვიჩმა( Eric Veach ) თავის სადოქტორო ნაშრომში წარმოადგინა რენდერის განტოლების ამოხსნის ახალი მეთოდი "მეტროპოლისის სინათლის ტრანსპორტირება"(MLT). როგორც სახელწოდებიდან ჩანს მეთოდი დაფუძნებულია მეტროპოლისის ალგორითმზე , რომელიც თავისმხრივ არის მარკოვის ჯაჭვებზე დაფუძნებული მონტე-კარლოს ინტეგრირების მეთოდი და რომელიც შეიქმნა 50-იან წლებში, თუმცა გრაფიკაში ამ დრომდე მისი გამოყენება არ მომხდარა.         მეტროპოლისის მეთოდის მთავარი იდეა მდგომარეობს იმაში, რომ მას შემდეგ რაც მოხდება სინათლის გადამტანი გზის(გზა რომელიც აერთებს განათებას სენსორთან) პოვნა, მეთოდი არსებული გზის მუტაციის გზით იღებს მსგავს გზებს, რომელთა მიღების ფასიც ბევრად დაბალია. გზების ორმხრივი მიდევნების მეთოდისგან განსხვავებით ის ბევრად უფრო ადვილად უმკლავდება SDS(სპეკულარული->დიფუზიური->სპეკულარული) გზებს, მწველ სხივებს(caustics). თავად ვიჩი აღნიშნავს მის ნაშრომში, რომ პირდაპირი განათების დათვლისთვის ალტერნატიული მე...

სხივის თანაკვეთა AABB-სთან

Ray AABB Intersection         სხივების მიდევნების მეთოდში AABB-სთან სხივის თანაკვეთის ამოცანა უდაოდ ერთერთი უმნიშვნელოვანესია და შესაბამისამ მისი ოპტიმალური გადაჭრა ძალიან მნიშვნელოვანი საკითხია. როგორც ვიცით AABB ( A xis A ligned B ounding B ox) წარმოადგენს პარალელეპიპედს, რომლის წახნაგებიც საკოორდინატო სიბრტყეების პარალელურია.         პირველ ეტაპზე განვიხილოთ სწორედ სხივის საკოორდინატო სიბრტყის პარალელურ სიბრტყესთან თანაკვეთის ამოცანა.         როგორც სურათზე ჩანს თანაკვეთის წერტილამდე მანძილი არის (y' - y)/sin(α). ნორმალიზებული (dx,dy,dz) ვექტორის შემთხვევაში sin(α) ტოლი იქნება dy-ის.         მივუბრუნდეთ aabb-სთან თანაკვეთას ამოცანას. სიმარტივისათვის განვიხილავთ შემთხვევას 2 განზომილებაში სადაც aabb მოცემულია [min, max] დიაპაზონით თითოეული განზომილების მიმართ, რომლებიც ჩვენს შემთხვევაში გვაძლევს 4 წრფეს. შესაბამისად თითოეულ ამ წრფესთან თანაკვეთას ვიპოვით შემდეგნაირად: t0x = (...