問題タブ [metalkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - MTKView から作成された UIImage で色/不透明度が異なる
MTKView のコンテンツを UIImage にキャプチャすると、結果の画像は次のように質的に異なって見えます。
UIImage を生成するために使用するコードは次のとおりです。
ciImage の向き (.directional(CGImagePropertyOrientation.downMirrored)) を変更していないため、上の画像に示すように、結果の画像は上下逆になります。2 つのイメージ キャプチャの色の違いを指摘できるように、ミラーリングされた向きはそのままにします。
kciOptions パラメーターをどのように変更しても (たとえば、色空間をグレースケールに変更しても)、結果の UIImage に変更は見られません。MTKViewで描いているものをUIImageに正確にキャプチャする方法について誰か提案がありますか? どんな提案でも大歓迎です。
以下は、関連する可能性のある私の MTKView 設定です。
ios - 実行中にエラーが発生したため、コマンド バッファの実行が中止されました
私はしばらくこれにこだわっています。これは特に高価なシェーダーではありません (少なくとも、Metal での非常に限られた経験に基づくと)、それでも最初の数フレームで次のメッセージが表示されます。
そして、私はこれをすべての後続のフレームに取得します:
これは、実際には何もしない頂点シェーダーです。
YUV から RGB に色を変換するフラグメント シェーダーは次のとおりです。
そして、これはすべてをまとめた私の Swift コードです。