# RHIShader::CompileFromFile ```cpp virtual bool CompileFromFile(const wchar_t* filePath, const char* entryPoint, const char* target) = 0; ``` 从文件加载并编译着色器。 从指定的文件路径读取着色器代码并编译为 GPU 可执行的着色器程序。该方法支持各种着色器目标平台(如 D3D12 的 `vs_5_0`、`ps_5_0` 等,或 Vulkan 的 SPIR-V)。 **参数:** - `filePath` - 着色器文件路径(宽字符字符串,支持 Unicode 路径) - `entryPoint` - 着色器入口点函数名称(如 `"VSMain"`、`"PSMain"`) - `target` - 着色器目标配置文件(如 `"vs_5_0"`、`"ps_5_0"`、`"spv"`) **返回:** 编译成功返回 `true`,失败返回 `false` **线程安全:** ❌(多线程同时编译同一着色器可能导致未定义行为) **复杂度:** O(n),其中 n 为着色器代码行数 **示例:** ```cpp RHIShader* vertexShader = device->CreateShader(); if (vertexShader->CompileFromFile(L"shaders/vertex.cso", "VSMain", "vs_5_0")) { vertexShader->Bind(); // 使用着色器... } else { printf("Vertex shader compilation failed!\n"); } vertexShader->Shutdown(); device->DestroyShader(vertexShader); ``` ## 相关文档 - [RHIShader](shader.md) - 返回类总览 - [`Compile`](compile.md) - 从内存数据编译着色器