Files
GameDevTVObstacleDodge/Library/PackageCache/com.unity.splines@1cb7d86fc7ff/Samples~/SplineExamples/Shader/InterpolateSpline.compute

17 lines
508 B
Plaintext
Raw Normal View History

2026-01-08 16:50:20 +00:00
#include "Packages/com.unity.splines/Shader/Spline.cginc"
#pragma kernel GetPositions
SplineInfo info = float4(0,0,0,0);
StructuredBuffer<BezierCurve> curves;
StructuredBuffer<float> curveLengths;
RWStructuredBuffer<float3> positions;
float positionsCount;
[numthreads(64,1,1)]
void GetPositions (uint id : SV_DispatchThreadID)
{
float curve = SplineToCurveT(info, curveLengths, id/(positionsCount - 1));
positions[id] = EvaluatePosition(curves[floor(curve) % GetKnotCount(info)], frac(curve));
}