რა არის ფილტრი თამაშებში? Ანიზოტროპული ფილტრაცია

შესრულების ტესტები:

ახლა კი, როცა გავეცანით ფილტრაციისა და ტექსტურის გასწორების ძირითად ცნებებს, შეგვიძლია გადავიდეთ პრაქტიკაზე.

კომპიუტერის კონფიგურაცია:
პროცესორი: Intel Core 2 Quad Q6600 @ 3200MHz (400x8, 1.3125V)
ვიდეო კარტა: Palit Nvidia GeForce 8800GT
დედაპლატა: Asus P5Q PRO TURBO
მეხსიერება: 2x2048MB DDR2 Corsair XMS2 @ 1066MHz, 5-5-5-15
კვების წყარო: Corsair CMPSU-850HXEU 850W
პროცესორის გამაგრილებელი: Zalman CNPS9700 LED
ოპერაციული სისტემა: Windows 7 Ultimate x64
ვიდეო დრაივერის ვერსია: Nvidia 195.62 x64

ჩვენი დღევანდელი ტესტირების მთავარი თემა იყო ძალიან ძველი, მაგრამ არანაკლებ ცნობილი Counter-Strike: Source, რადგან ეს არის ერთ-ერთი იმ რამდენიმე მართლაც ფართოდ გავრცელებული თამაშიდან, რომელიც უზრუნველყოფს სხვადასხვა ანტი-ალიასინგისა და ფილტრაციის პარამეტრების უზარმაზარ არჩევანს. მიუხედავად ძრავის სიძველისა (2004), ამ თამაშს მაინც შეუძლია საკმაოდ კარგად დატვირთოს ყველაზე თანამედროვე პლატფორმაც კი. აქ არის მომხმარებლისთვის წარმოდგენილი პარამეტრების ასეთი მდიდარი სპექტრი:

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

ასე რომ, რა მივიღეთ:

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

ანტი-ალიასინგის გამორთული ტესტები (მონიშნულია ლურჯად აღქმის გასაადვილებლად) აჩვენა დაახლოებით თანაბარი სურათი, რაც მიუთითებს ვიდეო ბარათზე დატვირთვის მცირე განსხვავებაზე.

გარდა ამისა, არსებობს მკაფიო კორესპონდენცია FPS ინდიკატორებს შორის, იგივე ანტი-ალიასინგის მეთოდის გამოყენებისას, AF 8x და AF 16x. ამავდროულად, სხვაობა მერყეობს 1-დან 4 fps-მდე (გარდა MSAA 8x-ისა, სადაც სხვაობა არის 11 fps). ეს ვარაუდობს, რომ 16x ფილტრაციის გამოყენება შეიძლება ძალიან სასარგებლო იყოს, თუ სურათის ხარისხის გაუმჯობესება გჭირდებათ შესრულებაზე მნიშვნელოვანი გავლენის გარეშე.

და მაინც, აუცილებელია დათქმა, რომ უბრალოდ არარეალურია თამაშში იგივე FPS მნიშვნელობების მიღება, რადგან ბევრი სცენა გაცილებით რთულია, განსაკუთრებით ბევრ მოთამაშესთან.

სატესტო სურათები:

მაშ, რა გვაქვს? ჩვენ გავიგეთ სხვადასხვა პარამეტრების კონფიგურაციის ეფექტის შესახებ შესრულებაზე. ”მაგრამ რატომ არის ეს ყველაფერი საჭირო?” - გეკითხებით. ნაჩვენები სურათის ხარისხის გასაუმჯობესებლად გიპასუხებ. არის საერთოდ ასეთი მატება? ამ კითხვაზე პასუხის გასაცემად, მე გთავაზობთ გადახედოთ შემდეგ ეკრანის სურათებს:

Bilinear/MSAA 2xტრილინარული/MSAA 2xAF 2x / MSAA 2x
AF 2x / CSAA 8xAF 2x / MSAA 8xAF 2x / CSAA 16x
AF 2x / CSAA 16xQAF 8x/MSAA x2AF 8x / CSAA 8x
AF 8x / MSAA 8xAF 8x / CSAA 16xAF 8x / CSAA 16xQ
AF 16x / MSAA 2xAF 16x / CSAA 8xAF 16x / MSAA 8x
AF 16x / CSAA 16xAF 16x / CSAA 16xQBilinear/CSAA 16xQ

როგორც ხედავთ, უბრალოდ არ არის მნიშვნელოვანი განსხვავება კომბინაციებში "ზემოთ" AF 8x / MSAA 8x (CSAA 8x). მაგრამ ეს იწვევს შესამჩნევ დარტყმას შესრულებაზე, განსაკუთრებით Coverage Sampling AntiAliasing-ის გამოყენებისას.

დასკვნები:

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

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

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

Stormcss-ის მიერ


სასტიკად ურტყამ ფეხებს

3D თამაშების მოსვლასთან ერთად დაიწყო პრობლემები, რომლებიც არ არსებობდა 2D თამაშებში: ბოლოს და ბოლოს, ახლა თქვენ უნდა აჩვენოთ სამგანზომილებიანი გამოსახულება ბრტყელ მონიტორზე. თუ ობიექტი მის მახლობლად ეკრანის სიბრტყის პარალელურადაა, არანაირი პრობლემა არ არის: ერთი პიქსელი შეესაბამება ერთ ტექსელს (ტექსელი არის ორგანზომილებიანი გამოსახულების პიქსელი, რომელიც ზედმეტად დგას 3D ზედაპირზე). მაგრამ რა უნდა გააკეთოს, თუ ობიექტი დახრილია ან შორს არის? ყოველივე ამის შემდეგ, თითო პიქსელზე არის რამდენიმე ტექსელი და რადგან მონიტორს აქვს პიქსელების შეზღუდული რაოდენობა, თითოეულის ფერი უნდა გამოითვალოს რამდენიმე ტექსელიდან გარკვეული პროცესის - ფილტრაციის გზით.


საგნების გასაგებად რომ გავამარტივოთ, წარმოვიდგინოთ, რომ თითოეული პიქსელი არის კვადრატული „ხვრელი“ მონიტორზე, ჩვენ ვიღებთ „შუქის სხივებს“ თვალებიდან და ტექსელები განლაგებულია მონიტორის უკან კვადრატულ ბადეზე. თუ ბადეს მონიტორის პარალელურად მოვათავსებთ მის უკან, მაშინ ერთი პიქსელის შუქი დაფარავს მხოლოდ ერთ ტექსელს. ახლა ჩვენ დავიწყებთ ბადეების გადატანას - რას მივიღებთ? ის ფაქტი, რომ ჩვენი სინათლის ლაქა პიქსელიდან უკვე დაფარავს ერთზე მეტ ტექსელს. ახლა მოვატრიალოთ გისოსი და მივიღოთ იგივე: ერთი პიქსელიდან ლაქა დაფარავს ბევრ ტექსელს. მაგრამ პიქსელს შეიძლება ჰქონდეს ერთი ფერი და თუ მასში ბევრი ტექსელია, მაშინ ჩვენ გვჭირდება ალგორითმი, რომლითაც განვსაზღვრავთ მის ფერს - მას ტექსტურის ფილტრაცია ჰქვია.


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


