shader 运行效率
今天写程序遇到个古怪的现象。
OpenGL ES 2.0 shader program中
vTexCoord = vec2(aTexCoord.s, aTexCoord.t);
vTexCoord = vec2(aTexCoord.s * 1.0, aTexCoord.t * 1.0);
这两句话计算运行结果完全一样(当然的,乘以1,结果不变么)。但运行效率却差很多。画复杂图形(三角形很多,比如球体)时,速度差别很明显。
关键是,与设想相反的是,第二句运行更快。奇怪吧,画每个三角形多了两次乘法运算,速度反倒更快了。
还不知道是因为什么,shader 编译的差别吧。