问题标签 [javafx-3d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javafx - 如何在 javafx 中“添加”两个三角形网格?
我正在制作由两个函数生成的体积的 3D 模型:一个作为基础(在 x 轴的交点处),另一个作为体积的高度。这是通过近似小零件的体积来实现的,绘制该网格,然后将所有网格添加在一起。但是,我无法弄清楚如何将网格添加在一起。
这是我的网格创建者:
这应该创建一系列右梯形棱镜,但最终只绘制了该系列中的第一个网格。
任何人都可以帮忙吗?
先感谢您。
java - 将 MeshVIew 放置在场景中
我想在 JavaFX 的 MeshView 上显示 3D 图形。因为我想构建一个简单的模型查看器,所以为了清晰起见,我创建了选项卡。其中一个包含一个组(meshGroup),我在其中添加了一个子场景(MeshView 在一个组中)在运行时。我无法将该模型以完整可用尺寸放置在 AnchorPane 的中间。(我也试过 Pane & HBox)。 图片
控制器看起来像这样:
我在这上面花了很多时间,但我无法找到摆脱 MeshView 的直接方法。我很感激任何反馈。
javafx - 具有透明度的 JavaFX 3D TriangleMesh
我有一个要用于 TriangleMesh 的纹理(它是一个简单的立方体)。纹理的某些部分是透明的。当我将纹理放在网格上时,它是黑色的。有没有可能改变它?我想让它透明。
感谢您的帮助,谢谢
java - 如何用两种颜色填充 JavaFX 球体
如何用像 2d 圆一样的线性渐变填充 JavaFX 3D Sphere?我使用 JavaFX 场景生成器。
java - JavaFX 全景查看器的照明
我目前正在尝试使用其 3D 功能在 JavaFX 中设置全景查看器。我想我的几何结构是正确的(3D 子场景、TriangleMesh 等),但我正在与适当的照明作斗争。我需要的实际上是根本没有照明,只是纹理图像原始颜色的几何正确显示。如果没有指定明确的照明,JavaFX 似乎会引入一些不需要的默认照明,这让我抓狂。
谁能告诉我如何设置材质和光源以及其他相关的东西,如果我根本不想有任何照明,而只是单纯的图像(纹理)颜色?
编辑:这是请求的代码示例。当盒子旋转时,由于照明,您可以清楚地看到盒子的角落。如果您可以关闭照明,这些角落应该会消失。
javafx - 为什么漫反射贴图没有应用到我的 MeshView?
问题
我想将漫反射贴图应用于 MeshView。当我将带有漫反射贴图的材质应用到 MeshView 时,它是不可见的。然而,应用于 Box 的相同材料是可见的。
问题
要将漫反射贴图应用于 MeshView,我需要做什么?
代码
该代码生成带有随机噪声的图像。该图像用作 PhongMaterial 中的漫反射贴图。将显示图像,在其上方是应用了材质的框,在框上方是应用了材质的 MeshView(金字塔)。该材料在金字塔上不可见。您可以使用鼠标拖动进行旋转。
截屏
非常感谢你的帮助!
javafx - 无法将 JavaFX 灯光添加到多个子场景
问题
在 JavaFX 中,每个 3D 场景都有一个默认灯光。这是从 Scene 顶部发出的 PointLight。
我试图在我的程序中展示光的不同可能性,但我遇到了麻烦。如果我只添加一个默认的、PointLight 和 AmbientLight 的 SubScene,那么一切都会按方面进行。但是,如果我再添加一个具有环境光和点光的组合的 SubScene,我将得到屏幕截图 2 中显示的结果。似乎所有其他 SubScene 都失去了光并回退到它的默认光。也许我遇到了一个错误?
系统测试
- 操作系统:Windows 8.1 x64、Windows 7 x64
- 显卡:AMD 4200 高清、英特尔高清 3000
- Java:1.8.0_45 JDK/JRE x86(32 位),1.8.0_60ea x64
具有 3 个子场景的舞台 - 默认、点、环境
具有 4 个子场景的舞台 - 默认、点、环境、(点、环境)
例子
这是一个最小、完整和可验证的示例
MCVE 的输出:
问题
我做错了,还是这是一个错误?有人可以确认相同的行为吗?
更新
我进行了一项新测试,在其中添加了两个新灯:pointLight2 和ambient2。这两个我都添加到第四个领域。此解决方案有效。
似乎灯光将被合并并仅添加到一个场景中并从所有其他场景中删除。
结论
正如jewselsea 在他的回答中解释的那样,这不是错误!但从我的角度来看,他们应该在 Light Classes 中再次重复该声明或做出提示,因为这有点令人困惑。
javafx - 自定义 javafx 3d 框或旋转堆栈窗格
我的目标是玩骰子游戏。我正在使用 javafx。
第一个问题:有没有一种简单的方法可以在 javafx 中自定义 3d 框。如果我必须在模具的每一面都添加一个图像,或者我只使用一个环绕盒子的图像,这对我来说并不重要。(经过大量研究,我没有找到任何关于它的信息。)
在下面的代码中,我创建了一个堆栈窗格,它是一个 3d 立方体。它由 6 个矩形组成,每个矩形都填充有模具的一侧(1 到 6)。如果我将堆栈窗格旋转 180 度,则应该在前景中的 Rectangle 在背景中,而之前在前面的 Rectangle 将再次可见。
第二个问题: 如何解决这个问题?
还是有更好的方法来实现这一点?首先我在考虑使用 TriangleMesh,但它似乎和我的版本一样复杂。
java - JavaFX 3D 旋转
我的问题是:
- 以下代码基于 oracle 教程站点中的“MolecularSampleApp”,但非常简化。它仅显示一个框和一个红色球体以用于定位。旋转的顺序是围绕 x 轴,然后是 y 轴,最后是 z 轴。随后的旋转显然是在与之前的旋转一起旋转的坐标轴中完成的。(我用立方体和 90° 旋转序列一次又一次地检查)所以,当用户用鼠标旋转相机视图时,这是非常不直观的,因为旋转行为在围绕垂直屏幕轴旋转后发生了变化(因为然后水平轴也将旋转)。用我下面的代码或 MolecularSampleApp 试试——同样不自然的感觉。有没有一种简单的方法可以克服这个问题?
- 但我什至不明白的是执行 mousePressed-code 时的行为:在这里,相机总是在 FIXED 系统中旋转!轴不随相机旋转,尽管它的代码基本相同(除了旋转角度当然不在这里累积)。有谁知道这怎么可能?
javafx - MeshView scalafx/javafx 的剪裁
我有以下测试代码,我尝试用圆圈剪辑 MeshView。我还尝试将 meshView 放入一个组中,然后对其进行剪辑,但这会导致一个黑色圆圈。
有没有办法剪辑一个MeshView,最好不要把它放到一个组中?