0
基本知識:
我有許多需要一次更改顏色的SCNNode。他們從綠色變爲藍色。目前,我爲每個節點(一個綠色和另一個藍色)有兩個單獨的圖像,並且我試圖爲所有節點切換圖像。這裏是我的代碼:SceneKit - 紋理之間的轉換
let blueTubeTexture = UIImage(named: "BlueTubeTexture")
self.tube1.geometry!.firstMaterial!.diffuse.contents = blueTubeTexture
基本上,我有許多全球性的節點(tube1,tube2,tube3等)都有着相同的幾何形狀。由於它們共享相同的幾何體,因此更改一個節點的材質會一次更改所有這些材質。
問題:
這種解決方案的唯一的問題是,改變甚至一個紋理減慢應用程序。當我嘗試改變管子的紋理時,它會出現毛刺。但是立即改變它們會導致崩潰。
我要問什麼?
以這種方式改變紋理效率低下嗎?如果只改變一張圖像會給CPU帶來很大壓力,那麼這可能不是一個好的解決方案。有沒有更好的方法來改變圖像的顏色?
謝謝你的提示。至於地圖的大小,有很多圖像,每個都相當大。如果我將它們放入地圖集而不是1x,2x和3x,您認爲它會更有效嗎? –
我不確定資產目錄有助於應用於模型的紋理。它們在屏幕上的大小取決於你靠近物體,而不是你擁有的設備之王。只要確保您的圖像尺寸正確。當它們在屏幕上顯得較小時較小,當它們在屏幕上較大時較大。 – mnuages