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

0 投票する
1 に答える
818 参照

swift - SCNScene の環境マップとして MTLTexture を使用する

ドキュメントMTLTextureによると可能なように見えるので、オブジェクトをシーンの環境マップとして設定したいと考えています。次のコードを使用して、環境マップを に設定できます。UIImage

これは機能し、金属製のオブジェクトに画像の反射が見られます。MTLTexture次のコードを使用して、画像を に変換し、環境マップとして設定してみました。

ただし、これは機能せず、オブジェクトに反射のない空白の環境マップになってしまいます。

optionsまた、 asを設定する代わりに、取得可能なすべての値でキーをnil設定しようとしましたが、それもうまくいきませんでした。MTKTextureLoader.Option.textureUsage

編集:このリポジトリのサンプル プロジェクトを見て、それを使用してこのユース ケースを再現できます。

0 投票する
1 に答える
1853 参照

image-processing - Swift 4 を使用して Metal Compute Kernel でパラメーターを渡す

CPU 側では、計算カーネルに渡したい構造があります。

カーネルを実行する前に、データを MTLComputeCommandEncoder に渡します。

オプション 1 (直接):

オプション 2 (MTLBuffer 経由で間接的に):

「ダミー」変数が構造体に存在する場合、どちらのオプションも正常に機能しますが、「ダミー」変数が存在しない場合は失敗します。コードは次の呼び出しで失敗します。

エラーで:

Metal Kernel 側では、関連するコード スニペットを次に示します。

3x3 マトリックスを別の計算カーネルに渡そうとすると、同様の問題が発生します。36 バイトが提供されているが、48 バイトが期待されていると不平を言っています。

この問題に関するアイデアはありますか?