# librw：RenderWare Graphics 引擎的重新实现

> 以可移植的 C++ 库重新实现 RenderWare Graphics 中间件 API 的大部分内容，可读写其 PS2、D3D8、D3D9 和 Xbox 平台的 DFF 模型与 TXD 纹理文件，并旨在于各平台格式之间转换。场景由 Direct3D 9 和 OpenGL 后端渲染，PS2 渲染仅作为测试可用。README 称其用途是渲染 GTA 游戏；BSP 世界文件尚不支持。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-10-19
- 原始资源：<https://github.com/aap/librw>
- 一手来源：<https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/librw-renderware-reimplementation-case/>
- 记录 JSON：<https://awesomerea.org/resources/librw-renderware-reimplementation-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/librw-renderware-reimplementation-case/index.md)

## 使用条件与局限

- **前提条件：**librw 作为库，本身不需要特定的原版文件：应用程序向它提供 RenderWare 的 DFF 模型和 TXD 纹理字典，例如所渲染游戏中的这些文件。仓库不附带游戏数据，但其演示工具中包含四个小型 DFF 示例模型，仓库未说明其来源。
- **前提条件：**可用 premake5（仓库内提交了 premake5.exe）或 CMake 3.8+ 构建，选择 NULL、GL3 或 D3D9 平台；GL3（OpenGL 2.1+ 或 ES 2.0+）可选用 GLFW、SDL2 或 SDL3 处理窗口。premake 面向 Windows x86/amd64、Linux x86/amd64/ARM 以及 PS2，CMake 文件另提供 PS2 与 Nintendo Switch 工具链；演示工具附带一个内置 Dear ImGui 的 skeleton 应用框架。
- **范围：**所审阅的 master 快照日期为 2026-08-26；CMake 标注版本为 0.0.1，仓库没有带标签的发行版。README 称 librw 是 RenderWare graphics 的重新实现，“或至少是其中很大一部分”：并非所有预实例化的 PS2 DFF 都能载入，BSP 完全不支持，TODO 中仍列着变形动画、若干渲染管线和 PS2 渲染等待办项。ARCHITECTURE.MD 说明部分设计沿用原版 RW，部分出自作者本人。
- **测试证据：**GitHub Actions 工作流构建并打包 14 种配置：Windows 的 D3D9、GL3 与 null，macOS 和 Ubuntu 的 GL3 与 null，在 ps2dev 容器中构建的 PS2，以及在 devkitPro 容器中构建的 Switch。工作流不运行测试，仓库也没有测试套件或与原版 RenderWare 输出的对比。
- **许可：**LICENSE 对 librw 采用 MIT 许可；内置的 Dear ImGui 与 ImGuizmo 代码附有各自的许可文件，RenderWare 本身及任何游戏素材的权利归其所有者。

## 一手来源

1. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/README.md>
2. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/ARCHITECTURE.MD>
3. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/TODO>
4. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/CMakeLists.txt>
5. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/README.cmake>
6. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/premake5.lua>
7. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/.github/workflows/build.yml>
8. <https://github.com/aap/librw/tree/18532c2e13efbc1aa43f0b00b4459831f9414de0/src>
9. <https://github.com/aap/librw/tree/18532c2e13efbc1aa43f0b00b4459831f9414de0/tools>
10. <https://github.com/aap/librw/tree/18532c2e13efbc1aa43f0b00b4459831f9414de0/skeleton/imgui>
11. <https://github.com/aap/librw/blob/18532c2e13efbc1aa43f0b00b4459831f9414de0/LICENSE>

## 同分区更多条目：游戏

- [MechRewired：基于原版数据重建 MechWarrior 2](https://awesomerea.org/zh/resources/mechrewired-mechwarrior-2-case/index.md) · 案例
- [Nanolathe：附研究文档的 Total Annihilation 引擎重实现](https://awesomerea.org/zh/resources/nanolathe-case/index.md) · 案例
- [nfs-mw：用 Rust 重建《极品飞车：最高通缉》](https://awesomerea.org/zh/resources/nfs-mw-case/index.md) · 案例
- [NuVelocity Engine：重实现 Reflexive 的 Velocity Engine](https://awesomerea.org/zh/resources/nuvelocity-engine-case/index.md) · 案例
- [OpenAWE：Remedy 的 Alan Wake 引擎的开源重新实现](https://awesomerea.org/zh/resources/openawe-alan-wake-engine-case/index.md) · 案例
- [OpenBattlefield2：尚未完成的 Refractor 2 引擎重实现](https://awesomerea.org/zh/resources/openbattlefield2-refractor-engine-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
