OpenGL
OpenGL | |
---|---|
![]() | |
ავტორი | Silicon Graphics |
მწარმოებელი | Khronos Group |
გამოვიდა | 1992 წლის იანვარი |
ბოლო გამოშვება | 4.5 / 11 აგვისტო, 2014 |
პროგრამირების ენა | C[1] |
ოს | მულტიპლატფორმული |
პლატფორმა | მულტიპლატფორმული |
ჟანრი | 3D გრაფიკისAPI |
ლიცენზია | სხვადასხვა[2] |
საიტი | opengl.org |
![](https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Linux_kernel_and_OpenGL_video_games.svg/300px-Linux_kernel_and_OpenGL_video_games.svg.png)
OpenGL(OpenGraphicsLibrary) — მულტიენობრივი, მულტიპლატფორმულიაპლიკაციის პროგრამირების ინტერფეისი(API), რომელიც გამოიყენება ორგანზომილებიანი და სამგანზომილებიანივექტორული გრაფიკისგამოსახვისთვის. როგორც წესი, იგი გამოიყენებაგრაფიკულ პროცესორთანურთიერთქმედებისთვის, გამოსახვის აპარატურულად აჩქარების მისაღწევად.
ინტერფეისი აერთიანებს დაახლოებით 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