如何在 JavaFX 3D 中制作矢量图形样式线?

How do I make a vector graphic style line in JavaFX 3D?

为了概述我的整体 objective,我想显示一组可以像 google 地球一样缩放和平移的世界政治边界(国家)和状态。我的数据集非常详细,大约有 1,200,000 lat/lon 个点来定义我想要显示的边界。我正在探索使用 JavaFX 3D 来利用硬件图形加速。

我在执行此操作时获得了可接受的性能,但我 运行 遇到 javafx.scene.shape.Polyline 呈现方式的问题。当我尝试在 360x200 单位 2d 平面周围的场景图中绘制代表我的世界政治边界的折线时,当我放大时它会严重像素化,就好像该线是低分辨率图像一样。

我真正想要的是无论我离线对象有多近或多远,线都在屏幕上呈现为常量 'width'。我可能使用了错误的形状对象,但其他对象显然不适合我想要做的事情。我也试过 'Path/LineTo' 结果相同。

F(X)yz 看起来很有希望,但我希望避免使用第三方库。

过去我使用过原始 java3d,但不记得有过这个问题。因为我使用了 LineArray.

对于如何使用 JavaFX 3D (java 1.8) 实现绘制看起来相同的 line/ray/vector,无论您如何 'close/far',您有什么建议吗? F(X)yz 我最好的选择?渲染设置提示?

我前段时间问过 similar question,由于 JavaFX 缺少 3D 组件,恐怕 F(X)yz 仍然是最好的方法。

在您的特定情况下,PolyLine3D 就是您想要的。它使用引擎盖下的网格视图在 3D 环境中启用硬件加速。另一种方法是自己对边界进行三角测量并使用 TriangleMesh。由于您希望线宽保持相同大小,因此每次缩放地图时都必须这样做。