問題タブ [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.

0 投票する
2 に答える
2888 参照

ios - CVPixelBuffer を頂点シェーダーの入力として設定する方法は?

CVPixelBuffer の処理に Apple Metal レンダー パスを使用したいと考えています。

頂点シェーダーの入力として適合するように CVPixelBuffer を変換するにはどうすればよいですか? CVPixelBuffer から色/位置の値を抽出する方法がわからないので、ホストから設定できます。

0 投票する
4 に答える
1518 参照

ios - 金属に 1D テクスチャを手動で設定する

1D テクスチャに手動で値を入力し、そのテクスチャを計算シェーダーに渡そうとしています (これらはコードで設定したい 2 つのピクセルであり、画像を表しているわけではありません)。

現在、Metal のサンプルが少ないため、ロードされたデータを生のバイト データに変換することでテクスチャをロードする2D テクスチャUIImageを扱っているサンプルをすべて見つけることができましたが、ダミーを作成するのUIImageはハックのように感じました。

これは私が始めた「素朴な」方法です -

しかし、Metal はシェーダーでこれらの値を認識しません (最初の値を除いて、空のテクスチャを取得します)。

おそらく Float 配列をバイト配列 (たとえば ) に変換する必要があることにすぐに気付きましたが、どちらにも変換するUInt8方法が見つかりませんでした。[Float][UInt8]

私が考えている別の可能なオプションは、CVPixelBufferオブジェクトを使用することですが、それも問題の回避策のように感じました.

では、それに取り組む正しい方法は何ですか?

前もって感謝します。

  • 私はObjective-CCVPixelBufferに精通していないため、 /の使用UIImageが単純である必要があるものに対して誇張されているかどうかはわかりません。