gpt4 book ai didi

java - 在 OpenGL 中绘制的图像尺寸错误并且其中有黑框

转载 作者:行者123 更新时间:2023-11-30 09:23:19 24 4
gpt4 key购买 nike

我目前正在尝试处理我的 Java 项目,其中包括 LWJGL。到目前为止,我的“游戏”已经完成,我现在正在向屏幕上绘制图像。

我遇到的问题是绘制的图像中有黑框,而且大小不正确。这是它的视觉效果图。

实际的红色正方形图像应该是这样的:

这是我用 OpenGL 渲染的代码,我不知道我做错了什么。

public class Renderer {

//Integers used for player cordinates, Taken from player class by using Static variables
int playerX;
int playerY;

SpriteSheetLoader spriteLoader;
Texture player;

public Renderer(){

}

public void initRenderer(){
//Initialize OpenGL
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity(); // Resets any previous projection matrices
GL11.glOrtho(0, 800, 600, 0, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

try {
player = TextureLoader.getTexture("PNG",ResourceLoader.getResourceAsStream("res/PaddleTemp.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public void update(){
GL11.glClear( GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT );
playerX = Player.playerX; //Gets player x and y from the player class using static variables
playerY = Player.playerY;

player.bind();

GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0, 0); //top left
GL11.glVertex2f(playerX, playerY);

GL11.glTexCoord2f(1,0); //Top right
GL11.glVertex2f(playerX + 50, playerY);

GL11.glTexCoord2f(1, 1); //Bottom right
GL11.glVertex2f(playerX + 50, playerY + 150);

GL11.glTexCoord2f(0, 1); //bottom left
GL11.glVertex2f(playerX, playerY + 150);
GL11.glEnd();
}

最佳答案

抱歉,我不太确定问题出在哪里。不幸的是,我似乎无法在之后重现它。但我认为应该通过以下方法之一解决:

  • 不支持的图片尺寸

OpenGL 严重依赖 so 图像,其分辨率的宽度和高度为 2 的幂(当宽度/高度 = n*2 时)。如果图像文件不符合该规范,LWJGL 可能会表现得很奇怪。另外,不用担心图像文件被压缩。这取决于顶点输入,而不是纹理输入。

  • 不支持的图片扩展

尝试将您的图像文件保存为非隔行扫描的 PNG 文件。 Slick_Util 或您用于加载图像文件的任何东西可能不完全支持您提供给它的图像。

  • 更正提示

作为最后的手段,您可以将以下代码行添加到您的初始化代码中:

glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);

希望这些提示中的一个对您有所帮助。

来源:LWJGL not rendering textures correctly?

关于java - 在 OpenGL 中绘制的图像尺寸错误并且其中有黑框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16113637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com