在这份报告中,介绍了SceneGraph和SceneTree。
ST (SceneTree)本质上是SG (SceneGraph)的未折叠同步副本。
因为您无论如何都需要ST,因为:
即使SG提供了较少的冗余,有什么意义让SG在第一?
发布于 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。它的孩子将选择准确的网格和颜色的基础上的种子。但是在这棵扩展的树中,用来替代发型、服装等的未使用的网格已经被修剪过了。
https://stackoverflow.com/questions/31448625
复制相似问题