计算着色器中的意外标记结构

问题描述

我正在使用计算着色器来加速 3D 空间计算的并行处理。着色器给我编译错误polygonize”中的着色器错误:语法错误polygonize.compute(10) 处的内核 polygonize 处的意外标记“struct”(在 d3d11 上)polygonize.compute 是着色器文件。最奇怪的是第一个结构不会导致错误,但第二个会。这是代码:(后面还有更多,但错误发生在第二个结构体的声明处)

#pragma kernel polygonize


struct Points {
  float value;
  int material;
  float3 location;
}

struct vertex {
  float3 location;
  bool weld;
  int weldnumber;
}

解决方法

Afaik 在着色器 (HLSL) 中,结构体的定义以 ; 结尾

应该是这样

struct Points {
  float value;
  int material;
  float3 location;
};

struct vertex {
  float3 location;
  bool weld;
  int weldnumber;
};