Я хотел бы сделать пиксельный шейдер HLSL, который может скруглять углы четырехугольника. Я попытался портировать это пример GLSL следующим образом:
cbuffer CBuf : register(b0)
{
float4 color;
float2 dimensions;
float radius;
float na;
};
struct VSOut
{
float4 pos : SV_POSITION;
float2 uv : UV;
uint viewId : SV_RenderTargetArrayIndex;
};
float4 main(VSOut input) : SV_TARGET
{
float2 coords = input.uv * dimensions;
if
(
length(coords) < radius ||
length(coords - float2(0, dimensions.y)) < radius ||
length(coords - float2(dimensions.x, 0)) < radius ||
length(coords - dimensions) < radius
)
{
discard;
}
return color;
}
В итоге я получаю следующее: Но я ищу более прямоугольную форму со скругленными углами.