标签: javafx-3d

将坐标从 3D 场景转换为 2D 叠加

类似于如何在 javafx 中获取 3D 对象窗口上的 2D 坐标,但我无法使解决方案起作用。

我想为 3D 形状绘制 2D 边框或更类似于其投影。我写了这个示例代码供参考:

import javafx.application.Application;
import javafx.geometry.Point3D;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.SceneAntialiasing;
import javafx.scene.SubScene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Box;
import javafx.scene.shape.Rectangle;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;

public class CoordinateConversion extends Application {

    @Override
    public void start(Stage stage) {
        var box = new Box(20, 20, 20);
        box.setMaterial(new PhongMaterial(Color.TEAL));
        box.getTransforms().add(new Rotate(45, new Point3D(1, 1, 1)));
        var …
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-3d

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

JavaFX 2D在3D空间中塑造

我知道如果我旋转一个扩展的对象,javafx.scene.shape.Shape我可以将它转换为3D空间,即使它主要设计为2D(至少据我所知).

假设我有一个3D场景(使用透视摄像头和深度缓冲器),其中MeshView出现各种s.有些用于区域,有些用于线路.在这两种情况下,这些形状必须进行三角测量,以便用a绘制它们TriangleMesh,这通常是非常重要的.

现在,当我改变这些线的绘图以使用Polyline该类时,性能崩溃是可怕的,并且有一些奇怪的文物.我认为我可以从以下事实中受益:折线具有较少的顶点,并且开发人员不必以编程方式进行三角测量.

不鼓励使用javafx.scene.shape.Shape在3D空间内延伸的形状吗?他们是如何在内部绘制的?

2d javafx polyline javafx-8 javafx-3d

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

如何用两种颜色填充 JavaFX 球体

如何使用线性渐变(如 2d Circle)填充 JavaFX 3D 球体?我使用 JavaFX Scene Builder。

在此处输入图片说明

在此处输入图片说明

css java javafx javafx-3d

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

为什么漫反射贴图不适用于我的 MeshView?

问题

我想将漫反射贴图应用于 MeshView。当我将带有漫反射贴图的材质应用到 MeshView 时,它不可见。然而,应用于 Box 的相同材质是可见的。

我需要做什么才能将漫反射贴图应用到 MeshView?

代码

该代码生成带有随机噪声的图像。该图像用作 PhongMaterial 中的漫反射贴图。显示图像,其上方是应用了材质的框,框上方是应用了材质的 MeshView(金字塔)。该材料在金字塔上不可见。您可以使用鼠标拖动进行旋转。

import java.util.Random;

import javafx.application.Application;
import javafx.geometry.Point3D;
import javafx.scene.Group;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.SceneAntialiasing;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.image.PixelWriter;
import javafx.scene.image.WritableImage;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Box;
import javafx.scene.shape.DrawMode;
import javafx.scene.shape.MeshView;
import javafx.scene.shape.TriangleMesh;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;

public class Test extends Application {

    private double mousePosX, mousePosY;
    private double mouseOldX, mouseOldY;
    private final Rotate rotateX = new Rotate(20, Rotate.X_AXIS);
    private final Rotate …
Run Code Online (Sandbox Code Playgroud)

javafx javafx-3d

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

如何正确渲染 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
查看次数

使用 CSS 在 JavaFX 中为 TextField 创建形状

我需要创建这个形状来TextField使用 CSS

示例图片

但我只成功创建了以下 UI:

我的照片

如何创建像示例图片这样的文本字段?

css javafx javafx-2 javafx-8 javafx-3d

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

javafx中3D场景上的静态2D文本

我的目标是在 javafx 中将 2D 文本叠加在 3D 场景上,如所示这个图片

使用子场景不是一个有效的选择,因为我希望 3D 模型能够占据屏幕上的整个空间。

我尝试向场景添加标签并关闭深度缓冲,但是一旦模型旋转(实际相机改变位置),正确的定位就会中断。(使用代码来控制相机

我是否可以通过使用锚点窗格并使用具有透明背景的 2D 场景,以某种方式在 3D 场景上覆盖静态 2D GUI?

关于堆栈溢出,我只发现了这些问题:
问题 1
问题 2
不符合我的确切需求。

javafx-8 javafx-3d

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

如何将多个 3D 对象合并为单个网格以消除视觉故障?

我一直在使用 JavaFX 3D 进行大量体素地形生成。出于某种原因,每当我生成风景时,风景的右侧总会有这些奇怪的黑线。我已经尝试更改PerspectiveCamera的近和远剪辑值,但它们似乎没有效果。如果您需要,我的近剪辑值设置为0.1,我的远剪辑值设置为100000.0

这是我的程序的图片,如您所见,主要在风景的右侧存在明显的视觉故障。

我很确定视觉故障是由每个立方体都是它自己的对象这一事实引起的。所以在上图中,我创建了 22500 个立方体对象,并用调整后的颜色放置它们以形成景观。

有没有办法创建一个巨大的网格来替换我的大量立方体对象,同时仍然保留颜色?

感谢你的帮助!

java javafx mesh terrain javafx-3d

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

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

带有鼠标事件的轮廓 Shape3d javafx

许多 3d 程序使用轮廓来提示用户选择 3d 对象。

有没有办法模仿 javafx 中的这种行为?

java 3d javafx javafx-3d

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

标签 统计

javafx-3d ×10

javafx ×8

java ×6

javafx-8 ×4

3d ×2

css ×2

2d ×1

javafx-2 ×1

mesh ×1

polyline ×1

terrain ×1

uv-mapping ×1