Основы

в производительности. Слишком рано думать о стандарте ассемблерного языка для программирования графики. С другой стороны, язык С был придуман задолго до современных ассемблерных языков для процессоров, и он все еще актуален для разработки программ.

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

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

□ Открытый межплатформенный стандарт.

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

□ Один высокоуровневый язык используется для всей программируемой цепочки обработки графики.

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

□ Модульное программирование.

Разделение компиляции и компоновки на два отдельных шага - удачное решение: при разработке программ для сложных алгоритмов проявляется большая гибкость. Вместо того чтобы создавать один большой шейдер, разработчики могут сделать целую коллекцию небольших шейдеров, их можно компилировать независимо и затем прикреплять к программному объекту, Шейдеры будут создаваться на базе общих интерфейсов и, таким образом, станут взаимозаменяемыми, а операция компоновки соединит их в программу.


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