背景故事:我創建了一個基於Three.js的3D圖形庫。類似於sigma.js,但3D。它被稱爲圖龍和來源可以找到here。我使用Three.js,並使用表示圖中單個節點的單個粒子。Three.js ParticleSystem閃爍着大量數據
這是我必須處理的第一個任務:給定任意一組點(每個點都包含X,Y,Z座標),確定最佳攝像機位置(X,Y,Z),可以查看所有點在圖中。
我最初的解決方案(我們稱之爲解決方案1)包括計算所有點的邊界球,然後將球體縮放爲圍繞點0,0,0的半徑爲5的球體。由於點將保證始終落在該區域,因此我可以爲相機設置一個靜態位置(假設FOV是靜態的)並且數據始終可見。這很好,但它要麼需要改變用戶指定的點座標,要麼複製所有的點,這兩點都不是很好。
我的新解決方案(我們稱之爲解決方案2)不涉及輸入數據的座標,而只是定位相機以匹配數據。我遇到了這個解決方案的問題。出於某種原因,當處理大量數據時,粒子在位於其他粒子的前面/後面時似乎閃爍。
以下是兩種解決方案的示例。確保走動圖表看效果:
你可以看到差異的代碼here
讓我知道,如果您有任何見解關於如何擺脫閃爍。謝謝!
看起來像z戰鬥。你需要減少相機的遠景。 – Charlotte
@Charlotte我試着大幅減少遠平面,沒有看到任何差異。任何其他想法? –
擺弄近/遠值後,我需要增加近值和遠值。也許我需要根據輸入的數據動態生成這些值。 –