ამიტომ გასაკვირი არ არის, რომ ასეთი ფილტრაცია დღეს აღარ გამოიყენება.


ვიდეო ბარათების შემუშავებით, მათი სიმძლავრე გაიზარდა, ამიტომ თამაშის დეველოპერები უფრო შორს წავიდნენ: თუ პიქსელის ფერისთვის ერთ ტექსელს აიღებ, ცუდი გამოდის. კარგი - ავიღოთ საშუალო ფერი 4 ტექსელიდან და დავარქვათ ორმხრივი ფილტრაცია? ერთის მხრივ, ყველაფერი გამოსწორდება - ბლოკადა გაქრება. მაგრამ მოვა მტერი ნომერი ორი - გამოსახულების ბუნდოვანება მოთამაშის მახლობლად: ეს გამოწვეულია იმით, რომ ინტერპოლაცია მოითხოვს ოთხზე მეტ ტექსელს.

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


კარგი, თამაშის დეველოპერებმა თქვეს - რადგან 4 ტექსელი არ არის საკმარისი, ავიღოთ ორჯერ ოთხი და უფრო ზუსტად რომ შეესაბამებოდეს ფერს, გამოვიყენებთ mip-ტექსტურის ტექნოლოგიას. როგორც ზემოთ უკვე დავწერე, რაც უფრო შორს არის ტექსტურა პლეერისგან, მით მეტი ტექსელი იქნება პიქსელში და მით უფრო უჭირს ვიდეოკარტას სურათის დამუშავება. MIP ტექსტურირება ნიშნავს ერთი და იგივე ტექსტურის შენახვას სხვადასხვა გარჩევადობაში: მაგალითად, თუ ორიგინალური ტექსტურის ზომაა 256x256, მაშინ მისი ასლები ინახება მეხსიერებაში 128x128, 64x64 და ასე შემდეგ, 1x1-მდე:


ახლა კი, გაფილტვრისთვის, აღებულია არა მხოლოდ თავად ტექსტურა, არამედ mipmap: იმის მიხედვით, არის თუ არა ტექსტურა მოთამაშისგან უფრო შორს ან უფრო ახლოს, აღებულია უფრო პატარა ან უფრო დიდი ტექსტურის mipmap და უკვე მასზე არის 4 ტექსელი ყველაზე ახლოს. მიიღება პიქსელის ცენტრში და ტარდება ბილინარული ანალიზი ფილტრაცია. შემდეგი, აღებულია ორიგინალური ტექსტურის პიქსელთან ყველაზე ახლოს 4 ტექსელი და კვლავ მიიღება "საშუალო" ფერი. ამის შემდეგ, "საშუალო" ფერი აღებულია mipmap-ის და ორიგინალური ტექსტურის საშუალო ფერებიდან და ენიჭება პიქსელს - ასე მუშაობს ტრიწრფივი ფილტრაციის ალგორითმი. შედეგად, ის იტვირთება ვიდეო ბარათს ოდნავ უფრო მეტად, ვიდრე ორმხრივი ფილტრაცია (მიპრუპი ასევე საჭიროებს დამუშავებას), მაგრამ სურათის ხარისხი უკეთესია:


როგორც ხედავთ, ტრიწრფივი ფილტრაცია სერიოზულად უკეთესია, ვიდრე ორმხრივი და მით უმეტეს, წერტილოვანი ფილტრაცია, მაგრამ გამოსახულება მაინც ბუნდოვანი ხდება დიდ დისტანციებზე. და ბუნდოვანი სურათი განპირობებულია იმით, რომ ჩვენ არ ვითვალისწინებთ იმ ფაქტს, რომ ტექსტურა შეიძლება იყოს დახრილი მოთამაშესთან შედარებით - და ეს არის ზუსტად ის პრობლემა, რომელსაც ანიზოტროპული ფილტრაცია წყვეტს. მოკლედ, ანისოტროპული ფილტრაციის მოქმედების პრინციპი ასეთია: მიიღება MIP ტექსტურა, დაყენებულია ნახვის მიმართულებით, რის შემდეგაც მისი ფერის მნიშვნელობები საშუალოდ ხდება ტექსელის გარკვეული რაოდენობის ფერით ნახვის მიმართულებით. ტექსელების რაოდენობა მერყეობს 16-დან (x2 ფილტრისთვის) 128-მდე (x16-ისთვის). მარტივად რომ ვთქვათ, კვადრატული ფილტრის ნაცვლად (როგორც ორხაზოვან ფილტრაციაში) გამოიყენება წაგრძელებული, რაც საშუალებას გაძლევთ უკეთ აირჩიოთ სასურველი ფერი ეკრანის პიქსელისთვის. ვინაიდან ეკრანზე შეიძლება იყოს მილიონი ან კიდევ მეტი პიქსელი და თითოეული ტექსელი იწონის მინიმუმ 32 ბიტს (32 ბიტიანი ფერი), ანიზოტროპული ფილტრაცია მოითხოვს უზარმაზარ ვიდეო მეხსიერების სიჩქარეს - ათობით გიგაბაიტი წამში. მეხსიერების ასეთი დიდი მოთხოვნები მცირდება ტექსტურის შეკუმშვისა და ქეშირების გამო, მაგრამ მაინც ვიდეო ბარათებზე DDR მეხსიერებით ან 64-ბიტიანი ავტობუსით, განსხვავება ტრიწრფიურ და x16 ანიზოტროპულ ფილტრს შორის შეიძლება მიაღწიოს 10-15% fps, მაგრამ სურათი ასეთი ფილტრაციის შემდეგ გამოდის საუკეთესო:

ტექსტურის ფილტრაცია.

ფილტრაცია წყვეტს პიქსელის ფერის განსაზღვრის პრობლემას ტექსტურის გამოსახულების არსებული ტექსელების საფუძველზე.

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

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

მეორე მეთოდი - ორმხრივი ფილტრაცია(Bi-Linear Filtering) შედგება ინტერპოლაციის ტექნოლოგიის გამოყენებით. ტექსელების დასადგენად, რომლებიც უნდა იქნას გამოყენებული ინტერპოლაციისთვის, გამოიყენება სინათლის ლაქის ძირითადი ფორმა - წრე. არსებითად, წრე მიახლოებულია 4 ტექსელით. ორხაზოვანი ფილტრაცია არის გამოსახულების დამახინჯების (გაფილტვრის) აღმოფხვრის ტექნიკა, როგორიცაა ტექსტურების „ბლოკირება“, როდესაც ისინი გადიდებულია. ობიექტის ნელა ბრუნვისას ან გადაადგილებისას (მიახლოება/მოშორება), შესაძლოა შესამჩნევი იყოს პიქსელების „გადახტომა“ ერთი ადგილიდან მეორეზე, ე.ი. ჩნდება ბლოკირება. ამ ეფექტის თავიდან ასაცილებლად, გამოიყენება ორხაზოვანი ფილტრაცია, რომელიც იყენებს ოთხი მიმდებარე ტექსელის ფერის მნიშვნელობის საშუალო შეწონილებას თითოეული პიქსელის ფერის დასადგენად და, შედეგად, განსაზღვრავს გადაფარვის ტექსტურის ფერს. მიღებული პიქსელის ფერი განისაზღვრება სამი შერევის ოპერაციის შემდეგ: ჯერ ორი წყვილი ტექსელის ფერები აირია, შემდეგ კი მიღებულ ორ ფერს ურევენ.

