25 lines
		
	
	
		
			779 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			779 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #pragma kernel Converter
 | |
| 
 | |
| struct grassCell {
 | |
|     uint grassElementIndexes[512];//map to grass elements
 | |
|     };
 | |
| 
 | |
| StructuredBuffer<grassCell> grassCellBuffer;
 | |
| StructuredBuffer<uint> grassCellIndexBuffer;
 | |
| AppendStructuredBuffer<uint> outGrassBuffer;
 | |
| 
 | |
| [numthreads(8,8,8)]
 | |
| void Converter (uint callIndex : SV_GroupIndex, uint3 groupID : SV_GroupID) {
 | |
| 	uint realIndex = groupID.x + groupID.y + groupID.z;
 | |
| 
 | |
| 	uint cellIndex = grassCellIndexBuffer[realIndex];
 | |
| 
 | |
| 	grassCell cell = grassCellBuffer[ cellIndex ];
 | |
| 
 | |
|     int elementIndex = callIndex;//Correct
 | |
|     uint objIndex = cell.grassElementIndexes[elementIndex];
 | |
|     if(objIndex != 0) outGrassBuffer.Append(objIndex);
 | |
| 	
 | |
| 	}
 | |
| 
 | |
| //So the error seems to have been the usement of the wrong ID... but there must have been something else as well |