Metal和OpenGL es区别
Metal
#pragma arguments
texture2d<float> texture;
float a;
#pragma body
constexpr sampler s(filter::linear,mip_filter::linear);
_output.color=float4(a,1.0,0.0,1.0);
[SCNTransaction begin];
[_material setValue:@0.0 forKeyPath:@"a"];
[SCNTransaction commit];
备注:参数a在body代码之前,在oc代码中可以修改值。在body代码之后,是不能修改的。body代码之后设定参数值,可以在编辑器中直接看到结果,但是在oc代码中不能修改。
OpenGL ES
uniform float a=1.0;
_output.color=float4(a,1.0,0.0,1.0);
即可以在编辑器中看结果,又可以在oc代码中修改参数。