Ios 如何在ARKit中使用SCNNode筛选器?
我正在尝试实现一个自定义CIFilter,以便在ARSCNView中与SCNNode一起使用。不幸的是,它只是在屏幕上节点所在的位置创建了一个灰色矩形。我还尝试了内置的cifilter来双重检查我的代码,但没有效果 在另一篇SO文章中,我读到CIFilter仅在OpenGL被选为SCNView的渲染API时才起作用,因为CoreImage不能很好地处理Metal,而且据我所知,不可能让ARSCNView与OpenGL一起运行。上述帖子来自2016年,因此我想知道是否有任何变化 我试图实现的是在屏幕上勾勒/突出显示对象,以反馈用户有关对象选择的信息。我通过添加着色器修改器实现了一些可用的功能,但它对着色的控制有限。我真的不想超过我自己 下面是我的CIKernel,它在Quartz Composer上运行得非常好 非常感谢您提供的任何帮助和信息Ios 如何在ARKit中使用SCNNode筛选器?,ios,swift,opengl-es,metal,arkit,Ios,Swift,Opengl Es,Metal,Arkit,我正在尝试实现一个自定义CIFilter,以便在ARSCNView中与SCNNode一起使用。不幸的是,它只是在屏幕上节点所在的位置创建了一个灰色矩形。我还尝试了内置的cifilter来双重检查我的代码,但没有效果 在另一篇SO文章中,我读到CIFilter仅在OpenGL被选为SCNView的渲染API时才起作用,因为CoreImage不能很好地处理Metal,而且据我所知,不可能让ARSCNView与OpenGL一起运行。上述帖子来自2016年,因此我想知道是否有任何变化 我试图实现的是在屏
kernel vec4 outline(sampler src) {
vec2 texturePos = destCoord();
float alpha = 4.0f * sample(src, texturePos).a;
float thickness = 5.0f;
alpha -= sample(src, texturePos + vec2(thickness, 0.0f)).a;
alpha -= sample(src, texturePos + vec2(-thickness, 0.0f)).a;
alpha -= sample(src, texturePos + vec2(0.0f, thickness)).a;
alpha -= sample(src, texturePos + vec2(0.0f, -thickness)).a;
if (alpha > 0.9f) {
vec4 resultCol = vec4(1.0f, 1.0f, 1.0f, alpha);
return resultCol;
}else{
vec4 resultCol = sample(src, texturePos);
return resultCol;
}
}
我也面临着类似的问题。原因是我们进行了以下设置。可以通过删除此设置来实现CIFilter。 我没有分析细节,但如果有帮助的话
sceneView.antialiasingMode = .multisampling4X
sceneView.contentScaleFactor = 1.3
这方面有进展吗?你解决了吗?