2014-07-25 22 views
0

我使用three.js所版本65.申請morphTargets於粒子系統或點雲

我使用ParticleSystem在三維空間中顯示的一組點@時間t = 0。而且我在時間t = 1有下一組分數。現在我想動畫它在JSONLoadermorphTarget動畫?任何人都可以建議我實現這個目標的最佳方法嗎?

(或)

我能喜歡這個WebGL的着色器程序?請建議。

在此先感謝。

回答

2

是的,你可以用着色器來做到這一點。你可以爲屬性vec3 position,vec3 nextPosition和統一的float scale創建一個自定義着色器,其屬性從0變爲1. 然後,您可以向着色器添加一些邏輯,以計算新位置,如vec3 pos = position * scale + nextPosition * (1.0 - scale)(以及常用的廣告牌/ GL_Point代碼)。當你達到規模1時,你將positionnextPosition對換,並填入nextPosition與相關的追隨者。

好運玩得開心:)

PS:我提到的代碼僅僅是線性插值。在你的情況下,你可能會考慮其他插值。也許甚至可以添加另外兩個屬性矢量來指示前導點和後續點,以便用貝塞爾曲線計算新位置。

最後,你不得不遲早考慮性能。如果你有10k粒子和1k「狀態」,你可能會遇到性能問題。

+0

嗨Doidel,謝謝你的回覆。有沒有可能在Three.js本身實現它?自從我開始Three.js第一個和WebGL下一個:(所以我很喜歡Three.js – user2118784

+0

yesyes,那答案是Three.js ^^你可以使用THREE.ParticleSystem自定義着色器,例如:http:/ /www.ianww.com/blog/2012/12/16/an-introduction-to-custom-shaders-with-three-dot-js/ – Doidel

+0

Hi Doidel,謝謝,我也在努力。 – user2118784