我刚开始使用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/