問題タブ [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 投票する
2 に答える
1141 参照

scenekit - SCNScene から作成された MDLAsset があります。MDLMesh、MDLCamera、および MDLLight を抽出するにはどうすればよいですか?

ファイル (.scn)MDLAssetを読み込んで作成されたインスタンスをトラバースしようとして苦労しています。SCNScene

MDLMeshカメラとライトだけでなく、 も識別して抽出したいと考えています。それを行う直接的な方法はありません。

たとえば、MDLAsset で次のインスタンス メソッドが表示されます。

これは私が使っているものですか?

SceneKit モデラーで慎重にラベルを付けました。理想的なものを参照できませんか。確かに、私がアクセスできる ID/ラベルの辞書があります。ここで何が欠けていますか?

更新 0

Apple のドキュメントが完全に不足していたため、Xcode デバッガーでシーン グラフを追加する必要がありました。はぁ ...

ここに画像の説明を入力

いくつかのこと。私はそれを見てMDLMeshMDLSubmeshそれが私が求めているものです。それを取得するためのトラバーサルアプローチは何ですか? ライトやカメラも同様です。

また、シェーダーと同期できるように、頂点記述子のレイアウトを知る必要もあります。解析済みの特定の頂点レイアウトを強制できますSCNSceneか?

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

ios - 金属でテクスチャとテクスチャなしを同時に、乗算ブレンディングを使用

金属で 2 つの異なる頂点バッファーを描画しています。1 つはテクスチャを使用 (頂点カラー データを無視) し、もう 1 つはテクスチャを使用せず (純粋に頂点カラー データを描画):

シェーダーは次のようになります。

これを行うより良い方法はありますか?テクスチャを使用したい頂点を黒に設定すると、シェーダーは色が黒かどうかを確認し、黒の場合はテクスチャを使用し、そうでない場合は色を使用します。

また、色付きのポリゴンとテクスチャ付きのポリゴンが画面上で重なっている場合、乗算機能を使用してそれらをブレンドする方法はありますか? MTLBlendOperation には加算/減算/最小/最大のオプションしかなく、乗算はないようですか?

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

c++ - c++ 頂点関数に [ が 2 つあるのはなぜですか?

Apple からの Metal と MetalKit に関する紹介ビデオを見ています。

シェーダーのサンプル コードには、これらの二重括弧のような[[buffer(0)]]引数があります。なぜブラケットが2つあるのですか?それは何か意味がありますか、それともキーワード「buffer」が続くことを示すだけですか? 標準の C++ にはそのような構造はありませんね。

また、GP-GPU の入門として、1 週間か 2 週間の楽しいプロジェクトは何でしょうか? 数学のスキルはあるが芸術的スキルのない初心者にとって扱いやすいもの。

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

pointers - Metalkit: Swift 3 の MTLBuffer とポインター

私は Metalkit から始めましたが、テスト ケースとして非常に単純なカーネルを使用しています。

この「計算された」データは、MTLBuffer.

この時点で、カーネルはいくつかのテスト データをMTLBuffer. 質問は、メイン プログラムからそのデータにアクセスする方法です。

から を取得unsafeMutableRawPointerbuffer.contents()ます。他の場所 (画面に表示する、ファイルに書き込むなど) で使用できる値の迅速な配列を取得するにはどうすればよいですか?

これらのスニペットは、この非常に単純なアプリで機能しますが、正しいかどうかはわかりません。

両方ともbindMemory働きassumingMemoryBoundます。assumingMemoryBoundただし、基になるバイトが既に入力されていると想定していますが、そうではありませbindMemoryん。どちらか一方が機能するはずですが、両方は機能しないと思います。どちらにする必要がありますか?またその理由は?

0 投票する
0 に答える
300 参照

ios - metalkit を使った 3D 線の描き方

iOSでmetalkitを使って3D線を引こうとしているのですが、頂点を2つ追加しました

回転角度を持つモーダル マトリックスを適用しています。

しかし、ラインは継続的に回転しています。変換マトリックスを使用してみましたが、違いはありません。

実際、私の仕事は、拡張現実のために 3D で線を描き、それらに沿ってパスを使用latitudeしてマーカーを配置することです。longitude

最初のステップとして、金属を使用して 3D 線を描画しようとしています。Plz metalkit を使用して 3D 線を描画する例を参照してください。ほとんどの例は三角形です。