Estoy tratando de hacer que raycasting funcione en la biblioteca pixi3D. Sin embargo, la documentación no es muy útil.
Lo que estoy tratando de hacer es hacer que un objeto 3D siga las coordenadas del mouse en un plano 3D en el espacio.
El cuadro negro debería seguir al mouse, pero no logro que funcione.
Esto es lo que se me ocurrió:
Primero he creado el avión:
let normalTest = new Float32Array(3); normalTest[0] = 0; normalTest[1] = 0; normalTest[2] = 1; planeTest = new Plane(normalTest, 100);Luego, en mi ciclo, trato de obtener un rayo para intersectar el plano:
let ray = Camera.main.screenToRay(l.mouseX(), l.mouseY(), {height: 1920, width: 1080 }); if(ray != undefined){ let rayRes = planeTest.rayCast(ray); let rayPoint = ray.getPoint(planeTest.rayCast(ray)); myBlackBox.x = rayPoint[0]; myBlackBox.y = (-l.mouseY()/100); }¿Hay alguien más aquí familiarizado con la API pixi3D que pueda mostrarme el camino?
Esto debería funcionar:
let plane = new PIXI3D.Plane(new Float32Array([0, 1, 0]), 0.8) document.addEventListener("mousemove", e => { let ray = PIXI3D.Camera.main.screenToRay(ex, ey) let distance = plane.rayCast(ray) let point = ray.getPoint(distance) // model is my 3d object model.position.array = point })