Как мне конвертировать между float и vec4, vec3, vec2?

Этот вопрос очень связан с вопросом здесь (Как преобразовать значение vec4 rgba в число с плавающей точкой?).

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

нормированный поплавок без знаканормированный поплавокпоплавок со знаком (плавающее значение, я могу найти ограничение диапазона)беззнаковый поплавокбеззнаковый поплавокподписанный поплавок

Тем не менее, это всего лишь 2 случая на самом деле. Другая упаковка / распаковка может быть обработана этими двумя способами.

беззнаковый поплавок (я могу упаковать / распаковать простым переносом битов)подписанный поплавок

Я хочу также упаковать и распаковать подписанные плавающие значения в vec3 или vec2.

В моем случае плавающее значение не гарантируется для нормализации, поэтому я не могу использовать простой способ сдвига битов.

Ответы на вопрос(3)

Ваш ответ на вопрос