問題タブ [metal]
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.
ios - CVPixelBuffer を頂点シェーダーの入力として設定する方法は?
CVPixelBuffer の処理に Apple Metal レンダー パスを使用したいと考えています。
頂点シェーダーの入力として適合するように CVPixelBuffer を変換するにはどうすればよいですか? CVPixelBuffer から色/位置の値を抽出する方法がわからないので、ホストから設定できます。
ios - 金属に 1D テクスチャを手動で設定する
1D テクスチャに手動で値を入力し、そのテクスチャを計算シェーダーに渡そうとしています (これらはコードで設定したい 2 つのピクセルであり、画像を表しているわけではありません)。
現在、Metal のサンプルが少ないため、ロードされたデータを生のバイト データに変換することでテクスチャをロードする2D テクスチャUIImage
を扱っているサンプルをすべて見つけることができましたが、ダミーを作成するのUIImage
はハックのように感じました。
これは私が始めた「素朴な」方法です -
しかし、Metal はシェーダーでこれらの値を認識しません (最初の値を除いて、空のテクスチャを取得します)。
おそらく Float 配列をバイト配列 (たとえば ) に変換する必要があることにすぐに気付きましたが、どちらにも変換するUInt8
方法が見つかりませんでした。[Float]
[UInt8]
私が考えている別の可能なオプションは、CVPixelBuffer
オブジェクトを使用することですが、それも問題の回避策のように感じました.
では、それに取り組む正しい方法は何ですか?
前もって感謝します。
- 私はObjective-C
CVPixelBuffer
に精通していないため、 /の使用UIImage
が単純である必要があるものに対して誇張されているかどうかはわかりません。