0
私はカスタムジオメトリ四角形を持っていて、テクスチャイメージが表示されていますが、スペースに合わせて伸縮するのではなく、アスペクトフィルとして表示します。SCNMaterialがストレッチを防ぐ
部屋の複数の壁に同じテクスチャを適用していますので、画像が壁紙の場合は正しく見える必要があります。
次の方法を使用して、それがどのように満たされるかを判断する方法はありますか?
quadNode.geometry?.firstMaterial?.diffuse.contents = UIImage(named: "wallpaper3.jpg")
私は、これはあなたを助けるかもしれないと思うおかげ
[UPDATE]
let quadNode = SCNNode(geometry: quad)
let (min, max) = quadNode.boundingBox
let width = CGFloat(max.x - min.x)
let height = CGFloat(max.y - min.y)
let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "wallpaper3.jpg")
material.diffuse.contentsTransform = SCNMatrix4MakeScale(Float(width), Float(height), 1)
material.diffuse.wrapS = SCNWrapMode.repeat
material.diffuse.wrapT = SCNWrapMode.repeat
quadNode.geometry?.firstMaterial = material
多くの方に感謝アラン、私はスイフトに変換し、それがどうなるか見てみましょう。 –
問題ありません。Marc、変数をもう少し説明するコードをいくつか追加しました。 –
私はあなたの上に基づいて新しいコードで私の元の質問を更新しました。間違ったことが見える?アスペクトの塗りつぶしとして表示するのではなく、デザインを壊すようになっています。 これはARKitで生成されたもので、幅は0.06と高さ2.0となっていますので、かなり短い、背の高い壁です。壁紙のグラフィックは1200x800ですが、私はさまざまなサイズのものを試しました。 おかあさん –