Язык шейдеров OpenGL поддерживает скалярные, векторные и матричные типы, структуры и массивы; семплеры для текстур; спецификаторы для различных типов данных; конструкторы для инициализации и преобразования типов; операторы управления потоком данных и операторы для выполнения операций над данными, как и языки С и С++.
3.12. Ссылки Определение языка шейдеров OpenGL дается в документе [3].
Грамматика языка шейдеров OpenGL описана в приложении А данной книги. Эти два документа можно использовать для уточнения деталей языка. Дополни3.12. Ссылки тельные учебники, презентации, официальные документы можно найти на вебсайте 3Dlabs.
Функциональность языка шейдеров OpenGL дополнена расширениями. Чтобы получить полное представление о системе поддержки языка шейдеров OpenGL, желательно прочесть спецификации для расширений и спецификацию библиотеки OpenGL. Список книг по OpenGL приведен в конце первой главы.
Язык С подробно рассматривается в распространенном справочнике [2], язык С++ - в справочнике [8]. Доступно и множество других книг по этим двум языкам.
1. 3Dlabs. Веб-сайт компании (http://www.3dLabs.com/support/developer).
2. Kernighan В., Ritchie D. The С Programming Language. 2nd ed. Englewood Cliffs, NJ: Prentice Hall, 1988.
3. Kessenich J., Baldwin D., Rost R. The OpenGL Shading Language, Version 1.051 / 3Dlabs. 2003 (http://www.3dlabs.com/support/developer/ogL2).
4. OpenGL Architecture Review Board: спецификация расширения ARB_vertex_sha-der, реестр расширений OpenGL (http://oss.sgi.com/projects/ogL-sampLe/registry).
5. OpenGL Architecture Review Board: спецификация расширения ARB_f ragmerit_sha-der, реестр расширений OpenGL (http://oss.sgi.com/projects/ogl-sampLe/registry).
6. OpenGL Architecture Review Board: спецификация расширения ARB_shader_ob-jects, реестр расширений OpenGL (http://oss.sgi.com/projects/ogL-sampLe/regis-try).
7. Segal M., Akeley K. The OpenGL Graphics System: A Specification (Version 1.5) / Ed.: Ch. Frazier (v. 1.1), J. Leech (v. 1.2-1.5). 2003 (http://opengl.org).