簡體   English   中英

SceneKit –紋理之間的過渡

[英]SceneKit – Transition between textures

基礎:

我有許多SCNNodes都需要立即更改顏色。 它們從綠色變為藍色。 目前,我為每個節點(一個綠色和另一個藍色)有兩個單獨的圖像,並且我正在嘗試為所有節點切換圖像。 這是我的代碼:

let blueTubeTexture = UIImage(named: "BlueTubeTexture")
self.tube1.geometry!.firstMaterial!.diffuse.contents = blueTubeTexture

基本上,我有許多全局節點(tube1,tube2,tube3等),它們共享相同的幾何形狀。 由於它們共享相同的幾何形狀,因此更改一個節點的材質會同時更改所有它們。


問題:

此解決方案的唯一問題是,即使更改一個紋理也會減慢應用程序的速度。 當我嘗試更改一根管的紋理時,它會出現故障。 但是立即更改所有這些都會導致崩潰。


我要什么?

以這種方式更改紋理效率低下嗎? 如果僅更改一個映像會給CPU帶來很大壓力,那么這可能不是一個好的解決方案。 是否有更好的方法來更改圖像的顏色?

看起來像是內存問題。 這些地圖有多大? 如果您嘗試將許多圖像加載到內存中,您的應用將被系統殺死。 您是否嘗試過分析?

另請注意,以下內容也將起作用,並將保存UIImage的分配:

diffuse.contents = "BlueTubeTexture"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM