Отбор усеченного конуса в JavaFX

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

Будем признательны за любую помощь. Спасибо.


person sazap10    schedule 21.01.2013    source источник
comment
Не прямой ответ на ваш вопрос об отбраковке, а установка node.isCache(true) и node.setCacheHint(CacheHint.SPEED) может решить некоторые проблемы с производительностью.   -  person jewelsea    schedule 22.01.2013


Ответы (2)


Вы требуете, чтобы узлы были полностью удалены навсегда, или вы беспокоитесь о рендеринге?

Узлы за пределами сцены не вообще не должны отображаться, это обрабатывается JavaFX.

person Andy Till    schedule 21.01.2013
comment
Нет, не удалили, просто не отрендерили. Производительность приложения резко падает при использовании событий мыши для прокрутки остальных узлов, если их большое количество - person sazap10; 21.01.2013
comment
Как узнать, что узлы сцены рендерятся? Попробуйте использовать jvisualvm для профилирования, пока вы перетаскиваете узлы, чтобы увидеть, что потребляет вычислительную мощность. Это, вероятно, покажет много материала JavaFX, но может сузить его. - person Andy Till; 22.01.2013
comment
Если у меня небольшое количество узлов, при перетаскивании узлов почти нет задержки, однако, если их много, например, 100+, приложение заикается при перетаскивании и имеет много задержек. - person sazap10; 22.01.2013

Я предполагаю, что к каждому узлу подключены слушатели.. поэтому вы создаете (n ->) слушателей... Возможно, попробуйте создать метод, который при наведении курсора добавляет слушателей перетаскивания/и удаляет при выходе при наведении.. Также узлы не отображаются на экране следует также удалить таких слушателей.

И, возможно, обернуть этих слушателей в классы WeakListener

просто мои мысли...

person jdub1581    schedule 05.08.2014