ორმხრივი ფილტრაციის მთავარი მინუსი არის ის, რომ მიახლოება სწორად ხორციელდება მხოლოდ პოლიგონებისთვის, რომლებიც განლაგებულია ეკრანის ან დაკვირვების წერტილის პარალელურად. თუ მრავალკუთხედი ბრუნავს კუთხით (და ეს არის შემთხვევების 99%-ში), გამოიყენება არასწორი მიახლოება, რადგან ელიფსი უნდა იყოს მიახლოებული.

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

შემდეგი მართკუთხედები ორმხრივი ტექსტურით შეიძლება იყოს აღწერილი ეფექტის ილუსტრაცია:

ბრინჯი. 13.29. ობიექტის დაჩრდილვა ორმხრივი ფილტრაციის მეთოდით."სიღრმის ალიასირების" არტეფაქტების გამოჩენა, რის შედეგადაც რამდენიმე კვადრატი ერთდება.

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

mip-ტექსტურა (mip-map) შედგება წინასწარ გაფილტრული და მასშტაბური სურათების ნაკრებისგან. გამოსახულებაში, რომელიც ასოცირდება mip-map ფენასთან, პიქსელი წარმოდგენილია, როგორც საშუალოდ ოთხი პიქსელი წინა ფენიდან უფრო მაღალი გარჩევადობით. აქედან გამომდინარე, სურათი, რომელიც დაკავშირებულია თითოეული mip-ტექსტურის დონეზე, ოთხჯერ უფრო მცირეა, ვიდრე წინა mip-map დონეზე.

ბრინჯი. 13.30. სურათები, რომლებიც დაკავშირებულია ტალღოვანი ტექსტურის თითოეულ მიპ-რუქის დონეზე.

მარცხნიდან მარჯვნივ გვაქვს mip-map დონეები 0, 1, 2 და ა.შ. რაც უფრო პატარა ხდება გამოსახულება, მით მეტი დეტალი იკარგება, სანამ ბოლომდე არაფერი ჩანს, გარდა ნაცრისფერი პიქსელების ბუნდოვანი დაბინდვისა.

დეტალების დონე, ან უბრალოდ LOD, გამოიყენება იმის დასადგენად, თუ რომელი mip-რუკის დონე (ან დეტალების დონე) უნდა შეირჩეს ობიექტზე ტექსტურის გამოსაყენებლად. LOD უნდა შეესაბამებოდეს პიქსელზე გადაფარული ტექსელების რაოდენობას. მაგალითად, თუ ტექსტურირება ხდება 1:1-თან ახლოს თანაფარდობით, მაშინ LOD იქნება 0, რაც ნიშნავს, რომ გამოყენებული იქნება mip-map დონე უმაღლესი გარჩევადობით. თუ 4 ტექსელი გადაფარავს ერთ პიქსელს, მაშინ LOD იქნება 1 და გამოყენებული იქნება შემდეგი mip დონე დაბალი გარჩევადობით. როგორც წესი, როდესაც თქვენ შორდებით დაკვირვების პუნქტს, ობიექტს, რომელიც იმსახურებს ყველაზე დიდ ყურადღებას, აქვს უმაღლესი LOD მნიშვნელობა.

მიუხედავად იმისა, რომ mip-texturing აგვარებს სიღრმის ალიასირების შეცდომებს, მისმა გამოყენებამ შეიძლება გამოიწვიოს სხვა არტეფაქტების გამოჩენა. როდესაც ობიექტი უფრო და უფრო მოძრაობს დაკვირვების წერტილიდან, ხდება გადასვლა დაბალი mip-რუკის დონიდან მაღალზე. როდესაც ობიექტი არის გადასვლის მდგომარეობაში ერთი mip-map დონიდან მეორეზე, ჩნდება ვიზუალიზაციის შეცდომის სპეციალური ტიპი, რომელიც ცნობილია როგორც "mip-banding" - ზოლირება ან ლამინირება, ე.ი. აშკარად ჩანს გადასვლის საზღვრები ერთი mip-რუკის დონიდან მეორეზე.

ბრინჯი. 13.31. მართკუთხა ლენტი შედგება ორი სამკუთხედისგან, რომლებიც ტექსტურირებულია ტალღისებური გამოსახულებით, სადაც „მიპ-ბანდინგი“ არტეფაქტები მითითებულია წითელი ისრებით.

"mip-banding" შეცდომების პრობლემა განსაკუთრებით მწვავეა ანიმაციაში, იმის გამო, რომ ადამიანის თვალი ძალიან მგრძნობიარეა გადაადგილების მიმართ და ადვილად ამჩნევს ფილტრის დონეებს შორის მკვეთრი გადასვლის ადგილს ობიექტის გარშემო მოძრაობისას.

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

ბრინჯი. 13.32. პირამიდის MIP-რუქა

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

ბრინჯი. 13.33. ტალღის მსგავსი გამოსახულებით ტექსტურირებული ოთხკუთხედი ეკრანზე გამოსახულია mip-ტექსტურის და სამწრფივი ფილტრაციის გამოყენებით.

MIP ტექსტურების გენერირების რამდენიმე გზა არსებობს. ერთი გზაა უბრალოდ წინასწარ მოამზადოთ ისინი გრაფიკული პაკეტების გამოყენებით, როგორიცაა Adobe PhotoShop. კიდევ ერთი გზაა MIP ტექსტურების გენერირება ფრენაზე, ე.ი. პროგრამის შესრულების დროს. წინასწარ მომზადებული MIP ტექსტურები ნიშნავს დამატებით 30%-ს დისკზე ტექსტურებისთვის თამაშის საბაზისო ინსტალაციაში, მაგრამ იძლევა უფრო მოქნილ მეთოდებს მათი შექმნის კონტროლისთვის და საშუალებას გაძლევთ დაამატოთ სხვადასხვა ეფექტები და დამატებითი დეტალები სხვადასხვა MIP დონეზე.

გამოდის, რომ სამხაზოვანი mipmapping არის საუკეთესო, რაც შეიძლება იყოს?

Რათქმაუნდა არა. ჩანს, რომ პრობლემა მხოლოდ პიქსელისა და ტექსელის ზომის თანაფარდობაში კი არ არის, არამედ თითოეული მათგანის ფორმაშიც (უფრო ზუსტად რომ ვთქვათ, ფორმების თანაფარდობაში).

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

