Größe der benutzerdefinierten Struktur für den Berechnung von Shader -Stride
Posted: 09 Mar 2025, 13:43
Ich versuche, einen Computer Shader mit Einheit zu schreiben, der Netzdaten (Scheitelpunkte, Normalen, UVs) für ein Voxel -Gelände erzeugt. Somit habe ich eine benutzerdefinierte Struktur wie folgt definiert: < /p>
[StructLayout(LayoutKind.Sequential, Pack = 0)]
private struct VertexData
{
public Vector3 position;
public Vector3 normal;
public Vector2 uv;
}
< /code>
Dann erstelle ich einen computeBuffer für den Computshader wie folgt: < /p>
vecterDataCBuf = new ComputeBuffer(ChunkSize * ChunkSize * ChunkSize, sizeof(VertexData));
< /code>
Ich erhalte den CS0233 -Fehler, in dem ich den Sizeof -Operator auf meiner benutzerdefinierten Struktur nicht verwenden kann, um den Schritt für den Rechenpuffer bereitzustellen, trotz des Verpackungsattributs, das ich hinzugefügt habe. Danke.
[StructLayout(LayoutKind.Sequential, Pack = 0)]
private struct VertexData
{
public Vector3 position;
public Vector3 normal;
public Vector2 uv;
}
< /code>
Dann erstelle ich einen computeBuffer für den Computshader wie folgt: < /p>
vecterDataCBuf = new ComputeBuffer(ChunkSize * ChunkSize * ChunkSize, sizeof(VertexData));
< /code>
Ich erhalte den CS0233 -Fehler, in dem ich den Sizeof -Operator auf meiner benutzerdefinierten Struktur nicht verwenden kann, um den Schritt für den Rechenpuffer bereitzustellen, trotz des Verpackungsattributs, das ich hinzugefügt habe. Danke.