შინაარსზე გადასვლა

OpenGL

Checked
მასალა ვიკიპედიიდან — თავისუფალი ენციკლოპედია
OpenGL
OpenGL-ის ლოგო
ავტორი Silicon Graphics
მწარმოებელი Khronos Group
გამოვიდა 1992 წლის იანვარი
ბოლო გამოშვება 4.5 / 11 აგვისტო, 2014
პროგრამირების ენა C[1]
ოს მულტიპლატფორმული
პლატფორმა მულტიპლატფორმული
ჟანრი 3D გრაფიკის API
ლიცენზია სხვადასხვა[2]
საიტი opengl.org
Linux-ის ბირთვის და OpenGL-ზე დაფუძნებული ვიდეო თამაშების ურთიერთკავშირის ილუსტრაცია. ვიდეო თამაში უთანხმებს რეალურ დროში გამოსახვის გამოთვლებს გრაფიკულ პროცესორს OpenGL-ის მეშვეობით. იმის მაგივრად, რომ გამოსახვის შედეგები გაიგზავნოს უკან, მთავარ მეხსიერებაში, ხდება კადრის ბუფერის გაგზავნა ვიდეო მეხსიერებაში. შემდეგ კი დისპლეი კონტროლერი აგზავნის ამ მონაცემებს დისპლეიზე.

OpenGL (Open Graphics Library) — მულტიენობრივი, მულტიპლატფორმული აპლიკაციის პროგრამირების ინტერფეისი (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.

დაკავშირებული სტატიები

[რედაქტირება | წყაროს რედაქტირება]

რესურსები ინტერნეტში

[რედაქტირება | წყაროს რედაქტირება]
  1. Lextrait, Vincent. (January 2010) The Programming Languages Beacon, v10.0. ციტირების თარიღი: March 14, 2010.
  2. Products: Software: OpenGL: Licensing and Logos. SGI. ციტირების თარიღი: November 7, 2012.
  3. „Members of Fahrenheit. 1998“. Computergram International. 1998. დაარქივებულია ორიგინალიდან — 2008-01-15. ციტირების თარიღი: 2016-11-25.
  4. End of Fahrenheit.
  5. OpenGL ARB to pass control of OpenGL specification to Khronos Group, Khronos press release
  6. OpenGL ARB to Pass Control of OpenGL Specification to Khronos Group, AccessMyLibrary Archive