Skip to main content

Posts

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 ნორმალთან არსებული კოთხის კოსი...

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

YUV color model         პირველ ეტაპზე, როდესაც მხოლოდ  შავთეთრი ვიდეოგამოსახულება არსებობდა მონაცემების შენახვა/გადაცემას ახდენდნენ ინტენსივობების ბუფერის სახით. ამის შემდეგ, როცა უკვე შესაძლებელი გახდა ფერადი ვიდეოგამოსახულების მიღება დადგა მისი შენახვისა და გადაცემის საკითხი. ტელევიზიისთვის მნიშვნელოვანი იყო, რომ მონაცემთა შენახვის ახალი მექანიზმი ძველთან მაქსიმალურად თავსებადი ყოფილიყო. ამ ყველაფრის გათვალისწინებით მოხდა ახალი მოდელის შემუშავება, სადაც განსხვავებით ფერების RGB  მოდელი საგან, ფერის ინფორმაცია ინტენსივობის ინფორმაციისგან გამიჯნულია. ახალ მოდელში ინტენსივობის Y სიგნალი შენარჩუნდა უცვლელად და მას დაემატა UV სიგალი, რომელიც განსაზღვრავს ფერს(იხილეთ ქვემოთ მოცემული სურათი).         Y-ის მნიშვნელობის მიღება ხდება RGB მოდელში R, G, და B კომპონენტების აწონილი ჯამით. სადაც         მარტივი გარდაქმნებით ხდება ასევე მონაცემების Y'UV მოდელიდან RGB მოდელში გადაყვანა. ასევე შესწავლილი და დადგენილია...

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

Light Transport Simulation for Realistic Images         დღეს უკვე აღარავის უკვირს ფილმებში ის დაუჯერებელი კადრები და ეფექტები, რისი ნახვაც 20 წლის წინ გააოგნებდა მაყურებელს.  ფილმების დიდ ნაწილში, კომპიუტერული დამუშავების სტადიაზე, გამოსახულების ნაწილობრივი ან/და სრული ჩანაცვლება ხდება. ჩანაცვლებული გამოსახულება კომპიუტერულად მუშავდება მაღალი სიზუსტის გამოთვლითი მეთოდებით და ერგება არსებულ კადრს ისე, რომ ეს პროცესი მაყურებლისთვის შეუმჩნეველი რჩება.  არსებული ან/და ვირტუალური გარემოს გამოსახულების კომპიუტერული შექმნის და დამუშავების პროცესი თავის მხრივ საკმაოდ რთული და კომპლექსური ამოცანების გადაჭრას გულისხმობს.  კინოინდუსტრია ერთ-ერთი ყველაზე ძვირადღირებული ინდუსტრიაა მსოფლიოში. თანამედროვე ფილმების ბიუჯეტი ასეულ მილიონებსაც კი აღწევს, რაც განპირობებულია ძვირადღირებული ტექნოლოგიებით, მაღალკვალიფიციური და მაღალანაზღაურებადი კადრებით და ფილმზე მუშაობის პროცესის სირთულით. როგორც ვთქვით ამ პროცესში კომპიუტერულ გრაფიკას დიდი როლი უკავია. ...

შემომსაზღვრელი ყუთების იერარქია

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

შემომსაზღვრელი ფიგურები

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

რვაობითი ხე

ocTree         რვაობითი ხე არის ისეთი ხე, რომლის თითოეულ შიდა კვანძს ჰყავს მაქსიმუმ 8 შვილობილი კვანძი, რომლებიც მიიღება მშობელი კვანძის შესაბამისი შემომსაზღვრელი ყუთის, x, y და z ღერძების მიმართ, სივრცულად შუაზე გაყოფის შედეგად. რვაობითი ხის აგება შეგვიძლია რამოდენიმე გზით, ერთ-ერთი ასეთი გზა ხის აგებას ახდენს ზემოდან ქვემოთ, რაც იმას გულისხმობს, რომ პირველ ეტაპზე, როდესაც მოცემული გვაქვს პრიმიტივების სია, ვახდენთ შემომსაზღვრელი ყუთის დადგენას და ვქმნით ხის ძირს, რომელშიც ვათავსებთ ყველა პრიმიტივს. ამის შემდგომ შევდივართ კვანძში, ვქმნით მის შვილობილ 8 კვანძს, საკოორდინატო ღერძების მიმართ, სივრცულად, შუაზე გაყოფის გზით და პრიმიტივებს ვანაწილებთ შვილობილ კვანძებში. შემდგომ ისევ ჩავდივართ თითოეულ კვანძში და ამ პროცესს ვიმეორებთ რეკურსიულად, სანამ არ ავაგებთ სასურველ ხეს. როგორც ზემოთ აღინიშნა, პრიმიტივების შვილობილ კვანძებში გადანაწილების დროს ერთი პრიმიტივი შესაძლოა მოხვდეს რამოდენიმე შვილში ერთდროულად, ასევე შესაძლოა ზოგიერთ შვილში არცერთი პრიმიტივი არ მ...