问题标签 [scenegraph]

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.

0 投票
4 回答
4646 浏览

opengl - 有没有像样的 OpenGL SceneGraph API/框架?

我是 OpenGL 的新手。

想知道是否有任何好的场景图形 API/OpenGL 框架。

目前,我正在将 glut 与基于自定义节点的解决方案一起使用:我正在为每个节点设置子节点和兄弟节点,以调用遍历函数。

在管理场景中的动态元素时,我想要一个更灵活的解决方案。

0 投票
2 回答
2644 浏览

3d - 从场景图中获取绝对位置和旋转?

所以我几次遇到这个问题:

我的 3D 场景图中有一些对象,它是其他对象的子对象。让我们称它们为 c(子)和 p(父)。

c 的位置是相对于 p 定义的。因此 c 可能有一个位置 (1,0,0) 但当然,由于 p 有一些其他位置,比如 (1,2,3),它实际上并不是在我们世界的原始位置呈现,而是在 (2 ,2,3)。

现在让我们说由于某种原因我们想知道c在世界坐标中的绝对位置(或旋转,问题是一样的),这通常是怎么做的?

c 是否应该知道它的父级并能够查询该位置并将其添加到它自己的最终返回一个绝对位置?

0 投票
2 回答
792 浏览

papervision3d - Papervision 的场景图实现?

我正在尝试将 Papervision for Flash 用于我的这个项目,该项目涉及机械框架的 3D 模型,由几个连接的部分组成。部件之一的移动导致框架的其他部件的方向和位置的相应变化。我的理解是,使用场景图来处理这种链接运动将是理想的方式,至少,如果我要在更成熟的 3D 开发选项之一中实现,例如 OpenGL 或 DirectX。我的问题是,Papervision 是否有现有的场景图实现?或者,另一种生成所需 3D 运动的方法?

感谢!

0 投票
4 回答
5769 浏览

java - Java 的 3D 场景图库?

我正在寻找一个可靠的 Java 3D 场景图 API,它具有良好的文档、活跃的社区和允许商业使用的许可证。

我排除了com.sun.scenegraph,因为它是 GPL(并且似乎已经死了),因为这篇文章而排除了 Java3D,因为这篇文章而排除了 JMonkeyEngine 。有任何想法吗?

0 投票
3 回答
622 浏览

c# - 构建新的层次结构,使用抽象类还是接口?

我正准备为我的游戏构建一个 2D 场景图,我想知道我是否应该在其根部使用一个接口或两个或几个抽象类。这是我的要求:

  • 基础节点项
    • 需要能够存储矩阵
    • 还需要能够存储子节点列表
    • 以及单个父节点
  • 变换节点项
    • 需要有一个 Draw 方法(实现很可能是一样的)
    • 要求基节点项是从实现/派生的
  • 可绘制节点项
    • 需要有一个Draw方法(实现可能不同)
    • 要求基节点项从变换节点项旁边实现/派生,并且不能从变换节点项旁边实现/派生

我应该为此使用什么基类/接口方案?

0 投票
1 回答
132 浏览

c# - 在这种情况下,我如何表示差异?

我正在为 2D 场景图构建代码,并且我有一个抽象类 Node,它将用于指示可以在场景图中使用的项目类型。但是,由此实现的类具有不同的类型,例如叶节点和转换节点。我将如何指出这些差异?我会使用属性、其他接口还是什么?

编辑:看来我提供的信息不足。以下是我可以提供的关于我当前层次结构的尽可能多的信息:

  • 节点接口
    • 需要一个名为 TransformationMatrix 的矩阵
    • 需要一个名为 Children 的 INode 列表
    • 需要一个名为 Parent 的节点
    • 需要实现一个名为 Draw 的方法,该方法将一个 Matrix 作为参数并且不返回任何内容
  • 节点类
    • 实现 INode 接口
    • 绘图调用(具有 1 个矩阵类型参数的虚拟 void)仅调用每个子 INode 的 Draw 方法。
  • 从 Node 派生的各种类
    • 这些是实际节点,可以是转换节点、叶节点等。
