我有一個PointCloud叫做「雲」,以(0,0,0)爲中心,有大約1000個頂點。頂點的位置使用頂點着色器進行更新。我現在想要在渲染循環中每隔幾秒鐘將每個頂點的位置打印出來。Three.js PointCloud頂點總是返回(0,0,0)位置
如果我在渲染循環使用
console.log(cloud.geometry.vertices[100])
檢查點雲的頂點,我總是得到的都是零,這一點我可以從所有的粒子看到荏苒周圍是不正確的頂點。
我看着這個類似的帖子:How to get the absolute position of a vertex in three.js?,並試圖
var vector = cloud.geometry.vertices[100].clone();
vector.applyMatrix4(cloud.matrixWorld);
這還是給了我所有的零向量(所有頂點)。使用scene.matrixWorld
代替cloud.matrixWorld
也不起作用。
我也試過使用cloud.updateMatrixWorld()
和scene.updateMatrixWorld()
。最後,我嘗試設置cloud.geometry.vertexNeedsUpdate = true
。
到目前爲止,我見過的所有建議都使用了上述內容,但它們都不適合我。我有一種感覺,這個數組並沒有得到正確的值,但我不知道這是爲什麼。有任何想法嗎?
我想知道這件事。非常有意義。謝謝。 – tschie