将Vector3f x和y转换为精确的像素大小

时间:2014-12-18 20:45:05

标签: lwjgl game-engine pixel

我目前正在玩一个jave游戏引擎。 (由朋友使用LWJGL开发)。此引擎使用Vector3f位置在屏幕上绘制图片。我想用精确的像素位置绘制图片...所以我创建了一个Vector3f,并且不知何故,现在必须将x和y值转换为像素位置。但是如何?

1 个答案:

答案 0 :(得分:0)

假设Vector3f的组件使用OpenGL屏幕坐标(原点位于屏幕中心,x向右,y向上,轴的值为-1到1)。生成的像素坐标使用LWJGL坐标系,即原点位于左下角。

import org.lwjgl.opengl.Display;
import org.lwjgl.util.Point;
import org.lwjgl.util.vector.Vector3f;

public static Point toPixelPos(Vector3f v) {
    int width = Display.getWidth();
    int height = Display.getHeight();
    int x = (int) (width * (v.x + 1) / 2);
    int y = (int) (height * (v.y + 1) / 2);

    return new Point(x, y);
}