从零开始渲染器-01. 分析bevy引擎中主世界到渲染世界的数据传输。

多世界设计

bevy的渲染流程位于独立主世界的渲染世界上。渲染世界和主世界是两个不同的ecs实例,因此渲染世界在实际执行渲染前需要从主世界获取对应的数据。 渲染世界获取主世界的数据的所有行为被规定在ExtractSchedule中。

SyncWorldPlugin

SyncWorldPlugin通过给实体添加SyncToRenderWorld组件来自动绑定RenderEntity.RenderEntity为渲染世界的实体。 SyncComponentPlugin自动给组件添加SyncToRenderWorld组件。

ExtractResourcePlugin

ExtractResourcePlugin用来同步主世界的资源到渲染世界。

ExtractComponentPlugin

ExtractComponentPlugin用来同步主世界的组件

ExtractInstancesPlugin

ExtractInstancesPluginy用来提取主世界的数据。