所以我在LWJGL中创建了一个简单的3d渲染引擎,我遇到的问题是,当我从一个对象备份时,它向左和向上移动(朝向0,0)当我真的需要它前往screenResX / 2,screenResY / 2(也许0我不知道)。有没有办法让我可以设置某种变量让它淡入中心?
此外,在这个引擎中,我需要弯曲多边形以进行渲染,就像玩家正在看它们一样。目前,如果你直视他们,我只有多边形渲染,我知道那不是我需要的,有人可以帮助我吗?
先谢谢你的帮助,这是我的第一个3D引擎,我很无能为力。
答案 0 :(得分:0)
因此,对于第一个问题:缩放始终围绕原点进行。这意味着您必须将对象转换为原点,缩放它然后将其转换为目标。这里有更好的解释:OpenGL: scale then translate? and how?
但基础知识是这样的(来自链接的问题):
//this moves the scaled
glTranslatef(destCenter.x, destCenter.y, 0.0);
//scale to the desired factor
glScalef(scaleX, scaleY, 0.0);
//move the center of the scaling operation into the origin
glTranslatef(sourceCenter.x * -1.0, sourceCenter.y * -1.0, 0.0);
我仍然不太了解你的第二个问题,但我猜你的意思是你想要用透视而不是正交的方式绘制某些东西。请查看gluPerspective(...)
或glFrustum(...)
,而不是glOrtho(...)
。