Несмотря на отмеченные недостатки, описанные шейдеры - хороший пример работы OpenGL-шейдеров, иллюстрирующий некоторые интересные особенности языка шейдеров OpenGL.
6.5. Итоги В этой главе некоторые компоненты языка шейдеров OpenGL, описанные в предыдущих главах, были применены для создания шейдеров, накладывающих на объект шаблон кирпичной стенки. Вершинный шейдер преобразует координаты вершин, передаваемые в модельном пространстве координат, и вычисляет интенсивность освещения в каждой точке. Фрагментный шейдер определяет цвет фрагмента и совмещает его со значением освещения. После этого окончательное значение помещается в буфер кадров. Исходный код этих двух шейдеров обсуждался строчка за строчкой, чтобы читатели хорошо разобрались в том, как все работает. Эти шейдеры - иллюстрация возможностей языка шейдеров OpenGL, они могут использоваться в качестве исходных для дальнейшей работы.
6.6. Ссылки Шейдер кирпичной стенки, приведенный в данной главе, очень похож на один из шейдеров на языке RenderMan, написанный Дарвином Пичи (Darwyn Peachey) в 2002 г. и представленный в книге [2]. Этот и другие шейдеры можно найти на веб6.6. Ссылки
1S1
сайте компании SDlabs, предназначенном для разработчиков. Код OpenGL-щей-даров также доступен.
1, 3Dlabs. Веб-сайт для разработчиков (http://www.3dLabs.corn/support/cleveLoper).
2, Texturing and Modeling: A Procedural Approach. 3rd ed./D. S. Ebert, J. Hart, В. Mark, at al. San Francisco: Morgan Kaufmann Publishers, 2002 (http://www.tex-turingandmodeling.com).
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_ shader, реестр расширений OpenGL (http://oss.sgi.com/projects/ogL-sample/registry).
5, OpenGL Architecture Review Board: спецификация расширения ARB_fragmerit_ shader, реестр расширений OpenGL (http://oss.sgi.com/projects/ogl-sample/registry).
'6. OpenGL Architecture Review Board: спецификация расширения ARB_shader_ objects, реестр расширений OpenGL (http://oss.sgi.com/projects/ogL-sampLe/ registry),