Рис. 17.3. Модель выполнения Microsoft HLSL
Типы данных в HLSL почти такие же, как в языке шейдеров OpenGL, с небольшими отличиями. HLSL включает поддержку чисел с плавающей запятой
Сравнение языков программирования
половинной и двойной точности. Как и в языке шейдеров OpenGL, поддерживаются векторы, матрицы, структуры и массивы. Выражения в HLSL такие же, как в языках С и С++. Определенные разработчиком функции и условные операторы поддерживаются так же, как и в языке шейдеров OpenGL. Операторы циклов (for, do, while) определены, но, согласно последней документации, не реализованы. HLSL поддерживает гораздо большее количество встроенных функций, чем язык шейдеров OpenGL, а те, что имеются в обоих списках, практически совпадают.
Еще одно отличие - в способе передачи данных между вершинным и пиксельным (HLSL) или фрагментным (язык шейдеров OpenGL) шейдерами. HLSL определяет семантику и входных, и выходных данных как для вершинного, так и для пиксельного шейдеров. Это то же самое, что varying- и встроенные переменные в языке шейдеров OpenGL. Можно передавать любые данные в шейдеры и из них, но нужно записывать эти данные в определенные области памяти"opengl2_371.html">⇐ Предыдущая| |Следующая ⇒