首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SceneGraph之外使用SceneTree有什么意义?

在SceneGraph之外使用SceneTree有什么意义?
EN

Stack Overflow用户
提问于 2015-07-16 08:05:48
回答 1查看 170关注 0票数 0

这份报告中,介绍了SceneGraph和SceneTree。

ST (SceneTree)本质上是SG (SceneGraph)的未折叠同步副本。

因为您无论如何都需要ST,因为:

  • 它提供了需要保存属性的实例。
  • 无论如何,您需要遍历ST以更新转换和其他级联变量,例如可见性。

即使SG提供了较少的冗余,有什么意义让SG在第一?

EN

回答 1

Stack Overflow用户

发布于 2015-07-16 10:52:49

引用马库斯·塔文拉斯的话,他做了那个演讲,他被问到了同样的问题:http://pastebin.com/SRpnbBEj (关于IRC (启动~9:30)的讨论的结果)。

我的重点

一般来说,SceneGraph的一个论点是,人们已经有了他们的自定义SceneGraphs实现,并且需要保留它们,因为遗留原因是,而这个SceneGraph就是为什么在呈现阶段CPU成为瓶颈的原因。我的演讲的目的是展示如何以GPU可以获得瓶颈的方式增强遗留的SceneGraph。一个非常有趣的实验将是将这些技术添加到OpenSceneGraph…中 此外,SceneGraph在数据操作、数据访问和重用方面要强大得多。也就是说,如果要实例化具有多个节点的复杂对象,钻石形状可能非常强大。我们的SceneGraph中的另一个强大特性是属性特性,它将在未来用于动画(搜索LinkManager)。使用LinkManager,您可以创建一个连接属性网络,并让数据按定义的顺序沿链接流动。动画缺少的是曲线对象,它可以用作动画的输入。所有这些特性在每个对象级别上在内存大小方面都有一定的成本,而更多的内存意味着在遍历过程中会有更多的单身汉,这意味着更多的CPU时钟花费在遍历上。 SceneTree被设计为只保留的层次结构和必须沿层次结构传播的少数属性。这样,节点非常轻量级,因此,如果需要的话,遍历非常高效。这也意味着SceneGraph中提供的许多特性在SceneTree中不再可用。尽管有了SceneTree获得的知识,应该可以编写一个SceneGraph,它提供了SceneTree的大部分性能特性。 根据您正在编写的应用程序类型,您甚至可能决定SceneTree太大,您可以直接在RiX这样的接口上编写应用程序,该接口不再具有层次结构,从而消除了另一个层;-)。

因此,第一个原因是人们已经习惯了使用显微镜,并且存在许多自定义实现。

除此之外,场景实际上是一个经过剪枝的场景,其中只有必要的组件,这意味着一个场景对艺术家和建模人员更有用,因为它更好地抽象了场景。例如,复杂的属性可能是影响人群中每个人的外观的RNG种子。

在一个人格图中,根Person节点将只有一个属性seed。它的孩子将选择准确的网格和颜色的基础上的种子。但是在这棵扩展的树中,用来替代发型、服装等的未使用的网格已经被修剪过了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31448625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档