ტექსტურირების ალგორითმების აღწერა: ტექსტურის ფილტრაცია

ტექსტურის ფილტრაცია

ბოლო დროს, 3D კომპიუტერული გრაფიკის შემუშავებაში ჩართული კომპანიები მუდმივად ცდილობენ გაზარდონ დეტალები და გამოსახულების ხარისხი კომპიუტერულ რენდერში. მუდმივად ვითარდება ახალი ტექნოლოგიები და 3D რენდერის არქიტექტურები, იხვეწება და განახლდება შეკუმშვის ალგორითმები მეხსიერების გამტარუნარიანობის გაზრდის მიზნით, ასევე განიცდის მეხსიერების არქიტექტურა ცვლილებებს. სამწუხაროდ, უფსკრული 3D გრაფიკის მოწინავე იდეებსა და ჩვეულებრივ კომპიუტერებს შორის საკმაოდ დიდია: რეალიზმი თანამედროვე თამაშებში და ა.შ. დამზადებულია 1-2 წლის წინ შემუშავებული ტექნოლოგიების გამოყენებით. გარდა ამისა, ჩვეულებრივი კომპიუტერების სიმძლავრე ძალიან შეზღუდულია, რის გამოც თამაშებისთვის გამოიყენება საკმაოდ მარტივი ალგორითმები, რომლებსაც ამ სტატიაში განვიხილავთ: ეს არის ტექსტურირება და უფრო დეტალურად - ტექსტურის ფილტრაცია.

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

ერთ-ერთი ყველაზე გამოყენებული ტექნოლოგია, რომელიც ამარტივებს გამოსახულების გამოთვლას საკმაოდ კარგი ხარისხით, არის ტექსტურირება. ტექსტურა არის 2D გამოსახულება, რომელიც გამოიყენება 3D ობიექტზე ან ნებისმიერ ზედაპირზე. მაგალითისთვის ავიღოთ შემდეგი სიტუაცია: თქვენ ხართ დეველოპერი და გსურთ, რომ მომხმარებელმა ნახოს აგურის კედელი. იქმნება 3D კედლის ჩარჩო და შეგიძლიათ ცალკე შეარჩიოთ აგური. ახლა ვიღებთ აგურის 2D სურათს და ვდებთ აგურზე 3D ჩარჩოში და ასე შემდეგ - მთელ კედელს. შედეგი არის ნორმალური 3D კედელი და გრაფიკულ ჩიპს არ სჭირდება თითოეული პიქსელის დახატვა და გამოთვლა - ის ითვლის 3D ჩარჩოს კოორდინატებს, რომელზეც 2D გამოსახულებაა მიმაგრებული.

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

Mip-Mapping

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

ასეთი სიტუაციების შესამსუბუქებლად შეიქმნა mip-mapping. ეს ტექნოლოგია მუშაობს ძალიან მარტივად: ორიგინალური ტექსტურა წარმოიქმნება სხვადასხვა სიტუაციებში ისე, რომ სწორად აჩვენოს ტექსტურა სხვადასხვა დისტანციებზე და სხვადასხვა ხედვის კუთხით. ობიექტთან მიახლოებისას ტექსტურა ნაჩვენებია უფრო მაღალი გარჩევადობით, ხოლო მოშორებისას - ქვედა. ამდენად, mip-mapping აუმჯობესებს გამოსახულების ხარისხს და ამცირებს დაბნეულობას. ქვემოთ მოცემულია იგივე სურათები, მხოლოდ mip-mapping ჩართულია: ამ აბსტრაქტში სურათები არ არის.

შენიშნეთ ხარისხის გაუმჯობესება? განსაკუთრებით შესამჩნევია მეორე სურათზე ყვითელი და წითელი ნიმუშით. გთხოვთ გაითვალისწინოთ: არა მხოლოდ შორეული ტექსტურების ხარისხი გაუმჯობესდა: ახლომახლოები ასევე ბევრად უკეთესად გამოიყურება. ზოგადად, mip-mapping გამოსახულება ბევრად უკეთ გამოიყურება, ვიდრე მის გარეშე: ნორმალური ჩვენებისას შესამჩნევი არ არის მრავალი დამახინჯება და გამრუდება.

ფილტრაცია

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

Bilineat ფილტრაცია

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

ეს სურათი გვიჩვენებს გამოსახულების დახატვის მაგალითს ორმხრივი ფილტრაციისა და mip-mapping გამოყენებით.

ტრიწრფივი ფილტრაცია

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

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

გამოსახულება მიიღება ძალიან მაღალი ხარისხით მხოლოდ უფრო პირდაპირი ხედვის კუთხით რეალური ნახაზით, ობიექტის გეომეტრიული ფორმები შეიძლება დაირღვეს. შეხედეთ სურათს SGI-დან:

Ანიზოტროპული ფილტრაცია

ტექსტურირებული ობიექტების ფორმა, როგორც ორხაზოვანი, ასევე ტრიწრფივი ფილტრაციის დროს, შეიძლება დამახინჯდეს, რადგან ორივე ეს ფილტრი იზოტროპულია - გამოსახულება იფილტრება გარკვეული ფორმით - კვადრატის სახით. გენერირებული ობიექტების უმეტესობა არ ერგება ამ სპეციფიკურ და უცვლელ ფორმას: მათი მაღალი ხარისხის დამუშავებისთვის აუცილებელია სხვა ტიპის ფილტრაციის გამოყენება - ანიზოტროპული. ანისოტროპია შედგება რამდენიმე სიტყვისაგან ლათინურად და სიტყვასიტყვით ნიშნავს "ანი" - არა, "ისო" - გარკვეული ფორმა და "ტროპია" - მოდელი - ე.ი. გაურკვეველი ფორმის მოდელები. ამ ტექნოლოგიის სახელი ასახავს მის ტექნიკურ განხორციელებას. ანიზოტროპული ფილტრაცია ჩვეულებრივ მოქმედებს მინიმუმ 8 ტექსელზე, mip-map დონეზე ყველა მიმართულებით და იყენებს წინასწარ განსაზღვრული ფორმის მოდელს. შედეგად, ობიექტების ხმაური და დამახინჯება ამოღებულია და მთლიანობაში გამოსახულება უფრო მაღალი ხარისხისაა.

შეადარეთ ორი სურათი: ერთმა გამოიყენა 16-ტექსელი ანიზოტროპული ფილტრაცია, რომელიც აღმოფხვრა დამახინჯება mip-რუქის დონეებსა და გამოსახულების ხმაურს შორის. მეორე სურათს ჰქონდა ანისოტროპული ფილტრაცია;

