我不能将 HLSL 内部函数用于 DXR,例如:TraceRay() , ReportHit() 等

Roy Li - MSFT 32,491 信誉分 Microsoft 供应商
2024-05-15T02:15:23.68+00:00

我的设备支持 DXR。我可以使用一些与光线追踪相关的 HLSL 函数和结构,但有些我不能。编译器对 TraceRay() 给出以下错误: 编译器提供以下错误消息:“未声明函数 'TraceRay(RaytracingAccelerationStructure, int, int, int, int, int, int, RayDesc, HitInfo)'。请帮忙,我已经搜索了很多,但我没有找到任何有同样问题的人。

此问题由: I can’t use HLSL intrinsic functions for DXR like : TraceRay() , ReportHit() and … - Microsoft Q&A 总结而来

Windows API - Win32
Windows API - Win32
一组适用于桌面和服务器应用程序的核心 Windows 应用程序编程接口 (API)。 以前称为 Win32 API。
56 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Tong Xu - MSFT 2,116 信誉分 Microsoft 供应商
    2024-05-15T08:21:50.5433333+00:00

    你好,
    欢迎来到 Microsoft Q&A!

    是的,该示例对我有用。但即使在示例中,如果我转到着色器文件,我的编译器也会给出未声明 TraceRay() 函数的错误。但它确实有效,我可以生成和运行示例。

    c++ 编译器错误与编译着色器文件无关。

    D3D12光线跟踪示例使用 D3DCompileFromFile 编译着色器。有关详细信息,请参阅编译着色器

    作为生成过程的一部分,Visual Studio 使用 fxc.exe dxc.exe HLSL 代码编译器将 HLSL 着色器源文件编译为二进制着色器对象文件或头文件中定义的字节数组。


    如果答案是正确的解决方案,请单击“接受答案”并请投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助