Я создаю простой интерфейс перетаскивания 3D в процессе обработки и хочу определить, когда мышь перекатывается над объектом. Я бы предположил, что мне нужно сделать некоторые переводы матриц в координаты трехмерной модели, чтобы получить их в пространстве экрана и т. Д.Перевод мыши X и Y в координаты 3D-модели
У меня простая версия этой работы, проблема в том, что при перемещении камеры на сцене координаты, которые я получаю, сходят с ума.
Так как мне перевести координаты плитки в пространство экрана (так как screenX & screenY не работает должным образом)?
UPDATE: В конце концов я нашел два примера с сайта Processing о том, как это сделать. Благодаря villintehaspam.
http://processing.org/hacks/hacks:picking
Чтобы увидеть 2-мерную проекцию своего 3-D объекта, вам необходимо перевести его из трехмерных координат в конкретную двумерную проекцию (координаты экрана). Проблема в том, что этот перевод включает в себя потерю, поэтому вы не можете просто изменить процесс и получить трехмерную точку. Вам нужно проецировать луч назад, найти все объекты, которые пересекает луч, и отсортировать их по Z-порядку. –