Я пытаюсь написать вычислительный шейдер с единством, который генерирует сетчатые данные (вершины, нормы, ультрафиолетовые) для местности вокселя. Таким образом, у меня есть пользовательская структура, определенная следующим образом: < /p>
[StructLayout(LayoutKind.Sequential, Pack = 0)]
private struct VertexData
{
public Vector3 position;
public Vector3 normal;
public Vector2 uv;
}
< /code>
Тогда я создаю компьютерный блок для ComputeShader следующим образом: < /p>
vecterDataCBuf = new ComputeBuffer(ChunkSize * ChunkSize * ChunkSize, sizeof(VertexData));
< /code>
Я получаю ошибку CS0233, указывающую, что я не могу использовать оператор SizeOF на своей пользовательской структуре, чтобы обеспечить шаг для вычислительного буфера, несмотря на атрибут упаковки, который я добавил. Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/505 ... der-stride