□ Увеличение производительности.

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

□ Обеспечение легкости использования.

Написание шейдеров должно быть по возможности простым и легким. Так как большинство программистов графических приложений привыкли к С и С++, наиболее выразительные средства этих языков послужили базой для языка шейдеров OpenGL. При этом наиболее сложные фрагменты кода должен создавать компилятор. Поэтому язык для всех программируемых процессоров, в том числе и будущих, должен быть один (с очень небольшими различиями), и очень простой. Это позволит программистам быстрее обучаться и затем применять этот язык для всех задач, где необходимо программирование процессоров, определенных в OpenGL.

□ Обеспечение актуальности языка в будущем.

При создании языка шейдеров OpenCL были приняты во внимание ранее созданные языки, такие как С и RenderMan. Разработчики языка шейдеров OpenGL надеются, что первые программы, написанные на нем, будут актуальными и через десять лет. Долговечность требует тщательной стандартизации, поэтому

2.4. Общее представление о языке много усилий было потрачено на приведение стандарта к виду, удовлетворяющему как производителей аппаратного обеспечения, так и OpenGL ARB.

□ Невмешательство в более высокие уровни параллельной обработки.

Новые архитектуры графических ускорителей позволяют выполнять параллельную обработку как вершин, так и фрагментов, и чем новее модели, тем больше возможностей распараллеливания. Язык шейдеров OpenGL проектировался тщательно, с учетом возможного распараллеливания обработки на более высоких уровнях. На определение языка это повлияло не сильно, но изменения были важными.


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