GLM — Гарантируются ли векторы и матрицы в памяти эквивалентными их аналогам GLSL?

Интуитивно я бы сказал, что да, потому что иначе вся эта «следование спецификации GLSL» не имела бы особого смысла. Я не нашел это явно упомянуто нигде, хотя. В коде я спрашиваю, если

glm::someType something{...};
(float*)&something === glm::value_ptr(something)

(Конечно, не используйте float * при использовании двойного или наполовину варианта, но вы получите точку).

0

Решение

«следование спецификации GLSL» не имеет особого смысла.

GLSL не определяет макет памяти. Он просто определяет лексическую структуру различных типов, например, какие элементы они имеют. GLM придерживается той же лексической структуры, но может следовать любой схеме памяти, которая подходит для него лучше всего.

Обратите внимание, что единственным интерфейсом между GLM и GLSL являются вызовы glUniform и glVertexAttrib [Pointer], а расположение их в памяти хорошо известно. И пока GLM работает с ними, все в порядке.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]