Skip to main content

Posts

მხები სივრცე

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 = (...

Intel SPMD Program Compiler

        Intel SPMD Program Compiler, შემოკლებით ISPC, არის C-ს სტილის SPMD(ერთი პროგრამა მრავალი მონაცემი) პროგრამირების ენა, რომელიც პარალელური გამოთვლების მარტივად ჩატარების კარგ საშუალებას იძლევა. ISPC ახდენს თქვენს მიერ მიცემული კოდის გაპარალელებას პროცესორის ბირთვებში არსებულ SIMD(ერთი ინსტრუქცია მრავალი მონაცემი) გამომთვლელებზე და 3-ჯერ ან უფრო მეტჯერ ახდენს გამოთვლების აჩქარებას.         ISPC ძალიან ამარტივებს პარალელური გამოთვლების კეთების პროცესს და შესაბამისად ზრდის პროდუქტიულობას. ის არა მხოლოდ ინტერპრეტატორია კოდის არამედ შეიცავს რიგ კოდის ოპტიმიზატორებს რათა მაქსიმალურად გაზარდოს პროგრამის ეფექტურობა. თუმცა დოკუმენტაციის თანახმად დიდი ყურადღება უნდა მიექცეს მონაცემებზე წვდომას, რათა მივიღოთ ადვილად და მეტად ეფექტურად გაპარალელებადი პროგრამული კოდი. მონაცემების შეგროვება/გაბნევა( gather/scatter ) პროგრამაში ართულებს მის გაპარალელებას რაც ამცირებს ეფექტურობას. მონაცემებზე წვდომა მკვეთრად მოქმედებს წარმადობაზე, რადგან პირდაპირ არის...

რენდერის განტოლება 2

Rendering Equation Area Formulation         ჩვენ უკვე ნაცნობია რენდერის განტოლების ერთი სახე, სადაც განტოლების ფორმულირება ხდება ინტეგრალის ნახევარსფეროზე(Ω-ზე, იხილეთ ქვემოთ მოცემული განტოლება), რაც იმას ნიშნავს, რომ ინტეგრირებას ვახდენთ x წერტილში ნახევარსფეროს სხვადასხვა მიმართულებიდან მოსული განათებებისა.         მოცემულ განტოლებაში L i ასახავს x წერტილში w i მიმართულებიდან მოსულ განათებას, რაც განტოლებაში მთავარ უცნობ სიდიდეს წარმოადგენს. თუ ჩვენ გვეცოდინება ზედაპირის y წერტილი, რომელიც x წერტილიდან w i მიმართულებით ჩანს შეგვიძლია დავწეროთ:         რაც იმას ნიშნავს, რომ x წერტილში w i მიმართულებიდან მოსული განათება ტოლია იმ განათებისა, რომელსაც y წერტილი ასხივებს -w i მიმართულებით. ვგულისხმობთ რომ y-დან x-სკენ გზაში ენერგია არ იკარგება(იხილეთ პირველი სურათი). ლამბერტის კოსინუსის წესის თანახმად y წერტილიდან(მცირე მიდამოდან) -w i მიმართულებით წამოსული ინტენსივობა N y ნორმალთან არსებული კოთხის კოსი...