Openglopengl

Openglopengl

OpenGLOpenGL ВъведениеВъведение гл. ас. д-р А. Пенев ИнтернетИнтернет източнициизточници www.opengl.orgwww.opengl.org www.khronos.orgwww.khronos.org www.glprogramming.com/redwww.glprogramming.com/red www.glprogramming.com/bluewww.glprogramming.com/blue nehe.gamedev.netnehe.gamedev.net www.opengl.org.ruwww.opengl.org.ru www.alexander-penev.infowww.alexander-penev.info …… OpenGL - Въведение 2/29 ЛитератураЛитература The Red Book OpenGL - Въведение 3/29 КаквоКакво ее OpenGLOpenGL OpenGLOpenGL == OpenOpen GGraphicraphic LLibraryibrary OpenGLOpenGL ее софтуеренсофтуерен интерфейсинтерфейс (API)(API) къмкъм графичниятграфичният хардуерхардуер OpenGL - Въведение 4/29 ИсторияИстория (1/3)(1/3) 19901990-те –– SiliconSilicon GraphicsGraphics създавасъздава IRISIRIS GLGL;; 19921992 –– IRISIRIS GLGL ставастава основаоснова нана стандартастандарта OpenGLOpenGL 1.0.1.0. ТойТой сесе утвърждаваутвърждава катокато стандартстандарт отот множествомножество водещиводещи софтуернисофтуерни фирми;фирми; 19951995 –– MicrosoftMicrosoft създавасъздава DirectXDirectX ((Direct3DDirect3D));; 19971997 –– OpenGLOpenGL 1.1;1.1; 19981998 –– OpenGLOpenGL 1.2;1.2; 19991999 –– MicrosoftMicrosoft изоставяизоставя OpenGL;OpenGL; 20012001 –– OpenGLOpenGL 1.3;1.3; 20022002 –– OpenGLOpenGL 1.4;1.4; 20032003 –– OpenGLOpenGL 1.5;1.5; OpenGL - Въведение 5/29 ИсторияИстория (2/3)(2/3) 20042004 –– OpenGLOpenGL 2.02.0 ии OpenGLOpenGL ShadingShading LanguageLanguage 1.10;1.10; 20062006 –– OpenGLOpenGL 2.12.1 ии GLSLGLSL 1.20;1.20; 20062006 –– СъздаваСъздава сесе KhronosKhronos Group;Group; 20082008 –– OpenGLOpenGL 3.03.0 ии GLSLGLSL 1.30;1.30; DeprecationDeprecation Model;Model; 20092009 –– OpenGLOpenGL 3.13.1 ии GLSLGLSL 1.40;1.40; 20092009 –– OpenGLOpenGL 3.23.2 (Core(Core ии Compatibility),Compatibility), GLSLGLSL 1.50;1.50; 20092009 –– ИзлизаИзлиза OpenCL;OpenCL; 20102010 –– OpenGLOpenGL 3.33.3 ии GLSLGLSL 3.30;3.30; ЕдновременноЕдновременно сс товатова излизаизлиза OpenGLOpenGL 4.04.0 ии GLSLGLSL 4.00;4.00; 20102010 –– OpenGLOpenGL 4.14.1 ии GLSLGLSL 4.10;4.10; 20112011 –– OpenGLOpenGL 4.24.2 ии GLSLGLSL 4.20;4.20; OpenGL - Въведение 6/29 ИсторияИстория (3/3)(3/3) 20122012 –– OpenGLOpenGL 4.34.3 ии GLSLGLSL 4.30;4.30; 20132013 –– OpenGLOpenGL 4.44.4 ии GLSLGLSL 4.40;4.40; 20142014 –– OpenGLOpenGL 4.54.5 ии GLSLGLSL 4.50;4.50; 20162016 –– ИзлизаИзлиза VulkanVulkan.. OpenGL - Въведение 7/29 ХарактеристикиХарактеристики Индустриален стандарт; Стабилност; Съвместимост – предишни версии; Надеждност и Преносимост – визуален резултат независимо от операционната система; Скалируемост – от мобилни и PC до суперкомпютри; Лекота на използване – функциите му са с лесен за разбиране интерфейс; Разширяемост – механизъм за разширения възможност за бързо въвеждане на новия хардуер в употреба; Добре документиран. OpenGL - Въведение 8/29 БиблиотекиБиблиотеки ии реализацияреализация ОсновнатаОсновната библиотекабиблиотека нана OpenGLOpenGL имаима десеткидесетки реализацииреализации заза различниразлични платформиплатформи ии графиченграфичен хардуерхардуер OSOS –– Windows,Windows, UNIX,UNIX, MacMac OS,OS, iOS,iOS, LinuxLinux,, Android,Android, OS/2,OS/2, OPENStep,OPENStep, BeOS,BeOS, ии дрдр..;; BindingsBindings –– C,C, C++,C++, C#,C#, Delphi,Delphi, JavaJava,, FortranFortran,, Ada,Ada, Python,Python, Perl,Perl, JavaScriptJavaScript ии многомного др.др. КактоКакто комерсиални,комерсиални, такатака ии сс отворенотворен код.код. OpenGL - Въведение 9/29 ПродуктиПродукти 3DS3DS MaxMax;; MayaMaya;; GoogleGoogle SketchUpSketchUp;; ИИ многомного AdobeAdobe AfterAfter Effects;Effects; други.други. CharacterCharacter StudioStudio;; GoogleGoogle EarthEarth;; VRML;VRML; OpenGL - Въведение 10/29 ИгриИгри Doom3Doom3;; CounterCounter Strike;Strike; CallCall OfOf DutyDuty;; ChessChess CommanderCommander;; QuakeQuake;; HalfHalf LifeLife;; SecondSecond LifeLife;; HomeworldHomeworld;; UnrealUnreal;; IL-2IL-2 SturmovikSturmovik;; AngryAngry Birds;Birds; JediJedi KnightKnight IIII;; ии много,много, многомного другидруги MedalMedal ofof HonorHonor;; OpenGL - Въведение 11/29 БиблиотекиБиблиотеки заза ЕПЕП CC –– gl.h,gl.h, MesaMesa 3D,3D, OpenOpen InventorInventor,, OpenOpen SceneScene GraphGraph,, OpenGLOpenGL PerformerPerformer;; C#C# –– TheThe OpenOpen ToolkitToolkit (OpenTK),(OpenTK), TaoTao Framework,Framework, CsGLCsGL,, GLSharpGLSharp;; JavaJava –– JOGLJOGL,, OpenGLOpenGL forfor JavaJava (GL4Java),(GL4Java), jGL;jGL; DelphiDelphi –– GLSceneGLScene,, dglOpenGL;dglOpenGL; FortranFortran –– F90GL;F90GL; PerlPerl –– POGL,POGL, PerlPerl OpenGLOpenGL Bindings;Bindings; PythonPython –– PyOpenGL,PyOpenGL, PyGlut;PyGlut; JavaScriptJavaScript –– WebGL/HTML5;WebGL/HTML5; ии многомного другидруги.. OpenGL - Въведение 12/29 НадстройкиНадстройки OpenGLOpenGL UtilityUtility (GLU)(GLU);; OpenGLOpenGL UtilityUtility ToolkitToolkit (GLUT)(GLUT);; OpenGLOpenGL AuxiliaryAuxiliary LibraryLibrary (GLAUX)(GLAUX);; OpenGLOpenGL UserUser InterfaceInterface LibraryLibrary (GLUI)(GLUI);; GLTT,GLTT, FTGL;FTGL; OpenGLOpenGL EasyEasy ExtensionExtension LibraryLibrary (GLEE);(GLEE); OpenOpen InventorInventor;; GLX,GLX, WGL,WGL, CGL;CGL; OpenGL - Въведение 13/29 ОперационниОперационни средисреди Windows Приложение UNIX Приложение GLU GLU GDU WGL OpenGL XLib GLX OpenGL OpenGL - Въведение 14/29 СродниСродни СтандартиСтандарти OpenGL - Въведение 15/29 ОсновниОсновни възможностивъзможности (1/2)(1/2) Създаване на растерни изображения; Създаване на изображения изградени от графични примитиви като точки, отсечки, начупени линии, многоъгълници, триъгълници и други. Създаване на изображения на пространствени сцени, описани чрез схемите “гранично представяне” или “реброви модел”; Именуване на примитив или група от примитиви; Дефиниране на символи (Lists); Смяна на координатната система; Координатни преобразувания – транслация, ротация, мащабиране, огледално отражение и др.; Дефиниране на преливащи се цветове и прозрачност; Налагане на текстури върху телата; Дефиниране на различни материали за телата; OpenGL - Въведение 16/29 ОсновниОсновни възможностивъзможности (2/2)(2/2) Отрязване спрямо равнини; Използване на маски; Премахване на скритите повърхности; Използване на различни светлинни източници; Визуализация на реалистични изображения; Реализация на специални ефекти като мъгла, прозрачност и др.; Използване на сплайн криви и повърхнини; Изглаждане – премахване на стълбищтния ефект (anti-aliasing); и др. OpenGL - Въведение 17/29 МашинаМашина съссъс СъстоянияСъстояния (1/2)(1/2) РазглежданРазглеждан катокато виртуалнавиртуална машина,машина, OpenGLOpenGL можеможе дада бъдебъде определенопределен катокато машинамашина съссъс състояниясъстояния,, работещаработеща вв диалоговдиалогов ((клиент-сървърклиент-сървър)) режим.режим. ТоваТова означава,означава, чече нене изпълняваизпълнява програми,програми, аа всякавсяка постъпилапостъпила командакоманда сесе изпълняваизпълнява незабавно,незабавно, следслед коетокоето сесе очакваочаква постъпванетопостъпването нана нованова команда.команда. НачинътНачинът нана изпълнениеизпълнение нана командатакомандата сесе определяопределя от:от: Командата;Командата; ПараметритеПараметрите нана командата;командата; ВътрешнотоВътрешното състояниесъстояние нана машината.машината. OpenGL - Въведение 18/29 МашинаМашина съссъс СъстоянияСъстояния (2/2)(2/2) ЗаЗа дада сесе изясниизясни начинът,начинът, попо койтокойто можеможе дада сесе използваизползва виртуалнатавиртуалната машинамашина ее необходимонеобходимо тятя дада бъдебъде обсъденаобсъдена вв следнитеследните четиричетири аспектааспекта:: Данни;Данни; Състояния;Състояния; Операции;Операции; НачинНачин нана функциониране.функциониране. OpenGL - Въведение 19/29 ДанниДанни ПредставянетоПредставянето нана даннитеданните отот числовчислов типтип трябватрябва дада следваследва синтаксисасинтаксиса нана езикаезика нана програмиранепрограмиране,, вв койтокойто сесе използваизползва библиотекатабиблиотеката нана OpenGL.OpenGL. Видове:Видове: Вектор – наредена четворка от еднотипни числа, интерпретирана като хомогенни координати на вектор; Точка – наредена четворка от еднотипни числа, интерпретирана като хомогенни координати на точка; Матрица – наредена 16-торка от еднотипни числа, интерпретирана като числова 4x4 матрица, линеаризирана по редове; Цвят – наредена четворка от еднотипни числа, интерпретирана като описание на цвят в стандарта RGBA. OpenGL - Въведение 20/29 СистемниСистемни СъстоянияСъстояния ЛогическиЛогически ((GLGL__TRUETRUE ии GL_GL_ FALSEFALSE));; ЧисловЧислов –– цялцял илиили реаленреален;; ИменаИмена;; МатрициМатрици;; СтековеСтекове отот именаимена илиили матрициматрици;; ТаблицаТаблица отот списъксписък отот команди;команди; ТаблицаТаблица отот записизаписи;; Буфери;Буфери; ии други;други; OpenGL - Въведение 21/29 ВекторВектор нана СъстояниятаСъстоянията Режими Стекове Системни стек 1 и C U 2 ограничения Флагове X P T 1 Буфери Резултати OpenGL Команда и параметри Процесор Вектори Таблици Цвят glColor… 1 0 0 1 glVertex… Нормален вектор 2 3.7 1 Изобразяване OpenGL - Въведение 22/29 ОперацииОперации Като виртуална машина може да изпълнява фиксирано количество от операции. Всяка от операциите се описва посредством команда, реализирана като оператор за изпълнение на процедура или функция в програмната среда на съответната библиотека. ВсякаВсяка командакоманда описваописва:: Операцията, която трябва да се изпълни; Библиотеката, в която е реализирана указаната операция; Броят на предаваните параметри; Типът на предаваните

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    29 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us