我试图将这个 shadertoy 场景翻译成Metal Kernel
. 在着色玩具代码中:
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec3 dir = rayDirection(45.0, iResolution.xy, fragCoord);
...
}
以防万一OpenGL
,我们需要iResolution
从glfw
窗口发送。并且fragCoord
将从. gl_FragCoord
_Fragment Shader
我在metal
文件中有这个:
kernel void compute(texture2d<float, access::write> output [[texture(0)]],
uint2 gid [[thread_position_in_grid]]) {
int width = output.get_width();
int height = output.get_height();
....
}
所以我可以iResolution
从width
and得到我的height
。但我不确定如何获得gl_FragCoord
.
Metal_stdlib
有相当于的东西吗gl_FragCoord
?或者如果我必须计算,我怎样才能获得相同的值?