0
我有一個自定義幾何四邊形和我的紋理圖像顯示在它上面,但我希望它顯示爲一個方面填充,而不是拉伸或壓縮以適應空間。SCNMaterial防止伸展
我將相同的紋理應用於一個房間中的多個牆壁,所以如果圖像是壁紙,它必須看起來正確。
有沒有辦法使用以下內容並確定它是如何填充的?
quadNode.geometry?.firstMaterial?.diffuse.contents = UIImage(named: "wallpaper3.jpg")
感謝
[更新]
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
非常感謝艾倫,我會轉換爲Swift,看看它如何。 –
沒問題Marc,我在一些代碼中加入了一些代碼,這些代碼更多地解釋了變量。 –
我已根據您的上述新代碼更新了原始問題。你能看到有什麼不對嗎?現在正在壓縮設計,而不是將其展示爲一個方面的填充。 應該提到,這是在ARKit中生成的,寬度是0.06和高度2.0,所以它是一個相當短而高的牆。壁紙圖片是1200x800,但我嘗試了其他大小不同的其他人。 乾杯 –