3. Kessenich J., Baldwin D., Rost R. The OpenGL Shading Language, Version 1.051/ 3Dlabs. 2003 (http://www.3dLabs.com/support/developer/ogl2).

i Neider J., Davis Т., Woo M. OpenGL Programming Guide. 3rd ed. Reading, MS: Addison-Wesley, 1999.

5. OpenGL Reference Manual. 3rd ed. Reading, MS: Addison-Wesley, 1999.

6. OpenGL Architecture Review Board: спецификация расширения ARB_vertex_sha-der, реестр расширений OpenGL (http://oss.sgi.com/projects/ogl-sample/registry).

7. OpenGL Architecture Review Board: спецификация расширения ARßjf ragment_sha -der, реестр расширений OpenGL (http://oss.sgi.com/projects/ogl-sample/registry).

8. OpenGL Architecture Review Board: спецификация расширения ARB_shader_ob-jects, реестр расширений OpenGL (http://oss.sgi.com/projects/ogl-sample/registry).

9. 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).

Разработка шейдера В момент написания этой книги инструменты для разработки программ на языке шейдеров OpenGL находились в процессе становления. И хотя некоторые инструменты уже существуют (например, RenderMonkey от ATI), в них нет средств для отладки или профилирования. Ожидается, что скоро эта ситуация изменится, так как производители аппаратного и программного обеспечения создают новые инструментальные средства для разработки шейдеров.

В этой главе представлены некоторые мысли о процессе разработки шейдеров и описаны инструментальные средства, доступные в данный момент. Обсуждаются как общие приемы программирования, так и применяемые только при создании шейдеров. По всей вероятности, вскоре появятся новые продукты, которые заполнят вакуум в области средств для разработки шейдеров, и со временем разработчики шейдеров будут иметь полный набор инструментов.

8.1. Общие принципы

Разработка шейдеров - это просто еще один вид программирования; давно существующие принципы и приемы могут успешно использоваться и при разработке шейдеров. Перед тем как писать код шейдера, нужно сначала этот шейдер спроектировать, чтобы он был прост настолько, насколько это возможно для задачи, которую он призван выполнять. Если шейдер является частью чего-либо большего, нужно проектировать шейдер с учетом надежности и возможности повторного использования кода.


⇐ Предыдущая| |Следующая ⇒