我正在学习openGL以及如何进行转换和缩放等转换.我知道你必须经常翻译到原点,然后做你想做的任何事情(比如缩放),然后翻译回来.根据我的理解,这是手动完成的,但你可以用glScale()做同样的事情
... . . 我正在学习openGL以及如何进行转换和缩放等转换.我知道你必须经常翻译到原点,然后做你想做的任何事情(比如缩放),然后翻译回来.根据我的理解,这是手动完成的,但你可以用glScale()做同样的事情.
我的问题是,如果我使用glScale函数,我还需要转换为原点吗?
.解决方法
. 您可能不需要对原点进行任何转换,只需按所需顺序进行转换即可.请记住,应用的最后一个转换发生在先前转换的空间中.例如:
// draw object centred on (1,2,3) and ten times biggerglTranslatef(1,3);glScalef(10,10,10);drawObject();
与
// draw object centred on (10,20,30) and ten times biggerglScalef(10,10);glTranslatef(1,3);drawObject();. . .. ...