我刚开始使用OpenGL和LWJGL,但是我有Java和游戏开发的经验。我正在制作的游戏将是2D Pixel Art Platformer,大多数图片为16x16px。

我想按比例放大3渲染的所有图形。在常规Java中,您需要将所有像素绘制到BufferedImage上,然后通过执行以下操作来绘制该图像:

g.drawImage(image, 0, 0, WIDTH * SCALE, HEIGHT * SCALE, null);


我正在尝试对glScalef()做同样的事情,但是它会使图像模糊,我可以解决这个问题,还是有更好的方法呢?这是我的代码:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, WIDTH, HEIGHT, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
glScalef(SCALE, SCALE, SCALE);


请让我知道我可能需要提供的其他信息。

谢谢!

最佳答案

听起来好像纹理被过滤了。 This answer对于类似的问题,使用以下代码段将GL_TEXTURE_MAG_FILTER的默认值从GL_LINEAR更改为GL_NEAREST

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)

关于java - 在OpenGL游戏中缩放所有图形,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26953750/

10-15 10:43