Skip to content

Latest commit

 

History

History
150 lines (115 loc) · 6.68 KB

File metadata and controls

150 lines (115 loc) · 6.68 KB

构建手册

目录

1. 依赖

  • 操作系统
    • Windows 10 or 11
  • 编译器(二选一)
    • MSVC 版本19.38-19.44
    • Clang (download link) + ninja (download link)
      • 推荐使用Clang。原因是Clang编译速度比较快,并且对应LSP的IntelliSense比较强,支持Cursor等IDE
  • Vulkan SDK 1.3 (download link)
    • 推荐使用Vulkan SDK 1.3,Vulkan SDK 1.4版本会导致无法使用DebugPrintfEXT(待解决)
  • CMake >= 3.26.0 且 < 4.0.0 (download link)
  • Git (download link)

1.1 安装依赖具体步骤

  • 安装MSVC
    • 下载 Visual Studio Installer
    • 在 VS Installer 中,选择对应版本VS(推荐2022),并勾选 使用C++的桌面开发
      • 如果找不到 Visual Studio 2022,可以在 此网页 中选择2022并进行下载
    • 安装完毕后,在开始菜单搜索 x64 Native Tools Command Prompt for VS 2022 并打开。在此终端中输入 cl,如出现类似下图内容,则安装成功
    • image-20260316150018048
  • 安装Clang
    • 进入 LLVM-Project Github Releases
    • 选择 LLVM-22.x.x-win64.exe,下载并根据指引安装
    • 安装完毕后,添加 LLVM/binPATH 环境变量
    • 在终端中输入 clang --version,若出现类似下图内容,则安装成功
    • image-20260316145302647
  • 安装Ninja
    • 进入 ninja Github Releases
    • 选择 ninja-win.zip,下载,并解压到对应目录
    • 解压后,添加该目录到 PATH 环境变量
    • 在终端输入 ninja --version,若出现类似下图内容,则安装成功
    • image-20260316145516938

2. MoerEngine

  • 方法一:命令行

    # Clone仓库
    # 如果没有配置SSH的话,请把 `git@xxx` 替换为 `https://github.com/NJUCG/MoerEngine.git`
    # MoerEngine新的依赖项均使用submodule形式引入,所以请添加--recursive来clone所有依赖项
    # 如果在clone时忘记添加submodule相关参数,请执行git submodule update --init --depth 1
    git clone --recurse-submodules --shallow-submodules git@github.com:NJUCG/MoerEngine.git
    cd MoerEngine
    
    # 忽略一些特定commit对commit历史的影响(只影响开发过程,不影响编译和使用)
    git config --local blame.ignoreRevsFile .git-blame-ignore-revs
    
    # 根据模板创建一份MoerEngine的配置文件
    # 配置文件中,可以设置默认的渲染器(光栅化、光追)、默认分辨率等选项
    cp template.MoerEngine.toml MoerEngine.toml
    
    # 构建
    cmake -B build
    # 如果使用clang+ninja,可替换为:cmake -B build -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
    cmake --build build -j16 # change 16 to your cpu core count
    
    # 运行
    ./target/bin/Debug/MoerEditor.exe
    • 如果安装了 just,你可以参考根目录下的 template.justfile 文件来编写你自己的脚本
  • 方法二:Rider

    • TODO
  • 成功启动后,可以参考 DEVELOPMENT.md 来了解MoerEngine的开发规范等其他内容

3. CUDA等AI组件支持

  • 如果你希望在MoerEngine中启用CUDA、LibTorch、TensorRT,那么你需要手动在系统中安装这三个依赖,再在MoerEngine中配置他们。接下来为启用AI组件的具体操作手册:
  1. 下载依赖

  2. 根据模板创建配置文件(启用AI组件)

    • 根据 template.EnableFeatures.cmake 创建 EnableFeatures.cmake
    • 修改 EnableFeatures.cmake 中 CUDA 相关的配置项
    • 注:MoerEngine的构建系统会自动检测 EnableFeatures.cmake 文件。如果该文件存在,则会启用对应的可选组件
  3. 将动态库添加进PATH

    • 将你安装的LibTorch和TensorRT的 lib 目录添加进 PATH 环境变量。例子如下图:
    • image-20250920204538099
    • 注:如果动态库缺失,则引擎会在没有任何错误提示的情况下崩溃
  4. 重新编译MoerEngine

    cmake -B build
    cmake --build build -j16
    # 或者使用just
    just gb # generate build
    • 观察日志,若generate的日志出现了 WITH_CUDA=1,则成功启用AI相关组件;若日志中为 WITH_CUDA=0,则没有启用AI相关组件
  5. 配置VSCode的IntelliSense**(可选)**

    • 设置环境变量 CUDA_PATHLIBTORCH_PATHTENSORRT_PATH。例子如下图:
    • image-20250920201137320
    • image-20250920201248463

3.1 注意事项

  • 启用CUDA后,光栅化渲染器就不支持Stencil模板测试了。原因是CUDA不支持 PF_D32_SFLOAT_S8_UINT

4. NRD降噪器支持

  • MoerEngine支持NVIDIA NRD拓展。由于NVIDIA的封闭协议,MoerEngine无法直接引入NRD,需要用户自行下载NRD源码并进行配置。以下为具体操作步骤
  1. Clone NRD源码

    # 推荐在非MoerEngine目录下Clone NRD源码,避免不小心提交NRD源码
    # 如果无法访问,请联系项目维护者
    git clone git@github.com:NJUCG/NRD.git
  2. 根据模板创建配置文件

    • 根据 template.EnableFeatures.cmake 创建 EnableFeatures.cmake(如果已存在则跳过)
    • 修改 EnableFeatures.cmake 中 NRD 相关的配置项,将 NRD_ROOT 设置为你Clone的NRD源码路径
  3. 重新编译MoerEngine

    cmake -B build
    cmake --build build -j16
    # 或者使用just
    just gb # generate build
    • 观察日志,若generate的日志出现了 WITH_NRD=1,则成功启用NRD;若日志中为 WITH_NRD=0,则没有启用NRD