渲染

本页面为自动翻译,可能包含错误。如果发现问题,请通过“编辑此页面”链接帮助修正。

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 阴影贴图。金属材质会拾取环境镜面反射项,因此在没有环境探针的情况下不会呈现黑色。有关 LightMeshRenderer 组件,请参阅组件;有关 PBR 材质模型,请参阅资源与材质


← 所有文档 编辑此页面