桌面和Android上的3D渲染不一致

时间:2017-02-19 01:56:45

标签: android javafxports gluon-mobile

我为3D渲染编写了一个简单的测试应用程序。它具有3D子场景中的旋转盒。为了使一切尽可能简单,我使用eclipse的新项目向导创建了一个新的单个Gluon Mobile视图项目(无FXML)。然后我将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

Xperia Z5 compact上的Android版本为6.0。

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的错误/问题吗?我可以跨平台获得一致的行为吗?

编辑:
问题已在https://bitbucket.org/javafxports/javafxmobile-plugin/issues/74/inconsistent-3d-rendering-on-desktop-and

提交给JavaFx Ports

0 个答案:

没有答案