three.js Raycaster, кажется, все время работает на основе первого ключевого кадра анимации

1

Выбор Raycasting отлично работает для моего проекта на статических сетках, однако для анимированных сеток выбор луча, похоже, не видит движения сетки и реагирует только на неанимированную (оригинальную) позицию сетки.

Это анимированная модель, которая может только подобрать состояние позы ниже первого кадра и создает небольшую красную точку, когда я обнаруживаю модель. Кости-матрицы вычисляются процессором, но новые позиции вершин вычисляются графическим процессором. Таким образом, процессор имеет доступ только к первой позе. Вот почему RayCasting не работает (правильно) для экранированных сеток.

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

Статическая модель

Изображение 174551

Анимированная модель

Изображение 174551

jsfddle view

  • 0
    Может быть, вам интересна следующая скрипка ( jsfiddle.net/fnjkeg9x/1 ). Я недавно разработал его для форума three.js, и он показывает, как вы рассчитываете текущую AABB для скиновой сетки. Вы можете в основном использовать код в контексте лучевого вещания. Но имейте в виду, что этот метод очень загружает процессор.
  • 0
    Извините, я недавно не делал этот проект. Я тщательно изучил ваш код, но мне кажется неуместным подбирать конкретный материал или местоположение модели. Я хочу столкнуться с моделью и добавить разметку, вот так ( skfb.ly/6D8MA ) @Mugen87 Mugen87
Теги:
three.js

1 ответ

1

В настоящее время raycasting в three.js поддерживает цели морфинга (только для THREE.Geometry), реплицируя вычисления вершинного шейдера на CPU.

Итак, теоретически вы можете добавить те же функции для поддержки THREE.Geometry для THREE.Geometry сеток как для THREE.Geometry и для THREE.BufferGeometry. Однако более эффективным подходом было бы использовать "сбор GPU".

Вы можете найти пример выбора GPU в этом примере. В примере объекты не анимированы, но концепция одинаков.

three.js r.98

  • 0
    Извините, что так долго отвечал вам. Я перепробовал много методов, но для этого примера графического процессора на официальном сайте я не мог попытаться использовать сложную структуру модели, то есть я не смог получить конкретное местоположение и материал модели. Я хочу столкнуться с моделью и добавить разметку, вот так ( skfb.ly/6D8MA )

Ещё вопросы

Сообщество Overcoder
Наверх
Меню