ყურადღება მიაქციეთ გამოსახულების დიდ დისტანციებს: აშკარაა განსხვავება ანისოტროპულ და იზოტროპულ ფილტრებს შორის. ტექსტურის ხარისხი ანისოტროპული ფილტრით რჩება ორიგინალის მსგავსი, თუნდაც დიდ დისტანციებზე; იზოტროპული გაფილტვრით ჩნდება სურათის „დაგლუვების“ ტენდენცია, რაც იწვევს ხარისხის დაკარგვას. ანიზოტროპული ფილტრაცია, ისევე როგორც ტრიწრფივი ფილტრაცია, ამცირებს ტექსტურის უთანასწორობას. მაგრამ ანისოტროპული ფილტრაციის გამოყენებისას ხარისხი მაინც უკეთესია, რადგან შედარებისთვის ის იყენებს ბლოკების გაცილებით დიდ რაოდენობას. აქ არის კიდევ ერთი მაგალითი, რომელიც აჩვენებს ანიზოტროპულ ფილტრაციას მოქმედებაში:

დიდი ხნის განმავლობაში, სამომხმარებლო კლასის გრაფიკული ბარათები არ უზრუნველყოფდა გამოსახულების ხარისხს, რაც შესაძლებელია ანიზოტროპული ფილტრით. გრაფიკული ჩიპების მოსვლასთან ერთად, როგორიცაა NVIDIA GeForce2 და ATI Radeon, შესაძლებელი გახდა ანიზოტროპული ფილტრის გამოყენება, რომელიც აანალიზებს 16 ტექსელის ბლოკებს აპარატურაში. GeForce3 და Radeon 8500 ვიდეო ბარათები უკვე იყენებენ 32 ტექსელის ანიზოტროპულ ფილტრაციას. ქვემოთ მოყვანილი სურათი გვიჩვენებს სურათს, რომელიც უახლოვდება იმას, რაც წარმოიქმნება პროფესიონალური 64 ტექსელი ანიზოტროპული ფილტრის გამოყენებით:

მომავალი…

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

დამატებით:

ანტიალიზაციური და ანიზოტროპული ფილტრაცია დღეს: რა, სად და რამდენი? ნაწილი პირველი

ფაქტობრივად, ასეთი სათაურით სტატია შეიძლება დაიწყოს ისეთი აბსოლუტური სიტყვით, როგორიცაა „კომპიუტერის თითოეულ მომხმარებელს რაღაც მომენტში უნახავს 3D გამოსახულების გაუმჯობესების ტექნიკის მოქმედება, როგორიცაა ანტიალიასინგი ან ანიზოტროპული ფილტრაცია“. ან ეს: „სანამ ჩვენი კოსმოსური ხომალდები კოსმოსში დაფრინავენ, NVIDIA და ATI პროგრამისტები ეძებენ გზებს გამოსახულების გაუმჯობესების ცნობილი ტექნიკის მუშაობის გასაუმჯობესებლად“. მეორე ბანალურობას გაცილებით მეტი შანსი აქვს იცხოვროს იმ გაგებით, რომ უკვე აინტრიგებს იმ ფაქტს, რომ ჩვენ გამოვიძიებთ საკითხს, ვინ და როგორ "ოპტიმიზირებულია" მათი მძღოლები.

თუმცა, ჩვენ, ალბათ, საერთოდ პლიტუტების გარეშე ვიქნებით. იმის გამო, რომ ბევრად უფრო საინტერესოა ვიმსჯელოთ იმაზე, თუ რამდენად ხელმისაწვდომი გახდა გამოსახულების გაუმჯობესების ტექნიკა ახლა ჩვეულებრივი მომხმარებლისთვის, ან, უფრო სწორად, ჩვეულებრივი მოთამაშისთვის. გეიმერები დღეს ყველა ახალი ტექნოლოგიებისა და ინოვაციების ყველაზე აქტიური მომხმარებლები არიან 3D-ში. ზოგადად, მძლავრი 3D ამაჩქარებელი დღეს საჭიროა ექსკლუზიურად უახლესი კომპიუტერული თამაშების სათამაშოდ მძლავრი 3D ძრავებით, რომლებიც მუშაობენ სხვადასხვა ვერსიის რთული შადერებით. დღესდღეობით არავის გააკვირვებთ პიქსელ შადერების 2.0 ვერსიით თამაშით - სათამაშო სამყაროში ასეთი გართობა ნელ-ნელა ყოველდღიურ მოვლენად იქცევა. თამაშების უმეტესობა კვლავ გამოდის 1.1 შადერის მოდელის გამოყენებით, იმის გამო, რომ თამაშის დეველოპერებისთვის ყველაზე მნიშვნელოვანი ის არის, რომ მათი თამაში საკმაოდ კარგად იმუშაოს იმ აპარატურაზე, რომელიც მოთამაშეთა აბსოლუტურ უმრავლესობას აქვს. სუპერ დახვეწილი ძრავის დამზადება ახლა დიდი ნარჩენია და რისკიც კი. თავად განსაჯეთ: შექმენით "Doom 3" ან "Half-Life 2" კლასის ძრავა (კარგი, მოდით აქ დავამატოთ shaders 2.0-ის პიონერი მთელი თავისი დიდებით, Crytek-ის შემოქმედებით - "FarCry", რომ მივიღოთ ნამდვილი. ყველგანმყოფი სამება) დიდ დროს მოითხოვს, რაც განვითარებას დამატებით სირთულეებს მოაქვს - აუცილებელია ძრავის განვითარება ისეთ ვადაში, რომ ინოვაციები და ორიგინალური განვითარება არ მოძველდეს ძრავის შექმნისას.

თუ ეჭვი გეპარებათ, რომ ეს შეიძლება მოხდეს, მაშინ ეს სრულიად უშედეგოა - "Half-Life 2"-ის შემთხვევაში ყველაფერი ზუსტად ასე იყო (და "Doom 3" შეიქმნა GeForce 3-ის თვალით და გამოვიდა როდესაც GeForce FX). ასევე, ამ კლასის ძრავების განვითარება დაკავშირებულია განვითარების მაღალ ხარჯებთან: ნიჭიერი პროგრამისტები დღეს არ არის იაფი. და ბოლო დროს დიდი ყურადღება (თუნდაც საჭიროზე მეტი) დაეთმო, ასე ვთქვათ, "პოლიტიკას" თამაშის ძრავებთან მიმართებაში.

