Вопрос

Эй, я пытаюсь использовать SIMD Моно для обработки координат (X, Y, Z) в моем проекте, но я вижу только поддержку типов Vector2 и Vector4. Кто-нибудь сталкивался с этим раньше, и есть ли обходные пути?

Заранее спасибо.

Это было полезно?

Решение

Это связано с тем, как работают регистры. Вы можете просто использовать Vector4f и установить для части W значение 0 или 1 (в зависимости от того, что вы хотите сделать с вектором), и все будет хорошо.

http://tirania.org/blog/archive/2008/Nov -03.html объясняет:

  

На процессорах x86 эти инструкции   использовать новый банк регистрации (XMM   регистры) и может быть настроен на   работать на 16 байтов одновременно, используя   количество возможных комбинаций:

* byte-level operations on 16 elements.
* short-level operations on 8 elements.
* single precision or integer-level operations on 4 elements.
* double precision or long-integer operations on 2 elements.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top