我有一个在Core Image核心语言中的函数,现在需要一个相当的Metal Shading语言版本,但是我在destCoord、unpremultiply和premultiply函数上遇到了问题。
kernel vec4 MyFunc(sampler src, __color color, float distance, float slope) {
vec4 t;
float d;
d = destCoord().y * slope + distance;
t = unpremultiply(sample(src, samplerCoord(src)));
t = (t - d*color) / (1.0-d);
return premultiply(t);
}
到目前为止,我在MSL中的功能是:
float4 MyFunc(sample_t image, float3 color, float dist, float slope) {
float4 t;
float d;
d = color[1] * slope + dist
...
return t;
}
非常感谢您的帮助!