დიახ, დიახ, ეს ასეა, სწორად გსმენიათ, 3D სფეროს დიდი ხანია აქვს საკუთარი პოლიტიკა, ბუნებრივია, ორი გიგანტის ინტერესებზე დაყრდნობით, გრაფიკული პროცესორების დიზაინში: ATI და NVIDIA. Harsh Canada უკვე დიდი ხანია ებრძვის მზიან კალიფორნიას და ჯერჯერობით ამ დაპირისპირებას დასასრული არ აქვს, რაც, რა თქმა უნდა, მხოლოდ ჩვენ, ჩვეულებრივ მომხმარებლებს, სარგებელს მოუტანს. ახლა საკმარისი არ არის მაგარი ძრავის შემუშავება - წარმატების მისაღწევად, თქვენ უნდა მოითხოვოთ კალიფორნიული დივას NVIDIA ან კანადური ATI მხარდაჭერა, საბედნიეროდ, ახლა როგორც პირველს, ასევე მეორეს აქვს საკუთარი პარტნიორობის პროგრამები თამაშის დეველოპერებისთვის. NVIDIA უწოდებს ასეთ პროგრამას "როგორც ის არის გამიზნული", და ATI უწოდებს "მიიღეთ თამაშში ყველაფერი საკმაოდ მჭევრმეტყველი და გასაგებია: NVIDIA ამბობს, რომ "თქვენ უნდა ითამაშოთ ასე" და არა საერთოდ ასეა და ATI გვარწმუნებს, რომ ჩვენ აუცილებლად მივიღებთ ყველაფერს, რაც გვინდა თავად თამაშში, არაა ეს ძრავები "Doom 3" და "Half-Life 2" (შემთხვევაში ამ უკანასკნელს, ძრავას უწოდებენ Source, თუმცა გასაგებად, ჩვენ მას დავარქმევთ "Half-Life 2", რათა შევინარჩუნოთ სწორი ასოციაცია) და თავდაპირველად შეიქმნა გრაფიკული ჩიპების მწარმოებლების ინჟინრებთან მჭიდრო თანამშრომლობით). რომ თამაშები უკეთესად იმუშავებს ერთი მწარმოებლის GPU-ზე.

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

სწორედ ანიზოტროპული ფილტრაციისა და ანტიალიასირების სფეროში ხდება დრაივერის ოპტიმიზაციის კოლოსალური რაოდენობა, როგორც NVIDIA-ს, ასევე ATI-ს მხრიდან. კომპანიებს აქვთ განსხვავებული მიდგომები და პოლიტიკა იმავე ოპტიმიზაციებთან დაკავშირებით, რომლებიც ზოგჯერ არ არის სრულიად სამართლიანი მომხმარებლებისთვის. თუმცა, ჩვენი სტატია ზუსტად გამიზნულია იმის გასაგებად, თუ რა არის კარგი და რა არის ცუდი ორივე GPU მწარმოებელი კომპანიის მიდგომებში და რა შეუძლია გააუმჯობესოს გამოსახულების ხარისხი დღეს 3D თამაშებში.

რა არის ანტიალიასინგი და რისთვის გამოიყენება?

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

ასე რომ, ანტიალიზაციური - რა არის და რატომ არის საჭირო? უპირველეს ყოვლისა, სიტყვაში „ანტიალიასინგი“ აუცილებელია გამოვყოთ მისი ნაწილი – „ანტი“. ცხადია, რომ სიტყვის ეს ნაწილი გულისხმობს, რომ „ანტიალიასინგის“ ფენომენი მიმართულია რაღაცასთან ბრძოლისკენ. როგორც თქვენ მიხვდით, ჩვენს შემთხვევაში - "ალიასინგით". ამიტომ, ამ მომენტში ჩვენთვის მნიშვნელოვანია ნათლად გავიგოთ, რა არის ყბადაღებული „ალიასინგი“.

პირველ რიგში, თქვენ ნათლად უნდა გესმოდეთ, რომ სურათი, რომელსაც მე და თქვენ ყოველდღე ვხედავთ ჩვენი მონიტორების ეკრანებზე, შედგება ეგრეთ წოდებული მცირე ნაწილაკებისგან, რომლებსაც ჩვეულებრივ პიქსელებს უწოდებენ. კარგი ანალოგია ამ გაგებით არის შაქრიანი ქაღალდის მაგალითი. მონიტორზე გამოსახულება არის იგივე ქაღალდი, მხოლოდ ამ შემთხვევაში ისინი ძალიან, ძალიან მცირეა. თუ ისინი ამბობენ, რომ ეკრანის გარჩევადობა არის 1024x768 32-ბიტიანი ფერით, ეს ნიშნავს, რომ 1024 პიქსელი ჯდება მონიტორზე ჰორიზონტალურად და 768 ვერტიკალურად, უფრო მეტიც, თითოეული პიქსელი შეიძლება შეღებილი იყოს 32-ბიტიან პალიტრაში არსებული ერთი ფერით. ამ დროისთვის, 32-ბიტიანი ფერი არის ის ზღვარი, რისი მიღწევაც შეგვიძლია კომპიუტერის ეკრანზე. კაცობრიობის საუკეთესო გონება (იგივე Carmack) უკვე საუბრობს 64-ბიტიან ფერზე გადასვლის აუცილებლობაზე და მიუთითებს 32-ბიტიან პალიტრის აშკარა მინუსებზე. ოდესღაც, 16-ბიტიდან 32-ბიტიან ფერზე გადასვლისას, ეს საჭიროება საკმაოდ ნათლად იყო გამართლებული და არსებობდა რეალური მიზეზები, რის გამოც ღირდა 32-ბიტიანზე გადასვლა. 64-ბიტიან ფერზე გადასვლა დღეს საკმაოდ გადაჭარბებულია. ისევე, როგორც 16 და 32 ბიტის შემთხვევაში, თავის დროზე მოგიწევთ საკმაოდ დიდი ხნის ლოდინი, სანამ ყველა დონის ამაჩქარებლები შეძლებენ 64-ბიტიანი ფერის დამუშავებას მისაღები სიჩქარით.

სტატიების აბსოლუტური უმრავლესობა, რომლებიც ამა თუ იმ გზით ეხება 3D გამოსახულების აგების პრინციპებს და სადაც საუბარია ანტიალიზაციურობაზე, სავსეა მარტივი, მაგრამ ამავე დროს ყველაზე ეფექტური მაგალითით, რომლის გამოყენებაც შესაძლებელია საკმაოდ კარგად გასაგებად. რა არის ანტიალიზაციური. შეხედეთ გაფართოებულ წარწერას "Upgrade", რომელიც დამზადებულია Word-ში და შემდეგ უბრალოდ გადიდებულია Photoshop-ში. ძალიან კარგად არ გამოიყურება, არა? ასოების გვერდებზე შეგიძლიათ იხილოთ ე.წ სავარცხელი ან, როგორც მას ასევე უწოდებენ, "კიბე". არსებითად, სწორედ ეს "სავარცხელი" ან "კიბე" არის ალიასინგი. კიდევ ერთი მაგალითი შეიძლება წარმოდგენილი იყოს გეომეტრიული ობიექტით, როგორიცაა პირამიდა. იგივე "სავარცხელი" ასევე აშკარად ჩანს მისი კიდეების გასწვრივ. ახლა შეხედეთ იმავე პირამიდის სხვა სურათს, მაგრამ ორჯერ მეტი გარჩევადობით. ის უკვე ბევრად უკეთ გამოიყურება და "სავარცხელი" თითქმის უხილავია. როგორც ზემოთ აღვნიშნეთ, ეს ეფექტი, „სავარცხლის“ დაგლუვება, მიღწეული იქნა იმის გამო, რომ გარჩევადობა 2-ჯერ გავზარდეთ.

