2012-01-18 2 views

ответ

4

Вам не нужно это делать. Используйте вход BYTES_4 в потоке вершин, и ваш упакованный цвет будет распакован для вас автоматически! Текстуры делают то же самое. Постоянные регистры все равно 4 поплавка. Вы должны начать думать о цветах как 4 вектора с 4 значениями в диапазоне [0..1].

Сказанное, помните, что бит сдвига - это просто деление и усечение. x >> 1 совпадает с trunc (x/2.0). AGAL не имеет усечения, а дробная часть, а trunc (x) совпадает с x-frac (x) для положительного x.

1

Вот описанный случай, когда я нашел побитовые операции в AGAL полезными при распаковке материалов из цветовых каналов RGB. Предполагается, что вы уже знаете, арифметические эквиваленты побитовое операции Тхо: http://forum.alternativaplatform.com/posts/list/10343.page#78542

модуль упругости может быть сделано в гал, где% б = FRC (а/б) * б. Так как, например, битмаска & 1, & 3 произведения являются просто модулями для 2 и 4 соответственно (то есть & (modDivisor-1)), вы можете использовать их. Смещение влево/вправо - это просто умножение/деление по мощности 2 (2^n), где n - количество сдвинутых битов. Или '|' операции просто добавляются, после смещения левых цифр yr, конечно.