3.14159
3.
0.2
.609

1.5е10

0.4Е-4

etc.

В целом операции над числами с плавающей запятой выполняются так же, как ив языке С.

Не следует ожидать, что в языке шейдеров OpenGL и операции над целыми числами будут выполняться так же, как в С, так как здесь не предъявляется требование, чтобы при вычислениях они помещались в соответствующий регистр ограниченной разрядности. Не определено, что случится с числом при переполнении или исчезновении значащих разрядов, так как этого не случается. Не поддерживаются и битовые операции - сдвиг влево («), битовое «И» (S), а также все подобные им операции.

Определений языка

Гарантировано, что целое число может быть не меньшей, чем 16 бит точности; оно может быть положительным, отрицательным, нулем; арифметические операции, аргументы и результат которых не превышают заданной точности, всегда дают ожидаемый результат, Точность здесь подразумевает использование 16 бит и знака числа, так что полный диапазон может быть [-65535, 65535] или даже больше.

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

42 // представление десятичного целого

052 // представление восьмеричного целого

0х2А // представление целого в шестнадцатеричном виде Для целых чисел тоже не используются суффиксы, так как целочисленный тип - единственный. Целые числа служат для обозначения размеров структур или массивов или используются в качестве счетчиков. А графические величины, например цвет или координаты, представлять в шейдере лучше всего числами с плавающей запятой.

Здесь булевы переменные, как и в С++, называются boöl. Они могут иметь одно из двух значений: «истина» или «ложь$>. Для их обозначения существует две константы: true и false. Результатом операторов отношения, таких как «меньше» (<), и логических операторов, таких как «логическое И» (&&), всегда является логическое значение. Конструкции языка типа i f-el se принимают только выражения булева типа. В этом отношении язык шейдеров OpenGL ограничивает разработчиков больше, чем С++.


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