В настоящее время я немного играю с игровым движком. (Разработано другом с использованием LWJGL). Этот движок использует Vector3f Positions для рисования изображения на экране. Я хочу рисовать Картинки с точным местоположением пикселей ... поэтому я создал Vector3f и каким-то образом должен преобразовать значения x и y в позицию пикселя. Но как?Преобразование Vector3f x и y в точный размер пикселя
0
A
ответ
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);
}