我正在使用glScalef()放大程序,现在当我使用代码将其恢复为原始大小时:
glScalef(1.0f/ZOOM, 1.0f/ZOOM, 1);
在高倍变焦下效果不佳...(也许是因为丢失了小数点?)
我如何可以将其完全还原为原始大小,而无需进行上述任何计算?
最佳答案
您可以这样做:
ZOOMSQRT = sqrt(ZOOM);
glScalef(1.0f/ZOOMSQRT, 1.0f/ZOOMSQRT, 1);
glScalef(1.0f/ZOOMSQRT, 1.0f/ZOOMSQRT, 1);
或使用glPushMatrix/glPopMatrix恢复缩放前的原始矩阵:
glPushMatrix();
glScalef(ZOOM, ZOOM, 1);
[do whatever you like here...]
glPopMatrix(); // now it's at normal scale again
[do other things here...]
关于opengl - 如何还原glScalef()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/635708/