i have successfully done the sculpting implementation on CPU,
throw some guide on how to do this on GPU kindly …
i have moved the sculpting code to vertex shader but the sculpting is not accumulating in vertex shader and cant modify position in vertex shader… kindly tell me how …
if (SculptMode.x == 1)//Raise
{
float dist = length(int2(PickedPoint.xz) - input.position.xz);
if (dist <= BrushRadius.x)
{
PositionOffset += (BrushRadius.y * (cos(PI * dist / float(BrushRadius.x)) + 1.0f) * 0.5f) * DeltaTime.x * 10.0f;
input.position.y = PositionOffset;
}
}
I am using RWTexture2D for it like ...
if (SculptMode.x == 1)//Raise
{
float dist = length(uint2(PickedPoint.xz) - input.position.xz);
if (dist <= BrushRadius.x)
{
PositionOffset[int2(input.position.xz)] += BrushRadius.y * smoothstep(0, BrushRadius.x, BrushRadius.x - dist) * DeltaTime.x * 10.0f;
}
}
but still my sculpting is in spike formation ...
then
input.position.y = PositionOffset[int2(input.position.xz)];
