GLSL矢量加法与多浮点数

GLSL矢量加法与多浮点数,glsl,webgl,opengl-es-2.0,Glsl,Webgl,Opengl Es 2.0,假设我有这个: float x2 = q.x + q.x; float y2 = q.y + q.y; float z2 = q.z + q.z; 与此相比: vec3 q2 = q.xyz + q.xyz; 矢量操作更好/更快,还是这不是GLSL级别的问题?是的,速度更快,GPU针对矢量化操作进行了优化,使用诸如或之类的工具,您可以看到生成的程序集显示,您的第一个代码段导致3个标量运算,而您的第二个代码段是单个向量运算。您可能会发现有趣的事情我想我很久以前就试过了,但我无法让它工作。我再试

假设我有这个:

float x2 = q.x + q.x;
float y2 = q.y + q.y;
float z2 = q.z + q.z;
与此相比:

vec3 q2 = q.xyz + q.xyz;

矢量操作更好/更快,还是这不是GLSL级别的问题?

是的,速度更快,GPU针对矢量化操作进行了优化,使用诸如或之类的工具,您可以看到生成的程序集显示,您的第一个代码段导致3个标量运算,而您的第二个代码段是单个向量运算。

您可能会发现有趣的事情我想我很久以前就试过了,但我无法让它工作。我再试试看。虽然我很困惑,我想从答案中获取一些工具,但是我不确定如果为不同的设备生成不同的程序集,那么生成的程序集如何相关。