贴图管理模块及 UI 上的 3D 模型

原文约2000字,阅读约需5分钟。发表于:

我们游戏引擎的 UI 使用的是类似网页的技术,是将 RmlUI fork 出来的自行维护的版本 。目前游戏中大量遇到的一个需求是:把 3d 模型作为 UI 组件使用。这个需求在我经历过的历史项目中都曾遇到过,在不同的游戏引擎中我见过各种解决方案。 最典型的是 RPG 类游戏的人物属性面板。通常需要在面板上显示 3D 人物模型。通常还可以旋转这些模型,让玩家 360 度观看。我们目前的游戏类似 Factorio ,没有 Avatar ,但点开建筑的信息面板时,也需要把建筑的 3D 模型动态展现出来。 最初,我们没去细想 3D 渲染怎么和已有的 RmlUI 结合在一起,直接把模型渲染在 UI 层之上。相当于在 UI 模块外开了个后门。UI 上只需要把位置空出来,等 UI 渲染完后,再叠加 3D 模型上去。但这样做的坏处是很明显的:3D 模型无法和 UI...

作者通过构造render target和改造RmlUI,使其支持3D模型渲染,从而在UI上增加更多3D模型。作者介绍了重构的贴图管理模块,使用字符串作为唯一索引,可以从本地文件系统或特定渲染器生成图片。通过贴图管理器和render服务,可以在UI上显示3D模型,包括动画图和静态图。作者还指出,如果需要在UI上插入视频播放,也可以按照图片处理。

相关推荐 去reddit讨论