2017-11-08 9 views
2

ARSCNViewにシェーダを適用する方法の問題を解決する方法を理解しようとしています。ARSCNViewのメタルシェーダ

「エラー:ARSCNViewでSCNViewの交換

if let path = Bundle.main.path(forResource: "art.scnassets/distortion", ofType: "plist") { 
    if let dict = NSDictionary(contentsOfFile: path) { 
     let technique = SCNTechnique(dictionary: dict as! [String : AnyObject]) 

     scnView.technique = technique 
    } 
} 

は私に次のエラー(複数可)を提供します:標準SCNViewを使用した場合 以前、私は正常に次のように歪みシェーダを適用することができました:_executeProgram - なしパイプライン状態 "

を:メタルレンダラは「

" エラーをゼロ頂点関数名をサポートしていません。 210

ARSCNViewはSCNViewとは異なるレンダラーを使用しているからだと思っていました。しかし、ARSCNView.renderingAPIを記録するとレンダラーについては何も教えてくれないので、私はARSCNViewインスタンスを構築するときに1つを選択できないようです。私は参照をオンラインで精練するときに単一のリソースを見つけることができないので、明らかなものを見逃すはずです。

私の最初の考えは、代わりにSCNプログラムを使ってシェーダを適用したことでした。しかし、私はそれをARSCNViewにどのように適用するかについてのリソースを見つけることはできません。あるいは、それが正しい/可能な解決策であっても、SCNProgramは材料のために予約されているようです。

ARSCNViewの頂点+フラグメントシェーダーを解決する方法の有用な点を教えていただけますか?

答えて

0

非表示のARSCNViewからSCNViewに必要なものをすべてブロードキャストしてから、SCNViewにシェーダを適用して問題を解決しました。決して完璧な解決策ではありませんが、機能します。

関連する問題