iOS10 SceneKit:使用自定义着色器渲染视频

iOS10 SceneKit:使用自定义着色器渲染视频,第1张

概述在使用自定义着色器时,如何在SceneKit中的节点上将视频渲染为漫反射贴图?这听起来很简单,但是: > SceneKit元素不支持AVPlayerLayer作为输入纹理(SO) >替代方案是: >使用带有SKVideoNode的SpriteKit场景但是: >自从iOS 10以来,只要涉及SpriteKit场景,使用openGL渲染就会失败(SO)我已经填满了雷达 >当我使用Metal时,我无法 在使用自定义着色器时,如何在SceneKit中的节点上将视频渲染为漫反射贴图?这听起来很简单,但是:

> SceneKit元素不支持AVPlayerLayer作为输入纹理(SO)
>替代方案是:

>使用带有SKVIDeoNode的SpriteKit场景但是:

>自从iOS 10以来,只要涉及SpriteKit场景,使用openGL渲染就会失败(SO)我已经填满了雷达
>当我使用Metal时,我无法弄清楚如何将制服传递到着色器修改器(SO)事情与openGL完美配合(在iOS 9上,当SpriteKit正在工作时)令人惊讶的是,那里的文档非常少.
>一旦视频涉及SceneKit场景,SCNProgram似乎就会失败(SO)没有视频,相同的设置工作正常

>将视频输出转换为CGImage,将其传递给CALayer,并将此图层传递给SceneKit视频节点(不涉及SpriteKit)这是详细的here,但一旦视频有点大,就不是可行的解决方案,因为所有输出都被复制到图像,这是昂贵的..

我仍然不愿意离开SceneKit,因为它使用opengl / Metal来处理很多烦人的低级别事情,但我现在无法让事情发挥作用……

作为一个额外的坏消息,看起来SpriteKit在与Metal一起使用时会出现内存泄漏,并且它会使SceneVIEw保持活跃状态​​,因此所有父视图和附加到它们的所有内容……

您可以找到此问题here的复制品,以及更简单的here:

解决方法 无法解决这个问题,我编写了自己的库,模仿SceneKit的一些功能: https://github.com/team-pie/DDDKit 总结

以上是内存溢出为你收集整理的iOS10 SceneKit:使用自定义着色器渲染视频全部内容,希望文章能够帮你解决iOS10 SceneKit:使用自定义着色器渲染视频所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1051063.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存