相关疑难解决方法(0)

JavafX 8 3D Z 顺序。重叠形状行为是错误的。

我有一个 JavaFX 3D 场景,在随机位置添加了一堆盒子和球体。似乎深度顺序都是错误的,我不知道为什么。我曾尝试使用 myNode.setDepthTest(DepthTest.ENABLE) 但这似乎没有帮助。我附上了一个应用程序,它应该可以证明这个问题。

知道我在这里可能做错了什么吗?非常感谢任何帮助。

import javafx.application.Application;
import javafx.application.ConditionalFeature;
import javafx.application.Platform;
import javafx.event.EventHandler;
import javafx.scene.DepthTest;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.SubScene;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.ScrollEvent;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Box;
import javafx.scene.shape.Shape3D;
import javafx.scene.shape.Sphere;
import javafx.scene.transform.Rotate;
import javafx.scene.transform.Translate;
import javafx.stage.Stage;

public class Array3DTest extends Application {


double mousePosX;
double mousePosY;
double mouseOldX;
double mouseOldY;
double mouseDeltaX;
double mouseDeltaY;

/**
 * This is the group which rotates 
 */
Group root3D;

/**
 * The camnera to 
 */ …
Run Code Online (Sandbox Code Playgroud)

java depth-buffer javafx-8 javafx-3d

4
推荐指数
1
解决办法
1414
查看次数

Overlaping Shapes - 错误的重叠形状行为

简而言之 - 我有2个旋转矩形.在旋转时(通过Y轴)它们应该相互重叠 - 不幸的是,尽管旋转180度,但是其中一个ractangles"总是在前面".如何解决这种行为?它似乎与whitch矩形中的顺序相关,并且已添加到组中.最后添加的那个总是在前面.

现场:

    package drawing.scene;

import javafx.application.Application;
import javafx.geometry.Point3D;
import javafx.scene.Camera;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;
import drawing.objects.Clock;
import drawing.objects.Cube;

public class MyScene extends Application {

    private int sceneEdgeSize = 800;
    private int clolcSize = 400;

    @Override
    public void start(Stage primaryStage) throws Exception {
        Group g = new Group();
        g.setTranslateX((sceneEdgeSize - clolcSize) / 2f);
        g.setTranslateY((sceneEdgeSize - clolcSize) / 2f);

        final Cube c = new Cube(clolcSize);
        g.getChildren().add(c);
        Thread t = new Thread(new Runnable() …
Run Code Online (Sandbox Code Playgroud)

java javafx

3
推荐指数
1
解决办法
2783
查看次数

如何正确渲染 3D 图形

我试图制作一个魔方,但javafx最终得到了一个非常糟糕的模型,如图所示。我给出了我的代码源代码,其中我使用RectangleBuilder类来创建矩形并在 3d 中进行转换。为了修复图形,我还尝试构建使用TriangleMesh类的矩形,并在向它们添加材质后,将它们转换为 3D,最终再次出现相同的糟糕图形。为什么会出现这种情况以及如何消除它?

import javafx.scene.transform.Rotate;
import javafx.scene.PerspectiveCamera;
import javafx.scene.transform.Translate;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.SceneAntialiasing;
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.RectangleBuilder;
import javafx.scene.transform.Rotate;
import javafx.util.Duration;


    public class NewFXMain1 extends Application {


    public class Cube extends Group {
    final Rotate rx = new Rotate(0,Rotate.X_AXIS);
    final Rotate ry = new Rotate(0,Rotate.Y_AXIS);
    final Rotate rz = …
Run Code Online (Sandbox Code Playgroud)

java javafx-8 javafx-3d

2
推荐指数
1
解决办法
3496
查看次数

标签 统计

java ×3

javafx-3d ×2

javafx-8 ×2

depth-buffer ×1

javafx ×1