【发布时间】:2023-05-13 10:38:01
【问题描述】:
在 DirectCompute 着色器中,有一个接受字符串类型参数的函数,如何访问单个字符?
例子:
uint TestFunc(string S, uint I)
{
return uint(S[I]);
}
编译器抱怨 S[I]:“错误 X3121:索引表达式中预期的数组、矩阵、向量或可索引对象类型”。
有什么想法吗?
【问题讨论】:
标签: directx hlsl directcompute
在 DirectCompute 着色器中,有一个接受字符串类型参数的函数,如何访问单个字符?
例子:
uint TestFunc(string S, uint I)
{
return uint(S[I]);
}
编译器抱怨 S[I]:“错误 X3121:索引表达式中预期的数组、矩阵、向量或可索引对象类型”。
有什么想法吗?
【问题讨论】:
标签: directx hlsl directcompute
来自 MS 文档:
HLSL 还支持字符串类型,即 ASCII 字符串。没有接受字符串的操作或状态,但效果可以查询字符串参数和注解。
字符串存在于 HLSL 中,但您几乎无能为力。根据您的需要,您可能希望将字符串作为数组而不是字符串或作为 RWStructuredBuffer 字节传递给着色器,然后执行与 ASCII 的转换。
【讨论】: