首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在金属中直接使用CIFilters?

是否可以在金属中直接使用CIFilters?
EN

Stack Overflow用户
提问于 2020-08-21 21:59:24
回答 1查看 59关注 0票数 0

我正在使用SceneKit和ARKit构建一个iOS应用程序。我正在使用SCNTechnique修改SceneKit的渲染,并以风格化的方式绘制场景的一部分。目前,我正在使用一个简单的金属碎片着色器来绘制黑白场景:

代码语言:javascript
复制
fragment half4 fragment_shader(VertexOut vert [[stage_in]],
                                                texture2d<half, access::sample> scene [[texture(0)]])                                              )
    {
        constexpr sampler samp = sampler(coord::normalized, address::repeat, filter::nearest);
        half4 color = scene.sample(samp, vert.texcoord);
        
        constexpr half3 weights = half3(0.2126, 0.7152, 0.0722);
        color.rgb = half3(dot(color.rgb, weights)) * 0.1;
        return color;
}

我现在想封装sylization并使用CIFilter,而不是自己编写所有的金属代码。有没有可能在金属中调用CIFilters,例如传递给它们一个texture2d?如果是这样的话,是怎么做的?

EN

回答 1

Stack Overflow用户

发布于 2020-08-23 19:25:16

似乎可以通过filters属性直接将CIFilters赋值给SCNNodes。从文档中:

当此数组不为空时,SceneKit将节点(及其子节点层次结构)渲染到图像缓冲区中,然后在将过滤器的输出合成到渲染的场景中之前应用过滤器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63524272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档