問題タブ [scnmaterial]

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 投票する
0 に答える
957 参照

ios - SceneKit: フロア マテリアルのスケールを設定する方法を理解していますか?

Xcode Scene Editor で2 つのScaleプロパティがどのように機能するかを説明できる人はいますか?Material Inspector

ここに画像の説明を入力

表向きは、最初は X 軸に沿ったスケールを表し、2 番目は Y 軸に沿ったスケールを表しているようです。SCNMaterial クラスの scale プロパティについての説明はありません。

この画像はWWDC fox demoからのものです。床の拡散マテリアルに使用されます。その寸法は 512x512 です。

ここに画像の説明を入力

ただし、デモでは、この画像にスケール値 1 を使用しています。別のフロア マテリアル イメージ (同じく 512x512) では、スケール値 128 を使用します。

1 と 128 の代わりに、2 または 3 の値を使用して、より高いデバイス解像度 (たとえば、5s デバイスでは 2x) を考慮すべきではありませんか?

さまざまな値をいじると、予期しない結果が生じます。より高いスケール値 (つまり 256) は、よりシャープな床を生み出しましたが、64 レベルでは見られなかった「蹄鉄」アーティファクトも作成しました。また、倍率 2 または 3 では十分でないのはなぜですか?

iPhone 5s デバイスの 2 倍の解像度を考慮すると、両方のスケール プロパティが 256 に設定されました。 ここに画像の説明を入力

128 に設定されたスケール プロパティ: ここに画像の説明を入力

スケール プロパティを 64 に設定: ここに画像の説明を入力

マテリアルの画像解像度に基づいてスケール プロパティを設定する方法を誰かが親切に説明してくれませんか?

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

ios - ジオメトリ レンダリングの問題 - SceneKit

SceneKit カスタム ジオメトリのセットがあります。レンダリングすると、特定の視野角の下では、それらは透明であるかのように見えます (外側の表面を通して見ることができ、背後にあるものを見ることができます。または、内側の表面を見ることができます)。それらのマテリアルの透明度とカプセル化ノードの不透明度はすべて正しく設定されています。また、それらのいくつかは交差しており、それらの交差が完全に表示されています。何が問題なのか考えてみませんか?ありがとう。

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

ios - SCNShere ジオメトリで SCNMaterial の Web メルカトル図法マップを使用するにはどうすればよいですか?

アプリにシンプルなグローブ ビューがあります。以前は WhirlyGlobe を使用していましたが、代わりに SceneKit を使用することにしました。Whirly Globe でマップ タイルを使用し、SceneKit で (私が知る限り) 動作しないことを除いて、すべてがうまく機能し、満足しています。そのマップを (タイル、分割、または 1 つのファイルとして) SCNSphere ジオメトリで使用したいと考えています。

Apple がドキュメントで使用している衛星地図をコピーしたところ、正しく見えますが、必要な地図ではありません。私たちのマップはウェブ/球体メルカトル図法であり、私の球体の SceneKit では見栄えが悪いです。

Apple が使用している 2x1 プロジェクションが何と呼ばれているかはわかりません*。

  • 今やる:
    • Equirectangular - もちろん投稿した直後。
    • Platte Carre としても知られています (Hal Mueller のコメントによる)

Web メルカトル図法でのマップのエクスポートは 1x1 です。垂直軸で押しつぶすだけでは機能しません (とにかく、SceneKit はこれを自動的に行います)。

必要に応じて、ツールまたはハイブリッドを使用して、プログラムでファイルを変換できます。

必要に応じて、マップ スキンの親指を提供できます。

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

ios - 伸びを防ぐSCN素材

カスタム ジオメトリの四角形があり、その上にテクスチャ イメージが表示されていますが、スペースに合わせて伸縮するのではなく、アスペクト フィルとして表示したいと考えています。

部屋の複数の壁に同じテクスチャを適用しているので、画像が壁紙の場合は正しく見える必要があります。

以下を使用して、それがどのように満たされるかを判断する方法はありますか?

ありがとう

[アップデート]

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

swift3 - Scenekit: ノードのすべてのマテリアルを取得するには?

OK、私が理解していることから、モデルのエディターで、ここの Xcode で SCNNode として使用されている .dae または任意の 3D モデル用にマテリアルを作成できます。

ここに画像の説明を入力

一番上のマテリアルが自動的に適用され、すべて問題ありません。私の問題は、ゲーム全体で作成されたこれらのマテリアルをプログラムで切り替えたいということです。

次のようにして、これらの資料の配列を取得しようとしました。

ただし、これは最初のマテリアルのみを返します。私はすべてのbtingを試しましたが、他の材料を入手してそれらに切り替える方法を見つけることができません. 今私はしようとしています:

test はその 2 番目のマテリアルでしたが、nil として検出されました。複数のマテリアルをプログラムで切り替えるにはどうすればよいですか?

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

swift - SceneKit に透明な UIView (xib から) を追加します。

UIView を半透明の背景で SceneKit にロードしようとしていますが、現在、不透明度を下げると白にフェードアウトします。SceneKit にロードしたい .xib ファイルに非常に単純な UIView レイアウトがあります。これまでのところ、UIView を SCNMaterial に表示したり、ビュー内のテキスト フィールドや画像などを問題なく変更したりできます。しかし、透明にすることはできません。ビューのアルファを変更すると、白にフェードします。

ほとんどのコードは次のとおりです。

BlendMode、backgroundColor を 0.2 opacity に割り当てるなど、さまざまなことを残しました。これらはすべて私が試したことですが、ビューの要素の一部が非常に色あせた白の上に白い背景が表示されるためです。アウト。また、blendMode = .alpha を試して違いを見つけませんでした。ここでの「self」は SCNNode のサブクラスです。

このビューの背景を白くするのではなく、透明にする方法を知っている人はいますか? または、ビューを SceneKit に読み込む別の方法。