gpt4 book ai didi

ios - 如何在 ARKit 中使用 SCNNode 过滤器?

转载 作者:可可西里 更新时间:2023-11-01 00:56:43 25 4
gpt4 key购买 nike

我正在尝试实现自定义 CIFilter 以与我的 ARSCNView 中的 SCNNode 一起使用。不幸的是,它只是在节点应该在屏幕上的位置创建了一个灰色矩形。我也尝试过使用内置的 CIFilters 来仔细检查我的代码,但无济于事。

在其他一些 SO 帖子上,我读到 CIFilter 仅在选择 OpenGL 作为 SCNView 的渲染 API 时才起作用,因为 CoreImage 不能很好地与 Metal 配合使用,据我所知,不可能让 ARSCNView 与OpenGL。上述帖子是 2016 年的,所以我想知道是否有任何变化。

我想要实现的是在屏幕上勾勒/突出显示对象,以反馈用户有关对象选择的信息。我通过添加着色器修改器实现了一些可用的功能,但它对着色的控制有限。我真的不想把所有的阴影都压在自己身上。

下面是我的 CIKernel 用于概述,它在 Quartz Composer 上工作得很好。

非常感谢任何帮助和信息。

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

关于ios - 如何在 ARKit 中使用 SCNNode 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45661011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com