OpenGL
OpenGL (Open Graphics Library) — მულტიენობრივი, მულტიპლატფორმული აპლიკაციის პროგრამირების ინტერფეისი (API), რომელიც გამოიყენება ორგანზომილებიანი და სამგანზომილებიანი ვექტორული გრაფიკის გამოსახვისთვის. როგორც წესი, იგი გამოიყენება გრაფიკულ პროცესორთან ურთიერთქმედებისთვის, გამოსახვის აპარატურულად აჩქარების მისაღწევად.
OpenGL | |
---|---|
ავტორი | Silicon Graphics |
მწარმოებელი | Khronos Group |
გამოვიდა | 1992 წლის იანვარი |
ბოლო გამოშვება | 4.5 / 11 აგვისტო, 2014 |
პროგრამირების ენა | C[1] |
ოს | მულტიპლატფორმული |
პლატფორმა | მულტიპლატფორმული |
ჟანრი | 3D გრაფიკის API |
ლიცენზია | სხვადასხვა[2] |
საიტი | opengl.org |
ინტერფეისი აერთიანებს დაახლოებით 250 განსხვავებულ ფუნქცას, რომლებიც გამოიყენება რთული სამგანზომილებიანი სცენების გამოსახვისთვის. ის პოპულარულია მისი სიმარტივის, მოხერხებულობის, მოქნილობის და იმის გამო, რომ ყველა პლატფორმაზე მუშაობს. ეს ბიბლიოთეკა პოპულარულია ვიდეო თამაშებში; შესაბამისად, ის კონკურენციაშია Microsoft-ის Direct3D-სთან, რომელიც Microsoft Windows-ში ჩაშენებული DirectX-ის კომპონენტია. ის, ასევე, ბევრ სამეცნიერო აპლიკაციაშია გამოკენებული. მისი ერთ-ერთი ვარიანტი, OpenGL ES, სპეციალურად გათვლილია აპლიკაციებისთვის, რომლებიც გამოიყენება მობილურ ტელეფონებში, ჯიბის კომპიუტერებში და სხვა ჩაშენებულ სისტემებში (embedded system).
ისტორია
რედაქტირებამისი მახასიათებლები და განვითარება წარმოდგენილია Silicon Graphics-ის (შემოკლებით SGI) გუნდის მიერ. ამ გუნდში იყენებენ ცნობილ ბუი ტუონგ ფონგის ჩრდილების ალგორითმს.საჭიროებს წყაროს მითითებას - თარიღი არ არის მითითებული! გამოიყენებთ {{subst:ფაქტიჩა}} ! პროექტ Fahrenheit-ის ფარგლებში, რომელიც Microsoft-ის და SGI-ს ინიციატივით ხორციელდებოდა 1997 წელს, შეეცადნენ, გაეერთიანებინათ OpenGL და Direct3D. 1998 წელს პროექტს Hewlett-Packard-იც შეუერთდა.[3] თავიდან პროექტს თითქოს ჰქონდა პერსპექტივა, მოეწესრიგებინა მსოფლიოს ინტერაქტიული 3D კომპიუტერული გრაფიკის API-ები, თუმცა SGI-ში ფინანსური სახსრების უქონლობის, Microsoft-ში სტრატეგიული მიზეზების გამო და ინდუსტრიის მხარდაჭერის ნაკლებობის გამო, 1999 წელს პროექტი შეჩერდა.[4]
OpenGL-ის სპეციფიკაციას თვალყურს ადევნებს ARB (Architecture Review Board), რომელიც ჩამოყალიბდა 1992 წელს. ARB-ში შედიან ისეთი ორგანიწაციები, რომლებიც დაინტერესებულნი არიან API-ების შექმნითა და განვითარებით. 2002 წლის ივნისის ინფორმაციით, OpenGL-ის ოფიციალური საიტის მიხედვით, 3Dlabs, Apple, ATI, Dell, Evans & Sutherland, Hewlett-Packard, IBM, Intel, Matrox, nVidia, SGI და Sun Microsystems არიან ხმის მიმცემი წევრები. Microsoft, ერთ-ერთი დამაარსებელი წევრი, 2003 წლის მარტს გავიდა წევრებიდან.
2006 წლის ივლისში ARB-მა ხმა მისცა, რომ OpenGL API სპეციფიკაციის კონტროლი გადაცემულიყო Khronos Group-ზე, რომელიც უკვე დაკავებული იყო OpenGL-ის სხვადასხვა სპეციფიკაციების შედგენით, რომლებიც განკუთვნილი იყო მობილურის აპლიკაციებისთვის და ვიდეოთამაშებისთვის. ეს გადაწყვეტილება SIGGRAPH-ის 31-ე კონფერენციის დროს, გამოცხადდა. გადაწკვეტილება საბოლოოდ აღსრულდა 2006 წლის ბოლოს.[5][6]
გაფართოებები
რედაქტირებაOpenGL-ის სტანდარტი, ახალი ტექნოლოგიების გამოჩენასთან ერთად, ინდივიდუალურ მწარმოებლებს საშუალებას აძლევს, დაამატონ ფუნქციები ბიბლიოთეკაში გაფართოების მექანიზმის გავლით. გაფართოება გაყოფილია 2 ნაწილად: სასათაურო ფაილი, რომელშიც მდებარეობს ახალი ფუნქციების და მუდმივების
პროტოტიპები და ასევე მოწყობილობის დრაივერები. ორივე მათგანს აქვს აბრევიატურები, რომლებიც გამოიყენება, როგორც სახელები ახალი ფუნქციებისთვის და მუდმივებისათვის. მაგალითად, NVIDIA-ს აბრევიატურა NV გამოიყენება glCombinerParameterfvNV()
ფუნქციის და მისი მუდმივის, GL_NORMAL_MAP_NV
-ის განსასაზღვრად. შესაძლებელია, განსაზღვრულ გაფართოებას რამდენიმე მწარმოებელმა გაუკეთოს რეალიზაცია; ამ შემთხვევაში გამოიყენება აბრევიატურა EXT. ასევე შესაძლებელია, რომ ARB-მ ოფიციალურად გამოაცხადოს რომელიმე გაფართოება; ამ შემთხვევაში ეს უკანასკნელი შეიცვლება სტანდარტით და აბრევიატურა ARB გამოიყენება. ARB-ის პირველი გაფართოება იყო GL_ARB.
ბიბლიოთეკები
რედაქტირებარამდენიმე ბიბლიოთეკა განვითარდა OpenGL-იდან იმისთვის, რომ უფრო მეტი ფუნქცია ჰქონოდა, რაც თავად OpenGL-ს არ ჰქონდა. ეს ბიბლიოთეკებია:
იმპლემენტაციები
რედაქტირებაარსებობს რამდენიმე იმპლემენტაცია Windows-ისთვის Unix-ისთვის და macOS-ისთვის. ეს იმპლემენტაცია, ძირითადად, შედგენილია გრაფიკის მწარმოებლების მიერ. აგრეთვე, არსებობს ამ ბიბლიოთეკის ღია და თავისუფალი იმპლემენტაცია, სახელად Mesa, რომელიც შეიქმნა 1993 წელს ბრაიან პოლის მიერ და იყენებს იგივე API-ს, რაც საშუალებას იძლევა:
- ხშირ შემთხვევაში თავიდან ავიცილოთ OpenGL-ის ლიცენზირებასთან დაკავშირებული პრობლემები
- გამოვიყენოთ OpenGL-ის აპლიკაციები X ტერმინალზე, რომელიც ძირითადად უხარისხოა (ჩვენება საშინელია, მაგრამ ზოგჯერ სჯობს, გამოვიყენოთ თუ ანიმაციების გამოყენება ამ მომენტში არ გვესაჭირეობა).
Mesa საშუალებას იძლევა, გამოვიყენოთ OpenGL ჩვეულებრივ X Window System-ზე. ის, ზოგჯერ, არ გვაძლევს 3D გამოსახვის საშუალებას; თუმცა, ამის მიუხედავად, შეგვიძლია გამოვიყენოთ ის მარტივი ფორმებისა და მრავალკუთხედების გამოსახვისთვის.
OpenGL-ის ინტერესი SGI-ის მიმართ:
რედაქტირებაSGI ყოველთვის ასაჯაროებს GL-ის ვერსიას N-1, GL-ის განსაზღვრულ ბიბლიოთეკას. მარკეტინგის ეს მეთოდი:
- ამცირებს კონკურენციას (OpenGL თავისუფალი და ღიაა; ასე რომ ახლის შექმნის მიზეზი, პრაქტიკულად, არ არსებობს).
- ამცირებს OpenGL-ის მოდიფიკაციიების რაოდენობას (ის ისედაც მოდიფიცირდება შემდეგ ვერსიაში).
- SGI სტანციებს აძლევს მეტ უპირატესობას, რადგან GL-ს გააჩნია უპირატესობები OpenGL-თან შედარებით.
გამოყენება
რედაქტირებაზოგიერთი პროგრამა იყენებს OpenGL-ს მისი ინტერფეისის გამოსახვისთვის. ასეთებია: Google Earth, Blender, X11 და ა.შ..
ბიბლიოგრაფია
რედაქტირება- OpenGL 2.0: ოფიციალური გიდი, ჯეკ ნეიდენი, მეისონ ვუ, ტომ დეივისი, დეივ შრეინერი, ვერონიკ კამპილო, 2006, კამპუსპრეს, ISBN 978-2-7440-2086-5.
- OpenGL პროგრამების ოფიციალური გიდი „როგორ ვისწავლოთ OpenGL“, ვერსია 2, დეივ შრეინერი, მეისონ ვუ, ჯეკ ნეიდენი, 2005, ედისონ-უელსი, ISBN 978-0-321-33573-9.
- OpenGL აღწერა, რიჩარდ ს, ბენჟამენ ლიპჩაკ, 2004, სამს, ISBN 978-0-672-32601-1.
- OpenGL თამაშების პროგრამირების დასაწყისი, დეივ ესტილ, კევინ ჰაუკინ, 2004, ტექნოლოგიის კურსი, ISBN 1-59200-369-9.
დაკავშირებული სტატიები
რედაქტირებარესურსები ინტერნეტში
რედაქტირება- (ინგლისური) OpenGL.org დაარქივებული 2011-02-26 საიტზე Wayback Machine. , OpenGL-ის ოფიციალური ვებ გვერდი.
- (ინგლისური) GLUT დაარქივებული 2011-01-03 საიტზე Wayback Machine.
- (ინგლისური) Mesa 3D, თავისუფალი დანერგვა
- (ინგლისური) freeglut, Gluit-ის თავისუფალი დანერგვა
- (ინგლისური) NeHe's OpenGL tutorials, დამწყებთათვის A-დან Z-მდე.
- (ფრანგული) OpenGL Nehe[მკვდარი ბმული], ფრანგული თარგმანი
- (ფრანგული) FAQ OpenGL, ფორუმი
- (ფრანგული) LinuxGraphic.org დაარქივებული 2007-06-03 საიტზე Wayback Machine. ახსნა-განმარტება ფრანგულად.
- (ფრანგული) GL in French დაარქივებული 2007-04-05 საიტზე Wayback Machine. , კურსები ფრანგულად.
სქოლიო
რედაქტირება- ↑ Lextrait, Vincent. (January 2010) The Programming Languages Beacon, v10.0. ციტირების თარიღი: March 14, 2010.
- ↑ Products: Software: OpenGL: Licensing and Logos. SGI. ციტირების თარიღი: November 7, 2012.
- ↑ „Members of Fahrenheit. 1998“. Computergram International. 1998. დაარქივებულია ორიგინალიდან — 2008-01-15. ციტირების თარიღი: 2016-11-25.
- ↑ End of Fahrenheit.
- ↑ OpenGL ARB to pass control of OpenGL specification to Khronos Group, Khronos press release
- ↑ OpenGL ARB to Pass Control of OpenGL Specification to Khronos Group, AccessMyLibrary Archive