У меня есть начало координат и вектор направления, но я понятия не имею, как следить за лучом и проверять наличие столкновений...
Вот изображение луча, он выходит примерно на 6 блоков.
Vector3f cam = camera.getPosition();
Vector3f dir = getDirection();
dir.x *= 40;
dir.y *= 40;
dir.z *= 40;
Vector3f dest = new Vector3f(cam.x + dir.x, cam.y + dir.y, cam.z + dir.z);
public Vector3f getDirection()
{
Vector3f vector = new Vector3f();
float rotX = camera.yaw;
float rotY = camera.pitch;
vector.y = (float) -Math.sin(Math.toRadians(rotY));
float h = (float) Math.cos(Math.toRadians(rotY));
vector.x = (float) (h * Math.sin(Math.toRadians(rotX)));
vector.z = (float) (-h * Math.cos(Math.toRadians(rotX)));
return vector;
}
I have tried using gluUnProject and it worked a little bit but like when you picked a face of a block it wasn't very precise.
Кстати: я использую списки отображения для фрагментов и просто визуализирую квадраты блоков внутри этого списка отображения. У меня 60 фпс. Я искал и искал, но я не могу найти НИЧЕГО по трассировке лучей или выбору лучей ... Спасибо!