首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3d图形引擎的这个属性的名称和最常见的实现是什么?

3d图形引擎的这个属性的名称和最常见的实现是什么?
EN

Stack Overflow用户
提问于 2009-06-04 01:03:57
回答 3查看 498关注 0票数 3

我想说的是“无限制的参考框架”或“与空间相关的独立子环境”,但我认为这是不对的。

想象一下,两艘长而圆柱形的宇宙飞船在同一方向的平面上相互漂浮在一起。每艘船都有自己的房间和走廊,玩家可以在第一人称环境中自由移动。透过窗户,每艘船的船员都可以微笑并向另一艘船的船员挥手。

第一艘船发射推进器并在第二艘船下移动。两艘船停靠,气闸打开。第一艘船的船员现在需要爬上第二艘船。气闸关闭,船只分离。

第一艘船再次移动,只是这一次它停靠在第二艘船的顶部。气闸打开,这一次,第一艘船的船员需要进入第二艘船。

每艘船都是一个独立的三维环境,它与一个更大的全球环境中的其他自给环境相互作用。

我看到了两种可能的实现。

1)“搬运工”。每艘船对其内部的每一个物体施加一种力。当第一艘船相对于第二艘船移动时,这种移动被转化给船员以改变他们的全球空间位置。这似乎计算费用很高..。

2)“伪装者”。每艘船的窗口都显示来自虚拟全局空间的模拟输出,但是船只和它们的内容实际上并不是相对移动的。船舶之间的连接是一个动态门户,以正确的方向将两艘船的“舱室”连接起来。

这个属性的名称是什么?在真实的3d引擎中,我可以在哪里找到例子?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-04 01:11:05

许多3D引擎通过场景图来处理这个问题。在大多数场景图中,您将拥有每个包含子节点的父“节点”,在这种情况下,每艘船都是一个节点,船上的人员、房间、家具等都是子节点。

孩子的职位是相对于他们的父母来说的。这使得“移动”船变得很简单,因为你只是移动船,而它是随船移动的(对他们来说,没有改变他们的位置)。

在您的示例中,向上和向下部分只是在本地向上或向下移动的问题。在某个时刻,当您通过气闸时,您会将子船从一个父船(船)移到下一个父船(另一艘船),并改变它的位置(即:从ship1底部0,0,-20移动到船2的“顶部”,在0,0,20,等等)。

OpenSceneGraph快速启动指南很好地讨论了这个概念。

编辑:

作为一个相关的补充,许多面向游戏的3D引擎,如食人魔,也提供了处理自定义空间分割在他们的场景图形的手段。例如,Ogre,开箱即用,允许你在场景中使用Bsp和Octree分区器,这是他们如何处理一个人在一艘船上看不到(更重要的是,甚至不试图渲染)第二艘船,如果有一堵墙,等等。对于像你这样的例子,如果你想让复杂的场景保持高度脆弱,那么使用空间解析来剔除是至关重要的。

票数 7
EN

Stack Overflow用户

发布于 2009-06-04 01:15:37

里德回答的延伸。这里有一个来自旧不真实的技术特征列表。的片段

动态场景图技术 动态场景图(DSG)技术是门户技术的自然延伸。动态场景图由一个根节点(对应于玩家的周围环境)和一个子节点的层次树组成。 每个DSG节点都有一个坐标系统转换、裁剪卷和其他与其相关的呈现状态。虚幻的渲染引擎在每一帧呈现时构建动态场景图.当观众的能见度通过门户向外传播时,会生成新的场景图节点。场景图节点是许多真实效果和特殊效果的基本构建块,例如:

  • 镜子表面。
  • 半反射材料,如部分反射光的大理石表面。
  • 非欧几里德,可重定向的“翘曲”门户效应,通过传送者。
  • 透过窗户看到无限的天空区域,在其中建造天空、行星、山脉和其他物体。
  • 具有独立坐标系的天空和背景,用于独立的平移和旋转。

DSG渲染的优点是所有的节点效果都是完全可互操作的。例如,一旦定义了镜像DSG节点,镜像就会自动被递归地支持(对于反射镜类型的效果);镜像与天空一起工作;镜像与翘曲门户一起工作;翘曲门户与天空一起工作,等等。 虚幻的动态场景图技术是一个基本的构建块,它将在该技术的未来版本中加以扩展,以纳入诸如在不同级别之间查看、在Internet上的多台服务器上查看以及折射水等下一代效果。

票数 3
EN

Stack Overflow用户

发布于 2009-06-04 01:10:29

我不能告诉你这件事的确切名称,但我认为用openGL很容易实现--当你画出每艘宇宙飞船时,你会把它转换成3d世界中正确的位置。然后,当你画出飞船内的所有物体时,不要重置你的世界矩阵--保持平移不变,所有东西都会相对于船的位置绘制。

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

https://stackoverflow.com/questions/948084

复制
相关文章

相似问题

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