我所在的团队正在构建一个使用 JavaFX 8 3D 操作视觉模型的应用程序。我们同时使用透视相机和平行相机。透视相机按预期工作。目前正在使用isEyeAtCameraZerofalse。这样做是为了最大限度地兼容并行相机。
调用camera.setNearClip()和时,透视相机会正确运行。camera.setFarClip()
并行相机似乎没有响应camera.setNearClip()和camera.setFarClip()。并行相机确实执行近距和远距剪切,但我无法更改并行相机剪切范围。
我正在使用基于 JavaFX 8 javadocs 页面上的伪代码的算法来计算传递到和 的Camera值。这似乎适用于透视相机,但不适用于平行相机。camera.setNearClip()camera.setFarClip()
任何人都可以提供有关如何管理并行相机的剪辑范围的建议吗?
我正在使用JavaFX通过鼠标拖动来移动3D立方体。立方体应停留在x和z轴所跨的平面上。我的解决方案效果很好,但是,如果我用鼠标将多维数据集移动得太快,或者当它遇到具有特定深度(y轴)的对象时,则假定鼠标在y轴和多维数据集上移动开始向前或向后跳跃。有没有一种方法可以将鼠标限制在xz平面上?一个更复杂的解决方案是将y长度投影回xz平面,但是我不知道该怎么做。我看了看JavaFX Moving 3D Objects,但是无法适应我的情况。
到目前为止,我的代码:
private volatile double relMousePosX;
private volatile double relMousePosZ;
public void enableDragMove(PaneBox paneBox) {
Group paneBoxGroup = paneBox.get();
paneBoxGroup.setOnMousePressed((MouseEvent me) -> {
if(isSelected(paneBox) && MouseButton.PRIMARY.equals(me.getButton())) {
relMousePosX = me.getX();
relMousePosZ = me.getZ();
}
});
paneBoxGroup.setOnMouseDragged((MouseEvent me) -> {
if(paneBoxGroup.focusedProperty().get() && MouseButton.PRIMARY.equals(me.getButton())) {
setDragInProgress(paneBox, true);
System.out.println(me.getY()); // should stay small value, but jumps to higher values at times, creating the problem.
paneBoxGroup.setCursor(Cursor.MOVE);
paneBox.setTranslateX(paneBox.getTranslateX() + (me.getX() - relMousePosX));
paneBox.setTranslateZ(paneBox.getTranslateZ() + (me.getZ() - relMousePosZ));
}
});
paneBoxGroup.setOnMouseReleased((MouseEvent …Run Code Online (Sandbox Code Playgroud) 我是JavaFX和Java的新手.我想知道如何在立方体或任何多面体的表面上制作场景?我想在任何3D形状的表面上播放视频.我怎么能这样做?
我正在制作我的第一个JavaFX项目,我需要渲染一些3D文本.我已经放置了一个PerspectiveCamera,我显示了一个文本节点,但它的Z维度为0,我不知道如何更改它.
提前致谢!
我的问题是JavaFX 3D中的Z-Buffer,它似乎无法在我的计算机上正常工作。
但是我确实启用了Z缓冲区,并且仍然按照将节点添加到场景图的顺序来渲染节点。
也许我缺少一些依赖关系或其他东西?
我正在发布代码,希望有人能帮助我。我正在创建一个过渡,使节点在椭圆路径上绕另一个节点移动。
先感谢您!
public class OrbitExp extends Application {
Group root = new Group();
Scene scene = new Scene(root, 800, 600, true, SceneAntialiasing.BALANCED);
PerspectiveCamera camera = new PerspectiveCamera();
@Override
public void start(Stage primaryStage) {
root.setDepthTest(DepthTest.ENABLE);
//Tried to set Depthtest explicitly. Assumed maybe it did not inherit:S
System.out.println(
"3D supported? " +
Platform.isSupported(ConditionalFeature.SCENE3D)
); // returns true
System.out.println("root z-buffer: " + root.getDepthTest());
initCamera();
Box
box1 = new Box(50,50,50),
box2 = new …Run Code Online (Sandbox Code Playgroud) 我研究过这个问题,但我仍然没有得到它.下面最短的代码显示了一个Pyramid完全灰色,而我尝试给6 triangles组成pyramid不同的颜色.那么......为什么不出现这些颜色?
请注意,我借用了getTexCoords().addAll(..)该问题的陈述,但显然我仍然做错了.是uv mapping吗?那到底是什么?我看过一个拓扑解释(sphere< - > map),但这与纹理/颜色有什么关系......?
感谢你的帮助 - 迈克尔
public class ColoredPyramid extends Application {
public void start(Stage primaryStage) {
Group root = new Group();
Scene scene = new Scene(root, 200, 200, true);
primaryStage.setTitle("Colored Pyramid");
primaryStage.setScene(scene);
primaryStage.show();
TriangleMesh colouredPyramid = new TriangleMesh();
float height = 100;
float hypotenuse = 150;
colouredPyramid.getPoints().addAll(0, 0, 0); //0-index:: top
colouredPyramid.getPoints().addAll(0, height, -hypotenuse / 2); //1-index:: x=0, z=-hyp/2 ==> Closest …Run Code Online (Sandbox Code Playgroud) 我想创建一个MMO 3D游戏,我正在寻找一个3D引擎,我的问题是关于javaFX 8,我可以用它来渲染很多 3D立方体,模型和动画而不会失去性能或者最好使用lwjgl吗?
最后一个问题是:javaFX 8可以用作3D引擎吗?
我有一个 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) 我正在使用JavaFX的JCSG库.
我有一些MeshView对象,我想将它们转换为CSG对象,有没有办法实现这一目标?
我需要在 javafx 中显示一个四边形网格,每个网格面有 4 个点我已经尝试了 fxyz库中的一些三角形网格示例,但不确定它对四边形如何工作,有人可以帮助指出 javafx 中的四边形网格示例。