如何在使用自定義着色器時在SceneKit中的節點上將視頻渲染爲漫反射紋理?這聽起來像一個簡單的事,但:iOS10 + SceneKit:使用自定義着色器渲染視頻
- SceneKit元素不支持
AVPlayerLayer
作爲輸入紋理(SO) - 替代方案:用SpriteKit場景與SKVideoNode但
- :
- 轉化的視頻輸出到CGImage,將它傳遞給一個CALayer的失敗,並將此圖層傳遞到SceneKit視頻節點(不涉及SpriteKit)這是詳細的here,但只要視頻有點大,就不是一個可行的解決方案,因爲所有的輸出都被複制到圖像上,並且這是昂貴的。
我仍然很不願意擺脫SceneKit,因爲它處理了很多opengl/metal的令人討厭的低級別事情,但是我現在無法正常工作......
作爲附加壞消息,它看起來像SpriteKit與Metal一起使用時存在內存泄漏,並且它保持活動的SceneView,因此所有父視圖和附加到它們的所有東西...
你可以找到這個問題的複製here ,並且更簡單一個here:
去年SpriteKit向前邁進了一步(一定是有所改進),並且大概有三個步驟(iOS 9)。蘋果開始解決這些問題花了好幾個月的時間。儘管有許多具體的,經常性的和相互矛盾的投訴,但他們並未公開承認問題。 – Confused
iOS 10看起來像是SceneKit回到了幾步,還有一次前進(PBR)。 SceneKit擁有1/20(或更少)的SpriteKit用戶。所以他們可能需要一整年的時間來解決問題。說了這麼多,在SceneKit上工作的兩個人在這些論壇中都很活躍。 – Confused
你知道嗎?如果問題來自SceneKit或SpriteKit,我怎麼能有一個想法? – Guig