Files
Marching-Cubes/Assets/Script/Buffers.cs
2023-03-02 12:39:08 +01:00

35 lines
1.0 KiB
C#

using UnityEngine;
public static class Buffers
{
public static ComputeBuffer pointsBuffer;
public static ComputeBuffer triangleBuffer;
public static ComputeBuffer triCountBuffer;
public static void Create(int numPointsPerAxis)
{
Release();
int numPoints = numPointsPerAxis * numPointsPerAxis * numPointsPerAxis;
int numVoxelsPerAxis = numPointsPerAxis - 1;
int numVoxels = numVoxelsPerAxis * numVoxelsPerAxis * numVoxelsPerAxis;
int maxTriangleCount = numVoxels * 5;
triangleBuffer = new ComputeBuffer (maxTriangleCount, sizeof (float) * 3 * 3, ComputeBufferType.Append);
pointsBuffer = new ComputeBuffer (numPoints, sizeof (float) * 4);
triCountBuffer = new ComputeBuffer (1, sizeof (int), ComputeBufferType.Raw);
}
public static void Release()
{
if (triangleBuffer != null)
{
triangleBuffer.Release();
pointsBuffer.Release();
triCountBuffer.Release();
}
}
}