Რას ნიშნავს ეს? დავუშვათ, რომ ჩვენ გამოვიყვანეთ პირამიდა 200x200 პიქსელის გარჩევადობით (ზემოთ უკვე დეტალურად განვმარტეთ კითხვა, რა არის პიქსელები და რატომ არის საჭირო ისინი). წერტილების რაოდენობა ვერტიკალურად და ჰორიზონტალურად ზუსტად 2-ჯერ გავზარდეთ, ანუ მივიღეთ სურათი 400 პიქსელი ვერტიკალურად და 400 პიქსელი ჰორიზონტალურად. ეს ასევე ნიშნავს, რომ ჩვენს ობიექტზე პუნქტების რაოდენობა, რომელიც სცენაზე იყო, გაორმაგდა. რა მოახდინა ამან ჩვენი ალიასინგის ეფექტისთვის? ცხადია, ის გახდა მინიმალური, ანუ გათლილი - ბოლოს და ბოლოს, ობიექტის კიდეების გასწვრივ წერტილების რაოდენობაც გაორმაგდა. აქ მთავარია სიტყვა „გათლილი“. ბოლოს და ბოლოს, ანტი-ალიასინგს სხვაგვარად უწოდებენ ანტიალიასირებას, რაც ასახავს ტექნოლოგიის არსს, რომელიც არბილებს ამ "კიბეს" სამგანზომილებიანი ობიექტების კიდეების გასწვრივ.

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

ეს მიღწეული იქნა გამოსახულების ფერების გლუვი გადასვლების წყალობით. ფაქტობრივად, გამოსახულების ვიზუალური გაუმჯობესება ხდება არა გარჩევადობის ფიზიკური ზრდის გამო, არამედ, ასე ვთქვათ, გარჩევადობის ფერის მატების გამო. ამ სტატიაში ჩვენ არ აღვწერთ ამ ქულების გამოთვლის ალგორითმებს და არ ჩავწვდებით მათემატიკური გამოთვლების სიღრმეებს, არამედ ვისაუბრებთ მხოლოდ ასეთი ანტიალიასირების მოქმედების პრინციპზე. ობიექტების საზღვრებზე კიბე ჩანს მხოლოდ იმიტომ, რომ ყველაზე ხშირად სამგანზომილებიანი ობიექტების კიდეები საკმაოდ ძლიერად გამოირჩევიან ფერად დანარჩენი სურათისგან და ჩანს ერთი პიქსელის თხელი ხაზები. ამის კომპენსირება შესაძლებელია რამდენიმე წერტილის განთავსებით ფერებით, რომლებიც გამოითვლება თავად კიდის ფერის მნიშვნელობებით და ამ კიდესთან არსებული წერტილებით. ანუ, თუ ობიექტის კიდე შავია, ფონი კი თეთრი, მაშინ შავი კიდის ხაზის გვერდით დამატებითი წერტილი ნაცრისფერი გახდება. რაც მეტია ეს დამატებითი წერტილები ნებისმიერი 3D ობიექტის კიდესთან, მით უფრო გლუვი იქნება მისი კიდეები და ნაკლებად შესამჩნევი იქნება კიბე. ამ მეთოდს ეწოდება კიდეების ანტიალიასინგი. ვიდეო ბარათის დრაივერში მითითებული ანტიალიასინგის ხარისხი, როგორიცაა: 2x, 4x, 6x, 8x ნიშნავს დამატებითი პიქსელების რაოდენობას, რომლებიც განთავსებულია ხაზის გარშემო, რომელიც საჭიროებს ანტიალიასირებას.

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

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

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

ახლა კი, რომ უკეთ გაიგოთ, რატომ არის საჭირო ფილტრაცია, გადავხედოთ მიმდინარე პროცესებს ლეგენდარული "Quake 3 Arena"-ს მაგალითის გამოყენებით. წარმოიდგინეთ რაიმე სახის დერეფანი მრავალი კვადრატით და სხვადასხვა ორნამენტებით (საბედნიეროდ, Quake 3 Arena-ს ეს საკმარისი აქვს). დერეფნის დასაწყისში ორნამენტი უაღრესად დეტალურია და დერეფნის (ჰორიზონტის) ბოლოსთან უფრო ახლოს ორნამენტის ელემენტები უფრო და უფრო მცირდება, ე.ი. ისინი ნაჩვენებია ნაკლები პიქსელებით. შედეგად, იკარგება ისეთი დეტალები, როგორიცაა ნაკერები ორნამენტის ელემენტებს შორის, რაც, შესაბამისად, იწვევს გამოსახულების ხარისხის გაუარესებას.

პრობლემა ის არის, რომ გრაფიკული ბარათის დრაივერმა არ იცის, ტექსტურაში რომელი დეტალებია მნიშვნელოვანი.

Point Sampling

Point Sampling არის ყველაზე მარტივი გზა პიქსელის ფერის დასადგენად. ეს ალგორითმი დაფუძნებულია ტექსტურის სურათზე: არჩეულია მხოლოდ ერთი ტექსელი, რომელიც ყველაზე ახლოს არის სინათლის ლაქის ცენტრთან და მისგან განისაზღვრება პიქსელის ფერი. ძნელი მისახვედრი არ არის, რომ ეს სრულიად არასწორია. პირველ რიგში, პიქსელის ფერი განისაზღვრება რამდენიმე ტექსელით და ჩვენ მხოლოდ ერთი შევარჩიეთ. მეორეც, სინათლის ლაქის ფორმა შეიძლება შეიცვალოს და ალგორითმი ამას არ ითვალისწინებს. მაგრამ ამაოდ!

In-line შერჩევის მთავარი მინუსი არის ის ფაქტი, რომ როდესაც პოლიგონი ეკრანთან ახლოს მდებარეობს, პიქსელების რაოდენობა მნიშვნელოვნად აღემატება ტექსელს, რის გამოც სურათის ხარისხი მნიშვნელოვნად დაზარალდება. ეგრეთ წოდებული ბლოკირების ეფექტი, როგორც ჩვენ გვჯერა, ბევრს შეეძლო დაენახა ძველ კომპიუტერულ თამაშებში, მაგალითად, იმავე ლეგენდარულ "Doom"-ში.

Point Sampling-ს აქვს უპირატესობა. იმის გამო, რომ პიქსელის ფერის განსაზღვრა ხორციელდება მხოლოდ ერთი ტექსელის გამოყენებით, ეს მეთოდი არ არის კრიტიკული მეხსიერების გამტარუნარიანობისთვის და ეს ავტომატურად აძლევს ამ ფილტრაციის მეთოდს უზარმაზარ სარგებელს იმ თვალსაზრისით, რომ 3D ამაჩქარებლის ძალიან მცირე რესურსი იხარჯება ამ სქემის გამოყენებით ფილტრაციაზე.

ორხაზოვანი ფილტრაცია

Bi-Linear Filtering – ორხაზოვანი ფილტრაცია ინტერპოლაციის ტექნოლოგიის გამოყენების მეთოდის საფუძველზე. საჭირო ტექსელების დასადგენად გამოიყენება სინათლის ლაქის ძირითადი ფორმა, ანუ წრე. ჩვენს წრის მაგალითში ეს უკანასკნელი მიახლოებულია 4 ტექსელით. როგორც ხედავთ, აქ ყველაფერი ოდნავ უკეთესია, ვიდრე Point Sampling. ორმხრივი ფილტრაცია უკვე იყენებს 4 ტექსელს.

