# PatriotEngine **Repository Path**: Tecent/PatriotEngine ## Basic Information - **Project Name**: PatriotEngine - **Description**: PatriotEngine是一款跨平台的次世代开源图形引擎。 - **Primary Language**: C/C++ - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-10-16 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 本书作为图书《图形引擎开发》[https://www.epubit.com/selfpublish/article/1069](https://www.epubit.com/selfpublish/article/1069 "https://www.epubit.com/selfpublish/article/1069")的配套源代码发布 相对于传统的图形引擎而言,PatriotEngine具有以下优势: 1.基于结构化并行编程 2.基于Vulkan/Direct3D12 后续可能考虑支持Metal 3.基于COM设计接口——这意味着,任何第三方厂商基于PatriotEngine的接口开发的上层软件(包括但不限于编辑器)都可以在不需要重新编译的情况下和任意版本的PatriotEngine兼容——同时PatriotEngine的LGPL授权模式对第三方厂商为PatriotEngine开发闭源的上层软件(包括但不限于编辑器)并从中获益是非常友好的 已解决: 1.并行编程框架——PatriotTBB 待解决: 1.场景管理:对NVIDIA的场景管理引擎SceniX和NvPro-Pipeline的源码进行剖析,并设计符合Vulkan和Direct3D12用法的场景管理模块 //设计符合Vulkan和Direct3D12用法的渲染框架,尽可能在用法上统一Vulkan和Direct3D12 2.函数式编程:由于C++支持Lambda表达式,拟深入研究Haskell,并基于函数式编程的方式设计对并行编程友好的接口(该需求暂停) 正在解决: 在NUMA中加载Asset时,需要进行以下两个操作 1.由CPU将Data从系统内存复制到Upload内存(Upload内存是临时的,应当使用何种策略分配和释放???) 2.由GPU将Data从Upload内存复制到Default内存(应当使用何种策略处理CPU和GPU之间的同步???)