0
說我有100件不同形狀的幾何形狀,這是我使用合併:如何在three.js中合併幾何後訪問單個幾何形狀?
THREE.GeometryUtils.merge(geometry1, geometry2)
將我仍然能夠更新單個形狀的幾何形狀,而不是所有的人?如果是這樣,我該怎麼做?
說我有100件不同形狀的幾何形狀,這是我使用合併:如何在three.js中合併幾何後訪問單個幾何形狀?
THREE.GeometryUtils.merge(geometry1, geometry2)
將我仍然能夠更新單個形狀的幾何形狀,而不是所有的人?如果是這樣,我該怎麼做?
您可以a)記下每個幾何圖形的頂點偏移量(即在合併最新的幾何圖形之前合併幾何圖形中已有多少頂點),然後使用它僅循環並修改某個幾何圖形或b)如果每個人都有一個傑出的材料,則可以遍歷所有面並將修改限制爲使用正確材質附加到面的頂點。
但是,由於它仍然是一個大的幾何圖形,無論您編輯它有多少,您都會將所有內容都推送到GPU。如果你只是偶爾修改它,這可能沒什麼關係,但在這種情況下,你應該檢查你是否可以通過重新整合整個事物來獲得足夠的性能,而不用擔心更復雜的事情。
如果您確實需要將已修改的數據只推送到GPU,則存在一個void bufferSubData(GLenum target, GLintptr offset, ArrayBufferView data)
函數。然而,這是原始的WebGL,你需要深入到three.js的內部以便修補它。