渲染
本页面为自动翻译,可能包含错误。如果发现问题,请通过“编辑此页面”链接帮助修正。
Turian 使用单一的 SDL3-GPU 渲染器(Vulkan / Metal / D3D12)进行 3D 渲染, 该渲染器由编辑器视口和发布游戏共享——因此你在编辑时看到的就是游戏实际绘制的内容: 金属粗糙度 PBR、方向阴影映射、法线映射,以及压缩纹理(BCn / KTX2)的直接支持。
两个小型模块
渲染器被拆分为与引擎无关的包,这样它就不会与编辑器的 UI 工具包耦合:
gpu—— 基于 SDL3 GPU API 的轻量窗口 + GPU 设备平台层。它拥有操作系统窗口、设备和交换链,并暴露转换后的 SDL3 API 以及每帧命令缓冲区。它还提供了一个截图辅助函数(纹理回读 → TGA),便于调试。render—— 场景渲染器:PBR 管线、阴影通道、网格/纹理上传和绘制循环。它依赖于gpu和引擎的场景/资源类型,并通过回调函数接收 GPU 设备、颜色目标、场景节点和资源字节数据——不依赖 UI。
编辑器向 render 提供 dvui 的设备和一个离屏目标;游戏提供 SDL 窗口的交换链。两者都通过 GUID 从相同的字节源接口解析资源(网格、纹理、材质)——在编辑器中从预处理的 .cache 中读取,在游戏中从打包的 .oap 中读取。
软件回退
当 SDL3 GPU 不可用时(例如无头 CI),游戏会回退到 CPU 软件光栅化器。正常构建默认使用 GPU 路径。
光照
每帧最多支持 8 个光源(方向光 / 点光源 / 聚光灯)。第一个投射阴影的方向光驱动 PCF 阴影贴图。金属材质会拾取环境镜面反射项,因此在没有环境探针的情况下不会呈现黑色。有关 Light 和 MeshRenderer 组件,请参阅组件;有关 PBR 材质模型,请参阅资源与材质。