2015-05-29 2 views
2

Я использую THREE.js для создания игры.THREE.JS Пересечение перекоса с большими координатами

В настоящее время у меня есть объект в этой позиции:

(-83645, 476450, 412912) 

, и я пытаюсь сделать кнопку обнаружения на этом объекте.
Однако, когда я использую raycaster, как показано на сайте примера THREE.js, мои лучи всегда перекошены. Если я перекошу все координаты вниз на 100, то расистаст отлично работает.

Я предполагаю, что это имеет какое-то отношение к проблеме деления во время нормализации или, возможно, к ошибке переполнения, которая происходит где-то с каким-то делением.

В настоящее время я сокращаю координаты, однако, в конечном счете, мы бы хотели, чтобы координаты оставались неизменными.

Есть ли у кого-нибудь идеи, почему большие координаты искажают наши лучи? Заранее спасибо!

EDIT: Вот быстрая скрипка: http://jsfiddle.net/88ehm1yf/

+0

Можете ли вы создать простой тестовый пример, где мы можем воспроизвести эту проблему? – Blaise

+0

@Blaise Абсолютно, теперь есть скрипка. – mrK

+0

На эту проблему вы можете ответить: http://stackoverflow.com/questions/26049182/mouse-coordinates-irrelevant-after-zooming-is-it-bug/26090323#26090323. Также убедитесь, что вы установили 'body {margin: 0}'. fiddle: http://jsfiddle.net/88ehm1yf/1/ – WestLangley

ответ

1

Как объяснено в this answer вам нужно увеличить камеры near плоскости расстояния, чтобы избежать проблем точности.

Кроме того, в вашем CSS установите body { margin: 0 } или см. this answer для того, чтобы учесть смещения холста при использовании Raycaster.

three.js r.73

 Смежные вопросы

  • Нет связанных вопросов^_^