17.4. Язык HLSL

HLSL расшифровывается как High-Level Shader Language (язык шейдеров высокого уровня), он был создан компанией Microsoft и реализован в DirectX 9 в 2002 г. По синтаксису и функциональности HLSL значительно ближе к OpenGL, чем RenderMan и ISL. HLSL поддерживает парадигму программируемости на уровне вершин и фрагментов точно так же, как язык шейдеров OpenGL. Вершинный шей-дер HLSL соответствует вершинному шейдеру OpenGL, а пиксельный шейдер HLSL соответствует фрагментному шейдеру OpenGL.

Одно из основных различий этих языков - в модели выполнения. IILSL создан как транслятор из исходного кода в другой исходный код (рис. 17.3). Компилятор HLSL на самом деле является транслятором, который не зависит от DirectX, поэтому HLSL-программы не передаются для выполнения через DirectX 9 API. Вместо этого компилятор HLSL транслирует исходный код в более низкоуровневый код, и получаются программы, называемые вершинными шейдерами и пиксельными шейдерами. Эти шейдеры могут различаться номером версии (например, Vertex Shader 1.0, 2.0, 3.0; Pixel Shader 1.1, 1.4, 2.0, 3.0).

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

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

17.4. Язык HLSL

Не гарантируется, что шейдеры HLSL будут работать на любой платформе. Разработчики шейдеров должны выбрать: либо написать шейдер, который может выполняться и на оборудовании с очень небольшой программируемостью, либо ориентироваться только на определенный ряд графического оборудования (для чего существует возможность языка, называемая профайл). Компания Microsoft предоставляет программу DirectX Effects Framework для разработчиков шейдеров.


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