GLSL 向量加法与多个浮点数
GLSL vector addition vs multiple floats
假设我有这个:
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 针对矢量化操作进行了优化,使用 AMDs ShaderAnalyzer or NVIDIAs nSight 等工具,您可以看到生成的程序集显示您的第一个代码片段产生 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 针对矢量化操作进行了优化,使用 AMDs ShaderAnalyzer or NVIDIAs nSight 等工具,您可以看到生成的程序集显示您的第一个代码片段产生 3 个标量操作,而第二个代码片段是单个矢量操作。