在DirectCompute着色器中,有一个采用字符串类型参数的函数,如何访问单个字符?
例:
uint TestFunc(string S, uint I)
{
return uint(S[I]);
}
编译器抱怨 S[I]:"错误 X3121:索引表达式中预期的数组、矩阵、向量或可索引对象类型"。
知道吗?
来自 MS 文档:
HLSL 还支持字符串类型,即 ASCII 字符串。没有接受字符串的操作或状态,但效果可以查询字符串参数和批注。
HLSL 中存在字符串,但你几乎无法对它们执行任何操作。根据您的需要,您可能希望将字符串作为数组而不是字符串或字节RWStructuredBuffer
传递给着色器,然后执行与 ASCII 之间的转换。