გამოსახულება უფრო მაღალი ხარისხისაა, არ არის ბლოკირება, მაგრამ ეკრანთან ახლოს მყოფი პოლიგონები ბუნდოვნად გამოიყურება და ეს გამოწვეულია იმით, რომ ინტერპოლაცია მოითხოვს ტექსელების დიდ რაოდენობას, ვიდრე ხელმისაწვდომი ოთხი.

ბუნდოვანება არავითარ შემთხვევაში არ არის ორმხრივი ფილტრაციის მთავარი პრობლემა. ფაქტია, რომ დაახლოება სწორად ხორციელდება მხოლოდ ეკრანის ან დაკვირვების წერტილის პარალელურად განლაგებულ ობიექტებზე, მაშინ როცა ნებისმიერ კომპიუტერულ თამაშში ობიექტების 99% მდებარეობს დაკვირვების წერტილის არა პარალელურად. აქედან შეგვიძლია დავასკვნათ, რომ ობიექტების 99% არასწორად იქნება მიახლოებული. ავიღოთ, მაგალითად, ჩვენი წრე - მრავალკუთხედი მდებარეობს დაკვირვების წერტილის მიმართ არაპარალელურად, შესაბამისად, უნდა მივუახლოვდეთ ელიფსს, მაგრამ მივახლოებით წრეს, რაც უკიდურესად არასწორია. გარდა ამისა, ბიწრფივი ფილტრაცია ბევრად უფრო მოთხოვნადია მეხსიერების გამტარუნარიანობაზე, რაც, ზოგადად, ლოგიკურია, იმის გათვალისწინებით, რომ ბიწრფივი ფილტრაცია უკვე იყენებს 4 ტექსელს პიქსელის ფერის დასადგენად.

თუ ვიმსჯელებთ ინტერნეტში არსებული ფორუმებისა და სტატიების შესახებ ინფორმაციის მიხედვით, ATI ხრიკებს თამაშობს სამხაზოვანი ტექსტურის ფილტრით ახალ X800 GPU-ზე. თუმცა არიან ისეთებიც, რომლებიც სასტიკად იცავენ ATi-ს. ზოგადად, ასეთი დისკუსიები გვახსენებს ერთი წლის წინ nVidia-სთან დაკავშირებულ სკანდალს.

ასეთი მწვავე დისკუსიის მიზეზი გერმანული ვებ-გვერდის Computerbase-ის სტატია გახდა. მან აჩვენა, თუ როგორ იყენებს ATI ოპტიმიზებულ სამხაზოვანი ტექსტურის ფილტრაციას, რომელსაც ხშირად უწოდებენ "ბრილინურს" ორმხრივი და ტრიწრფივი ფილტრაციის ნარევის გამო, Radeon 9600 და X800 GPU-ებზე. სიახლე მართლაც განსაცვიფრებელი იყო, რადგან ATI ყოველთვის საუბრობდა ჭეშმარიტი სამხაზოვანი ფილტრაციის გამოყენებაზე.

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

იქნება გაგრძელება? შესაძლოა, ვინაიდან Radeon 9600 და X800 ბარათებზე ახლახან აღმოჩენილ ბრილინურ ფილტრაციასთან დაკავშირებით კამათი გრძელდება. ATi-ს უნდა მივაკუთვნოთ ის ფაქტი, რომ ამ ფილტრაციის გამო ბარათების სურათის ხარისხი ვიზუალურად არ ზარალდება. ყოველ შემთხვევაში, ჩვენ არ გვაქვს მაგალითები სხვაგვარად. ჯერჯერობით, ბრილინარული ფილტრაცია ვლინდება ხელოვნურად შექმნილ ლაბორატორიულ პირობებში. ამავდროულად, ATi არ გაძლევთ საშუალებას ჩართოთ აღნიშნული ბარათების სრული ტრიწრფივი ფილტრაცია, იქნება ეს ადაპტური თუ არა. ახალი ფილტრაციის გამო, ტესტებში შესრულების მნიშვნელობები არ აჩვენებს X800-ის სრულ პოტენციალს, რადგან FPS მნიშვნელობები მიიღება ოპტიმიზაციის შემდეგ, რომლის გავლენის სიჩქარეზე ძნელია შეფასება. და სიტყვა "ადაპტური" ტოვებს მწარე გემოს. ATI-მ არ მოგვაწოდა ინფორმაცია იმის შესახებ, თუ როგორ მუშაობს მძღოლი და არაერთხელ განაცხადა, რომ ბარათი გთავაზობთ სრულ სამხაზოვან ფილტრაციას. მხოლოდ ზემოაღნიშნული გამოცხადების შემდეგ ATi-მ აღიარა, რომ ფილტრაცია ოპტიმიზირებული იყო. იმედი ვიქონიოთ, რომ მძღოლში სხვა ადგილებში ასეთი „ადაპტაცია“ არ არის.

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

თითოეული მწარმოებელი თავად წყვეტს რა დონის გამოსახულების ხარისხს უზრუნველყოფს სტანდარტულად. თუმცა, მწარმოებლებმა უნდა დააფიქსირონ ოპტიმიზაცია, რომელსაც იყენებენ, განსაკუთრებით იმ შემთხვევაში, თუ ისინი დამალულია ცნობილი კრიტერიუმებისგან, როგორც ეს ბოლოდროინდელ ATI მაგალითშია. გამოსავალი აშკარაა: მიეცით საშუალება გამორთოთ ოპტიმიზაცია! მაშინ მომხმარებელი შეძლებს თავად გადაწყვიტოს რა არის მისთვის უფრო მნიშვნელოვანი - მეტი FPS თუ უკეთესი ხარისხი. Microsoft-ის არბიტრის იმედიც არ შეიძლება. WHQL ტესტები ბევრ რამეს არ ზომავს და მათი გვერდის ავლით მარტივად შეიძლება: იცით თუ არა სიტყვა „პასუხისმგებლის“ მნიშვნელობა?

ამჟამად ცნობილი ფილტრაციის ოპტიმიზაცია
ATi nVidia
სამხაზოვანი
ოპტიმიზაცია
R9600
X800
GF FX5xxx
(GF 6xxx)*
კუთხოვანი ოპტიმიზაცია
ანიზოტროპული ფილტრაცია
R9xxx
X800
GF 6xxx
ადაპტაციური
ანიზოტროპული ფილტრაცია
R9xxx
X800
GF FX5xxx
GF 6xxx
ეტაპის ოპტიმიზაცია R9xxx
X800
GF FX5xxx
LOD ოპტიმიზაცია R9xxx
X800(?)

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

კატეგორიები

პოპულარული სტატიები

2024 "kingad.ru" - ადამიანის ორგანოების ულტრაბგერითი გამოკვლევა