/ / Animate Render Effects w JavaFX - java, animation, javafx

Animuj efekty renderowania w JavaFX - java, animation, javafx

Buduję aplikację JavaFX, która ma działać na moim RaspberryPi z dołączonym ekranem 7 ". Dla lepszej stylizacji próbuję animować a javafx.scene.effect.GaussianBlur-Efekt.

Mam go "działa", chociaż wydajność jest dość zła (niski FPS podczas animacji) w tej chwili (na moim laptopie, nawet nie mówiąc o Pi). Zobacz kod poniżej.

Czy istnieje bardziej wydajny sposób robienia tego? A może te efekty nie powinny być animowane?

GaussianBlur blur = new GaussianBlur(0);
backgroundPane.setEffect(blur);
DoubleProperty value = new SimpleDoubleProperty(0);
value.addListener((observable, oldV, newV)->
{
blur.setRadius(newV.doubleValue());
});

Timeline timeline = new Timeline();
final KeyValue kv = new KeyValue(value, 30);
final KeyFrame kf = new KeyFrame(Duration.millis(200), kv);
timeline.getKeyFrames().add(kf);
timeline.play();

FYI: The bakcgroundPlane jest na tym etapie tylko okienko z obrazem w tle dodanym za pomocą CSS:

.background
{
-fx-background-image: url("images/bg.png");
-fx-background-repeat: stretch;
-fx-background-size: 800 480;
-fx-background-position: center center;
}

EDYTOWAĆ: Problem nie wydaje się być związany z CSS. Nadal występuje, gdy ustawiam obraz w FXML ...

Odpowiedzi:

1 dla odpowiedzi № 1

Czy próbowałeś włączyć buforowanie i ustaw wskazówkę dotyczącą pamięci podręcznej na szybką?

Zazwyczaj mają one ogromny wpływ na wydajność. W jednej z moich małych gier jfx była to różnica między wartościami "grywalnymi" i jednocyfrowymi fps.