我正在绘制一个四边形并附加一个纹理,并且正在使用内核函数绘制一个圆。
kernel void compute(texture2d<float,access::write> output [[texture(0)]],
constant float2 &time [[buffer(0)]],
uint2 gid [[thread_position_in_grid]])
{
int width = output.get_width();
int height = output.get_height();
float2 iResolution = float2(width, height);
float2 x = time;
float2 uv = float2(gid.x,height - gid.y) / iResolution;
uv -= x; // -0.5 <> 0.5
float d = length(uv);
float r = 0.09;
float c = smoothstep(r, r-0.015, d);
output.write(float4(float3(c), 1), gid);
}
此处此函数在圆形区域返回白色,在外部返回黑色。我需要外部原始纹理颜色,因为我需要读取传递的纹理并返回颜色。提出一种实现方法