我正在尝试编写一个超越多线程游戏引擎的编辑器。理论上,通过编辑器,场景的内容可以完全改变,但我一直没能想出一个很好的引擎来应对这些变化。 (即在渲染器绘制实体时删除实体)。此外,在我使用可能被删除的实体或资源的每个实例中,我都不愿意编写代码来管理锁。我想必须有一个相对更优雅的解决方案。
有没有人有任何想法或策略可供我引用?
谢谢!
最佳答案
除了@lassevk 建议的两阶段过程之外,您还可以使用 Pipe structure将命令“推送”到渲染器,以便这些更改以渲染引擎的另一个工作项的形式出现。
例如,假设您的引擎遵循如下工作流程:
- 计算位置
- 过程物理
- 过程灯过程相机
- 渲染场景
您可以在位置 0 的工作流中添加一个新项目,称为 Process Changes,它从 Pipe 中提取信息并将其合并到场景中。
关于c++ - 多线程策略? (通过Editor在多线程引擎中修改场景),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/798410/