我是OpenGL的新手。我正在使用JOGL。OpenGL:如何撤消缩放?
我有一个WorldEntity
类,它表示一个可以呈现的东西。它具有像position
和size
这样的属性。要渲染,我已经使用这种方法:
/**
* Renders the object in the world.
*/
public void render() {
gl.glTranslatef(getPosition().x, getPosition().y, getPosition().z);
gl.glRotatef(getRotationAngle(), getRotation().x, getRotation().y, getRotation().z);
// gl.glScalef(size, size, size);
gl.glCallList(drawID);
// gl.glScalef(1/size, 1/size, 1/size);
gl.glRotatef(-getRotationAngle(), getRotation().x, getRotation().y, getRotation().z);
gl.glTranslatef(-getPosition().x, -getPosition().y, -getPosition().z);
}
我已经使用在施加实体(如位置或旋转)的每个属性的图案,然后撤消它,以避免破坏的状态下用于下一实体呈现。
取消缩放缩放线条会导致应用程序变得更加缓慢,因为它会在适度的计算机上渲染出适度的场景。我猜测浮法部门每秒处理数千次操作太多了。 (?)
这是怎么回事?我可以找到一种计算量较小的方法来撤消缩放转换吗?我是否需要按比例排序对象并绘制它们以减少所需的缩放转换?
谢谢。