Несовместимый 3D-рендеринг на рабочем столе и Android
Я написал простое тестовое приложение для 3D-рендеринга. Это показывает вращающуюся коробку в 3D-сцене. Чтобы сделать все максимально простым, я создал новый проект Gluon Mobile View (без FXML) с новым мастером проекта для Eclipse. Затем я изменил BasicView
конструктор по умолчанию для этого:
public BasicView(String name) {
super(name);
Box box = new Box();
box.setMaterial(new PhongMaterial(Color.GREEN));
RotateTransition rt = new RotateTransition(Duration.seconds(3), box);
rt.setAxis(new Point3D(1, 1, 1));
rt.setByAngle(120);
rt.setCycleCount(Animation.INDEFINITE);
rt.setInterpolator(Interpolator.LINEAR);
rt.play();
Group controls = new Group(box);
SubScene scene = new SubScene(controls, 0, 0, true, SceneAntialiasing.BALANCED);
PerspectiveCamera camera = new PerspectiveCamera(true);
camera.setTranslateZ(-20);
scene.setCamera(camera);
scene.widthProperty().bind(widthProperty());
scene.heightProperty().bind(heightProperty());
setCenter(scene);
}
поэтому вместо ярлыка и кнопки у меня есть вышеперечисленное.
Это работает как на Android, так и на Windows, но на Android я получаю дополнительную черную тень во время вращения коробки, которая там, кажется, не нужна. если вы сможете работать на обеих ОС, вы точно поймете, о чем я говорю.
Видео:
Android - https://youtu.be/zLKPuadNyis
Windows - https://youtu.be/tx6cIe74s1w
Версия Android 6.0 на Xperia Z5 compact.
Файл сборки Gradle остался практически нетронутым, только я изменил версии на более новые
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.3.2'
}
}
apply plugin: 'org.javafxports.jfxmobile'
repositories {
jcenter()
maven {
url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}
mainClassName = 'com.gluonapplication.GluonApplication'
dependencies {
compile 'com.gluonhq:charm:4.2.0'
}
jfxmobile {
downConfig {
version = '3.1.0'
plugins 'display', 'lifecycle', 'statusbar', 'storage'
}
android {
compileSdkVersion = 23
manifest = 'src/android/AndroidManifest.xml'
}
ios {
infoPList = file('src/ios/Default-Info.plist')
forceLinkClasses = [
'com.gluonhq.**.*',
'javax.annotations.**.*',
'javax.inject.**.*',
'javax.json.**.*',
'org.glassfish.json.**.*'
]
}
}
Почему это происходит? это ошибка / проблема с JavaFXPorts? Могу ли я получить согласованное поведение на разных платформах?
Редактировать:
Проблема была отправлена в порты JavaFx по адресу https://bitbucket.org/javafxports/javafxmobile-plugin/issues/74/inconsistent-3d-rendering-on-desktop-and