问题标签 [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 投票
1 回答
737 浏览

java - JavaFX 的 Javadoc(不是 JavaFX api!);从源头?从项目场景图?

JavaFX 附带的 API 是针对 JavaFX 语言的,我有一个理由去学习,但更多的理由不去学习。我知道 Project Scenegraph(scenegraph.dev.java.net,AKA Scenario)是同一个库。我只会从 Project Scenegraph 生成 javadocs,但它自 2007 年以来就没有更新,而且邮件列表已经死了。

有谁知道 JavaFX javadocs 的下载,或者下载源代码以便自己生成它们的方法?

0 投票
2 回答
177 浏览

c++ - 从另一个类调用时,类中的方法出现问题

我正在编写一个简单的场景图来保存一些对象,这样我就可以在 OpenGL 中控制这些对象的渲染和绘制。我有两个类,一个称为 GameObject,它定义了具有某些参数的对象,例如位置和速度以及如何绘制对象。它有一个名为 update() 的方法,用于计算位置的任何变化,然后调用 draw() 将自己绘制到屏幕上。

另一个类称为sceneNode。这个类控制我用来存储对象的数据结构。这个类的一个实例包含一个指向 GameObject 实例的指针,以允许我访问数据,并且 sceneNode 具有存储在向量中的 sceneNode 类型的子节点。

每个班级都可以很好地独立工作。我可以将孩子添加到场景图等中,我可以创建一个游戏对象并告诉它自己绘制,一切都按预期工作。

然后我向sceneNode添加了一个名为render()的新方法,该方法获取指向gameObject的指针并在调用节点的任何子节点上的render()之前调用它的更新函数。

问题是:调用了 update() 方法并绘制了游戏对象,但它始终绘制在同一个位置,并且尽管有速度和位置变化,但它不会移动。使用 GameObject 的实例调用 update() 函数会绘制对象并在屏幕上移动对象。我已经盯着这段代码好几个小时了,看不到我错过了什么。我对指针和从另一个类调用方法的想法还很陌生,所以我可能错过了一些明显的东西。

以下是相关方法:

GameObject.cpp:变量位置、速度等被列为受保护。

场景节点.cpp:

sceneNode.h:这是在 sceneNode 中设置 GameObject 指针的方式

我不知道为什么 render() 方法的位置没有改变,而是 update() 方法的位置没有改变,因为它们都在调用同一个东西?

谢谢你的帮助

0 投票
1 回答
90 浏览

java - 如何在我的 3D 应用程序中定义和标准化单位?

我开始为 Android 上的 OpenGL ES 1.1 应用程序设计我的对象图。

在实际绘制我的三角形并控制它们的大小时,有什么可取的?我是否应该将所有顶点以相对于彼此的单位存储,然后将它们乘以我在绘制期间传递的值(GL10 gl)?

当需要进行截锥体剔除时,这种方法会产生什么影响吗?

0 投票
0 回答
609 浏览

transform - Open Inventor(Coin3D) 中的某些转换

我对 Open Inventor(Coin3D) 很陌生,并且遇到以下问题:

我有一个 SoSelection 持有一个根节点(也是 SoSeparator)。并且根节点拥有多个 SoSeparator 节点。这些 SoSeparator 节点中的每一个都包含一个 SoTransform 节点和一个 SoCube 节点。

当我选择一个立方体节点时,我希望到所选立方体一定距离内的所有其他立方体围绕所选立方体排列成一个圆圈。(此外,所有立方体都应该在一个平面上)附加信息:我的立方体总是以相机方向定向(cubeTransform_->rotation.connectFrom(&camera_->orientation)

假设选定的立方体是圆的中心,我如何在平面上的一个圆圈中平移其他立方体(垂直于所选立方体和相机之间的矢量)?特别是我如何在平面上找到与轴有一定距离的圆的坐标(从中心立方体到相机)。

我已经做的是在选择一个立方体后立即搜索一定距离内的所有立方体。结果,我已经在 SoPathList 中拥有了所需的分隔符(其中包含相应的 SoTransforms 和 SoCubes)。现在我想通过修改相应的 SoTransform->translation 值来排列立方体。

问候马克

0 投票
4 回答
4035 浏览

android - 适用于 Android 的 3D 场景图工具包

我想知道是否有任何 3D 场景图工具包可用或至少正在为 Android 开发?我找不到任何东西,假设所有现有的 Java 解决方案都不能在 Android 平台上运行。

0 投票
2 回答
621 浏览

haskell - Haskell中的SceneGraph遍历

我想在 Haskell 中使用Data.Tree包含TransformShape节点实现一个简单的 SceneGraph。在 SceneGraph 中,空间变换在遍历时累积并应用于形状以进行渲染。

假设我们有一个场景,其中一个对象向右移动,由底部的正方形和顶部的圆形组成

我想出了这个树定义:

渲染将是这样的:

我的问题是:

1)你如何定义一个traverse函数,它累积转换并调用渲染任务?

2)如何避免进行遍历IO?

