Hello, People [...]
? Резюме
Всякий раз, когда я использую Эффект тени на моей BorderPane или любом компоненте/ control / Element, производительность 3D-графики (как видно в разделе Preview ниже) слишком низок.
«запутывающая» часть заключается в том, что она даже получает низкую производительность, когда эффект применяется к чему-то, что действительно имеетне имеет ничего общего с моей Tab, Subscene или даже с моей движущейся кнопкой, таким образом [...]
Я использую jdk-12.0.1 .
?️ Предварительный просмотр
⚠️ Воссоздание проблемы
ФайлыНеобходимо:
App.java | main.fxml | AnchorPane.css | MathUtils.java | SimpleFPSCamera.java
? Общий код
(Вы можете обратиться к Воссоздание проблемы Раздел для получения дополнительной информации тоже)
AnchorPane.css
#BorderPane1 {
-fx-effect: dropshadow(three-pass-box, rgb(26, 26, 26), 50, 0.6, 0, 0); /* Comment it*/
}
App.java
public class App extends Application {
@FXML
public Parent root;
public TabPane TabPane1;
public BorderPane BorderPane1;
public static void main(String[] args) throws Exception {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("main.fxml"));
loader.setController(this);
root = loader.load();
Scene RootScene = new Scene(root, 1120, 540);
primaryStage.setScene(RootScene);
Thread t = new Thread() {
public void run() {
//Setting NewButton2
Button NewButton2 = new Button();
NewButton2.setId("Button2");
NewButton2.setText("test2");
NewButton2.setPrefWidth(150);
NewButton2.setPrefHeight(50);
NewButton2.setTranslateX(-75);
NewButton2.setTranslateY(-25);
NewButton2.setTranslateZ(900);
// Setting group
Group SubRootGroup = new Group(NewButton2);
SubRootGroup.setTranslateX(0);
SubRootGroup.setTranslateY(0);
SubRootGroup.setTranslateZ(0);
// Setting Scene
SubScene SubScene1 = new SubScene(SubRootGroup, 0, 0, true, SceneAntialiasing.BALANCED);
SubScene1.setId("SubScene1");
SubScene1.setFill(Color.WHITE);
SubScene1.heightProperty().bind(RootScene.heightProperty());
SubScene1.widthProperty().bind(RootScene.widthProperty());
// Initializing Camera
SimpleFPSCamera SimpleFPSCam = new SimpleFPSCamera();
// Setting Camera To The Scene
SubScene1.setCamera(SimpleFPSCam.getCamera());
// Adding Scene To Stage-TabPane.Tab(0)
TabPane1.getTabs().add(new Tab("Without Shadows"));
TabPane1.getTabs().get(0).setContent(SubScene1);
// Loading Mouse & Keyboard Events
SimpleFPSCam.loadControlsForSubScene(SubScene1);
}
};
t.setDaemon(true);
t.run();
primaryStage.show();
}
}
Вещи, которые я пытался до сих пор
setCache(true);
setCacheShape(true);
setCacheHint(CacheHint.SPEED);
(я пробовал использовать его со всеми компонентами, но безуспешно[это может быть и мое плохое знание javaFX, [неправильно его использовать?]])
? Outro
Есть идеи? Заранее спасибо, Любая помощь будет высоко оценена, ? [...]
Джордж.