Как узнать, какие частицы частиц системы находятся в усеченном конусе? - PullRequest
2 голосов
/ 16 января 2012

Я использую Three.js и webGLrender для отображения хоккейного стадиона с его местами (80 000 частиц), и я хочу иметь возможность выбирать на каждом месте. Я пытался создать скрытый объект, чтобы использовать перехват лучей, но с объектами 80k все становится слишком медленным. Поэтому я думаю, что лучший способ - это создавать объекты только при достаточном приближении, при котором отображается только набор мест. Проблема в том, что я не очень хорошо знаю, как определить, какие частицы (вершины) системы частиц попадают внутрь усеченного конуса.

Есть идеи или образцы?

Заранее спасибо!

1 Ответ

0 голосов
/ 02 марта 2012

Я не знаю, в частности, о Three.js, но посмотрите на выборку усеченного вида, эта ссылка подробно объясняет, как это делается:

http://www.lighthouse3d.com/tutorials/view-frustum-culling/

Самый быстрый и наименее точныйМожно рассчитать барицентр каждого сиденья и просто провести тест на включение точки, чтобы определить, следует ли рассматривать сиденье на предмет комплектации.Более сложные подходы могут включать предварительный расчет ограничивающих кубов / сфер для каждого места и выполнение теста включения для них.

Другой подход может заключаться в использовании структуры данных пространственной индексации для снижения стоимости поиска, такой как октодерево.

...