3) 是否有更短的版本来定义这棵树?除了第一个 Node 定义和所有空的 subForests 之外的所有内容实际上都是多余的。

谢谢!

0 投票
3 回答
2140 浏览

c++ - 在 C++ 场景图上实现 MVC 模式

我有一棵代表 3D 模型(场景图)的对象树。树节点具有不同的类型(实现为来自公共基类的派生类)。例如,有一个表示多边形的节点,或者一个对其子节点应用坐标变换(旋转、平移)的节点。这也是一个要求,第三方供应商应该能够实现新的节点类型,并通过插件添加它们(我使用 Qt 作为 GUI 框架)。因此,树中可能存在节点,其类型在编译时是未知的。

现在我想实现一个类,作为这个场景图的视图。对于每个树节点类型,视图必须采取适当的操作(绘制多边形、变换等)。我的想法是为每个节点类型实现视图类,并让顶级视图类根据节点类型委托给这些类。(第三方供应商将能够实现自己的视图委托类)

所以我的问题是:如何以高性能和可扩展的方式确定节点的类型?

到目前为止我的想法:

  1. 我可以为每个节点类添加一个类型标识符。这可能只是一个整数(出于性能原因,字符串不适合)。问题在于第三方供应商的类型标识符管理。如何确保不同的节点类型(例如不同的供应商)不使用相同的标识符?

  2. 我可以实现绘图代码,或者至少直接在节点中调用适当的绘图委托对象。但是我的节点对象最好不知道它们的视图对象。也不可能给每个节点对象一个专用的视图对象(我们正在谈论数万个节点)。

那么,你的想法是什么?是否有完全不同的方法来处理这个问题?请记住:该解决方案不应该需要哈希表查找或其他计算密集型算法,因为我需要实时绘制图形。

提前致谢, McNumber

0 投票
2 回答
3512 浏览

java - 用于 GUI 的 Java 2D 场景图形库

我正在寻找用于构建 GUI 应用程序的 2D 场景图库。它应该很快,使用 Java2D 并且与 Swing 兼容(可以嵌入到 Swing 应用程序中,也可以显示 Swing 组件)。对动画的支持是一个加号。

  • 您对某些图书馆有任何经验吗?
  • 有没有我错过的图书馆?
  • 我必须补充一点,我并没有完全被 Scala 库冒犯。

项目场景图

  • 似乎相当快
  • 仅 GPL(无 LGPL)
  • 支持动画
  • 2年前放弃
  • 作为 JavaFX 的前一部分,它是 Sun 的产品

G

  • 不知道快不快
  • LGPL
  • 没有动画
  • 最新版本 12 月 9 日

Piccolo2D

  • 用于“可缩放的用户界面”
  • 看起来像一个学术项目
  • 高活跃度的谷歌代码项目
  • BSD 许可证
  • 不知道快不快
  • 不知道有没有动画

纸浆核

  • 是一个游戏库
  • 针对小程序部署(将其用作应用程序是hacky)
  • 非常快
  • 支持动画
  • 2-3年没有发展
  • 可能根本没有 Swing 支持

jTem

  • 更大项目的一部分(乍一看)
  • freeBSD 许可证
  • 不支持动画
  • 看起来非常小
0 投票
1 回答
1111 浏览

collada - 什么是“Collada”场景图?

什么是 Collada 场景图?

我可以拍摄从 Google 3D 仓库下载的场景并以某种方式将其转换为 Collada 场景图吗?

该过程是否以某种方式分割场景?

0 投票
2 回答
430 浏览

java-3d - Java3d 场景图可视化工具

是否有可视化给定 java3d 应用程序的场景图的工具?就像有自动生成 UML 图的工具一样。

编辑:如果没有,是否有任何好的免费工具可以绘制此类图表?操作系统