游戏引擎设计中的 GUI 系统和渲染系统有什么区别?
What is the difference between a GUI system and Rendering System in Game Engine Design?
阅读 part 1 Michael Kissner 关于从头编写游戏引擎的博客文章后,我对很多概念变得更加清晰。但是我似乎被卡住了的一个问题是,用于渲染的系统和用于 gui 的系统有什么区别。是什么让这两个系统彼此分离。我的想法可能有缺陷,但 GUI 不必是 "rendered" 或者这样做是否与 sprite 之类的东西不同。感谢您的帮助!
其实你的想法很好!
由于GUI系统通常使用游戏的渲染系统。然而,这两个系统仍然倾向于分离。举个例子,GUI 系统 将处理按钮、布局、警察、点击或滚动的数据。然后它将一切简化为一堆顶点、三角形和纹理,并将其提供给渲染系统。
这就是 hud of Unreal Engine 4 or our dear imgui 的工作原理。
您还可以为游戏编辑器或游戏工具添加额外的 GUI 系统,但它通常是外部的并且包含游戏引擎,而不是相反。
在这种情况下,渲染系统将以某种纹理输出整个帧,您可以将其显示在任何您喜欢的地方。您将看到它是通过 Qt 等库以这种方式完成的,直接作为 Maya 等软件的扩展或使用 Unreal Editor 或 Unity Editor 等专有编辑器。除非作为模组工具,否则这种类型的 GUI 将永远不会在玩家端结束。
阅读 part 1 Michael Kissner 关于从头编写游戏引擎的博客文章后,我对很多概念变得更加清晰。但是我似乎被卡住了的一个问题是,用于渲染的系统和用于 gui 的系统有什么区别。是什么让这两个系统彼此分离。我的想法可能有缺陷,但 GUI 不必是 "rendered" 或者这样做是否与 sprite 之类的东西不同。感谢您的帮助!
其实你的想法很好!
由于GUI系统通常使用游戏的渲染系统。然而,这两个系统仍然倾向于分离。举个例子,GUI 系统 将处理按钮、布局、警察、点击或滚动的数据。然后它将一切简化为一堆顶点、三角形和纹理,并将其提供给渲染系统。
这就是 hud of Unreal Engine 4 or our dear imgui 的工作原理。
您还可以为游戏编辑器或游戏工具添加额外的 GUI 系统,但它通常是外部的并且包含游戏引擎,而不是相反。
在这种情况下,渲染系统将以某种纹理输出整个帧,您可以将其显示在任何您喜欢的地方。您将看到它是通过 Qt 等库以这种方式完成的,直接作为 Maya 等软件的扩展或使用 Unreal Editor 或 Unity Editor 等专有编辑器。除非作为模组工具,否则这种类型的 GUI 将永远不会在玩家端结束。