Я работаю над вычислительным шейдером марширующего куба в единстве, в какой-то момент мне нужно найти индекс, чтобы я мог создавать вершины, соединяя эти ребра, вот код
uint cubeIndex = 0;
for (int i = 0; i < 8; i++)
{
if (cube[i].isInside == 1)
{
cubeIndex |= 1 << i;
}
}
return cubeIndex;
проблема в том, что когда я использую cubeIndex в качестве индекса массива, это дает мне эту ошибку: Программа «CSMain», ошибка X4505: сумма временных регистров и индексируемых временных регистров превышает предел 4096 в ядре CSMain.
если изменить индекс массива на любой другой int, код работает!
вот мое основное ядро
uint myCubeIndex = CubeInit(cube);
Edges midPoints = CalMidPoints(cube);
int edge = triTable[myCubeIndex][0];
float3 position = midPoints.midPoints[edge];
vertexArray.Append(position);