0 投票
4 回答
1692 浏览

linux - 从场景图引擎开始还是直接使用opengl?

我是一名专业的开发人员,主要使用 Java,但在业余时间我喜欢玩不同的语言和库。问题是我想开始学习如何开发支持 3D 的应用程序或游戏。那里有很多引擎,但我担心直接使用这些引擎我将无法学习 3d 开发的基础知识,因为它们的水平很高。

我应该使用场景图引擎、SDL 之类的库开始编程,还是直接使用 opengl?

我在 linux 上进行所有开发,但我希望我开发的东西是跨平台的。

0 投票
3 回答
1696 浏览

performance - 是什么让 JavaFx 1.2 场景图刷新?

我的第一个问题=)。我正在编写一个带有用 JavaFx 编写的用户界面的视频游戏。行为是正确的,但我遇到了性能问题。我试图弄清楚如何弄清楚是什么排队了正在减慢应用程序的刷新。

我有一个相对复杂的场景图,它代表一个六边形地图。它可以缩放,以便您可以在地图中拥有 100 或 1000 个六边形。随着六边形数量的增加,gui 的响应性会降低。我使用YourKit(一个Java Profiler)来追踪这些延迟到主要的重绘操作。

我花了大部分时间试图弄清楚如何做两件事并理解一件事:

1) 使 CustomNode 在绘制时将某些内容打印到控制台。这将帮助我准确确定这些涂料何时排队。

2) 确定何时将 CustomNode 置于重绘队列中。

如果我回答 1 和 2,我也许能够弄清楚是什么将所有这些不同的节点绑定在一起。JavaFX 是否可能仅通过全局刷新工作(值得怀疑)?

0 投票
1 回答
2164 浏览

java - 将对象附加到 Java3D 中的视图平台

在我的 Java3D 应用程序中,我有一个可移动的查看平台(例如,由于“OrbitBehavior”和“KeyNavigatorBehavior”行为),所以我可以改变我对场景的看法。现在,我想在我的视图上添加一个“静态”对象,即当我移动视图时总是以相同的方式查看(例如,就像 FPS 中玩家的枪)。到目前为止,我尝试了以下两种方法来解决这个问题,但都没有奏效。

1/将我的对象直接附加到 ViewingPlatform(通过专用的 BranchGroup 和 TransformGroup)。在这种情况下,我的对象根本不会显示(我绝对不确定它实际上是否允许执行这样的操作......)。这是我的代码的这一部分:

代码:(使用viewViewingPlatform)

2/对我的对象应用相同的转换(旋转+平移;通过 getViewPlatformTransform() 上的 getTransform() 检索 - 我在这里也尝试了更复杂的方法,在这些转换和视图 PF 和对象的初始位置之间进行操作)作为查看平台的转换. 我使用专门的行为(与修改视图位置的行为相同的唤醒条件)实时执行所有这些操作。在这里,当我移动视图时,我的对象会消失,然后有时会在我使用 KeyNavigator 的缩放/去缩放操作时再次出现(但以一种非常不稳定的方式)。

我确信我正在尝试做的事情是可行的,可能很简单,但现在,我不知道......

提前感谢您的帮助

(PS:由于英语不是我的母语,我在解释我的问题时可能会很混乱:请不要犹豫,让我再写一遍无法理解的部分)

0 投票
3 回答
6801 浏览

c - 如何使用 OpenGL 3.x VBO 渲染动态世界?

尽管 OpenGL 3.x 本身的最新参考资料似乎很少,但 OpenGL 的实际低级操作相对简单。但是,我在尝试将如何操纵 VBO 以呈现动态世界的概念化时遇到了严重的麻烦。

显然,旧的立即模式方式不适用,但我该去哪里呢?我是否编写某种场景结构,然后将其转换为一组顶点并将其流式传输到 VBO,我将如何存储翻译数据?如果是这样,那看起来代码明智吗?

基本上真的不确定如何继续。