Jos*_*osh 2 opengl performance
glScalef(0.5f, 0.5f, 0);
// do some things
glScalef(2.0f, 2.0f, 0);
Run Code Online (Sandbox Code Playgroud)
要么..
glPushMatrix();
glScalef(0.5f, 0.5f, 0);
// do some things
glPopMatrix();
Run Code Online (Sandbox Code Playgroud)
哪个更好,性能更好?
第二个.因为第一个计算并乘以4x4矩阵,而第二个只写和读它.请注意,OpenGL可以智能化,只能创建/乘以对角矩阵.然而,您正在比较3个浮点乘法与16个变量存储.如果您担心性能上的差异,则需要编写测试.
精确度方面,第二个肯定更好,因为由于任何舍入误差0.5 * x * 2可能会给出不同的值x.这就是为什么即使另一种方法稍微快一点,这种方法也是首选.
| 归档时间: |
|
| 查看次数: |
617 次 |
| 最近记录: |