მიშა Posted November 20, 2010 Share Posted November 20, 2010 დღეს $#^#(|დები გაგარკვიოთ OpenGL-ის არსში... 1. ზოგადი ცნობები OpenGL, ანუ Open Graphics Library არის მრავალ ენასთან და პლატფორმასთან თავსებადი API (Application Proggraming Interface - პროგრამების პროგრამირების ინტერფეისი), რომელიც 2D და 3D კომპიუტერული გრაფიკის შესაქმნელად გამოიყენება. ეს ინტერფეისი შეიცავს 250-მდე ფუნქციას, რომელთაც გამოყენებით მარტივი მდგენელებისგან (წერტილი, ხაზი, სიბრტყე და ა.შ., გეომეტრიაში ჩახედულ ხალხს ეცოდინება ) იქმნება რთული სამგანზომილებიანი გამოსახულება. OpenGL 1992 წელს შექმნა Silicon Graphics Incorporated (SGI)-მა და იგი ფართოდ გამოიყენება როგორც CAD პროგრამებში, ასევე ვირტუალური რეალობის შესაქმნელად და რაღათქმაუნდა თამაშებშიც, სადაც Direct3D-ს დაუძინებელ მტრადაა ქცეული . 2. ისტორია ყველაფერი 80-იან წლების ბოლოს დაიწყო, როდესაც ცხადი გახდა, რომ კომპიუტერი უფრო და უფრო შემოდიოდა ყოველდღიურ ცხოვრებაში. ამ დროისთვის ზემოხსენებული Silicon Graphics Incorporated (SGI) 3D-გრაფიკული კომპიუტერების (ე.წ. 3D-Workstation, ზუსტ ქართულ თარგმანზე თქვენ იფიქრეთ ) წარმოების ლიდერი იყო. მაგრამ, როგორც დიდი ოსტაპ ბენდერი იტყოდა, SGI-ს გამოუჩნდა რამდენიმე "Конкурирующая фирма" - HP, IBM და Sun Microsystems, ასე რომ ჩვენი SGI დადგა მონოპოლიის დაკარგვის საკმაოდ რეალური და უსიამოვნო საფრთხის წინაშე. ამიტომ კომპანიის ინჟინრებმა გადაწყვიტეს მათი პროგრამირების პაკეტი (API) "IrisGL" გადაექციათ ყველასთვის ხელმისაწვდომ პაკეტად. სწორედ ასე შეიქმნა OpenGL. კომპანიისთვის სამწუხაროდ მალე Microsoft-მა გამოუშვა თქვენთვის უკვე კარგად ნაცნობი DirectX-ის განუყოფელი ნაწილი - Direct3D და OpenGL ისევ საფრთხის წინაშე დადგა. ამიტომ 1997 წელს გონიერმა მენეჯერმა Microsoft-თან გააფრომა კონტრაქტი სახელწოდებით "Fahrenheit", რომლის წყალობით ბაზარზე OpenGL და Direct3D მშვიდობით თანაარსებობდნენ 1 წლის მანძილზე. შემდეგ კი პროექტი ჩავარდა და ახლა ეს ორი API ერთმანეთის დაუძინებელი მტერია 3. აგებულება OpenGL ორ მთავარ ფუნქციას ემსახურება: 1. სხვადასხვა 3D აქსელერატორებს შორის განსხვავების გამო შექმნილი სირთულეების გაბათილება; 2. კომპიუტერულ პლატფორმებს შორის განსხვავების აღმოფხვრა. OpenGL, როგორც უკვე აღვნიშნე, წერტილებისგან, ხაზებისგან და მრავალკუთხევებისგან შემდგარ სივრცულ გამოსახულებას გადაამუშავებს და ქმნის პიქსელებისგან შემდგარ გამოსახულებას. ეს გრაფიკული ბირთვის, "OpenGL state machine"-ის მეშვეობით ხდება. იმისთვის, რომ თავისი საქმე შეასრულოს, პროგრამისტმა OpenGL-ს დაწვრილებით უნდა მიუთითოს მთელი შესასრულებელი ოპერაციები. ეს განასხვავებს OGL-ს სხვა API-სგან, რომლებშიც ბიბლიოთეკის მენეჯერი (library manager) თავად ახდენს სარენდერო გამოსახულების გადამუშავებას და პროგრამისტს მხოლოდ რამდენიმე მითითების მიცემა ესაჭიროება. ამიტომ OGL-ის პროგრამისტი გამოცდილი ძია უნდა იყოს . ქვემოთა სურათზე კი თქვენ ხედავთ OGL-ის "Pipeline"-ს მუშაობის გამარტივებულ სქემას: შენიშვნა: "სია"-ზე ეწერა "Display List". ვიმტვრიე თავი და ვერ მივხვდი რა იყო 4. მოქმედების მაგალითი ამ მაგალითში გიჩვენებთ, თუ როგორ შეიძლება OpenGL-ის მეშვეობით მწვანე კვადრატის შექმნა. ბრძანება "glClear" ასუფთავებს ბუფერს, ასე რომ ოთხკუთხედი სუფთა ეკრანზე დაიხატება. მოცემული ბრძანებების საშუალებით გამოსახულება პერსპექტიული იქნება, ანუ უფრო რეალისტური. ამასთან ერთად შეიქმნება მატრიცა, რომელიც ხედვის არეს გვიჩვენებს. შემდეგი ბრძანებები შეიცავს ხედვის არისა და მოდელის მატრიცებს, ამასთან ერთად განისაზღვრება კამერისა და მოდელის კოორდინატების ურთიერთდამოკიდებულება. ამ ბრძანების მეშვეობით კი მწვანე კვადრატი დაიხაზება XY სივრცეში. რათქმაუნდა ამ ყველაფრის დასაწერად და გასააზრებლად საჭირო ცოდნა მე არ გამაჩნია, ამიტომ დიდი მადლობა ვიკიპედიას 5. დოკუმენტაცია წინა ნაწილში წაკითხულის შემდეგ ალბათ გაგიჩნდებოდათ კითხვა, ასეთი რთული პროგრამა როგორ არის ასეთი პოპულარული... ეს ნაწილობრივ კარგი სახელმძღვანელოების დამსახურებაა. სახელმძღვანელოებია: The Red Book – OpenGL Programming Guide, 6th edition. ISBN 0-321-48100-3. ეს OGL-ის "ანბანია". The Blue Book – OpenGL Reference manual, 4th edition. ISBN 0-321-17383-X. სახელმძღვანელო ცოტა უფრო "განვითარებული" პროგრამისტებისთვის. The Green Book – OpenGL Programming for the X Window System. ISBN 0-201-48359-9. სახელმძღვანელო, სადაც ყოვლისშემძლე ზეარსებები გვასწავლიან, თუ როგორ გამოვიყენოთ "X11" ინტერფეისი და "GLUT"-ი (დამატებითი ბიბლიოთეკა). The Alpha Book – OpenGL Programming for Windows 95 and Windows NT. ISBN 0-201-40709-4. მგონი ყველაფერს თავადვე მიხვდით. ერთადერთი, რასაც დავძენ ისაა, რომ ამ სახელმძღვანელოს თეთრი ყდა აქვს... The Orange Book – OpenGL Shading Language, 2nd edition. ISBN 0-321-33489-2. სახელმძღვანელო OpenGL 2.0-ისთვის. ----------------------------------------------------------------------------------------------------------------------- ეს არის თქვენი OpenGL, რომელიც საკმაოდ რთული მოსახმარია და თქვენთვის საერთოდ არაა გამიზნული, მაგრამ მაინც რატომღაც გადავწყვიტე დამეწერა მასზე (ჩემდა ჭირად) და ახლა თავი მისკდება... თუ თქვენც გისკდებათ თავი რამე წამალი დალიეთ... თუ წამალი არ გაქვთ, მაშინ წადით აფთიაქში და იყიდეთ, ან მოდით ჩემთან და მე დაგალევინებთ... 6 Quote Link to comment Share on other sites More sharing options...
Beka_Tchighladze Posted January 12, 2014 Share Posted January 12, 2014 ბოლობოლო მივაღწიე მიკიპესიამდეც გადავწყვიტე კვირაში ერთი თემა მაინც დავამუშაო საშუალოდ საგოლ მომეწონა კარგია ძლივს გავიგერ რა ყოფილა ეს OpenGL Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.