2016-02-04 58 views
1

我想寫一個佈局擴展,並且已經看過現有擴展(例如喬木,可樂,cose-bilkent等)和腳手架here提供的示例。我掛斷的地方是webGL渲染器。在所有的例子中,如果我沒有弄錯,這是由核心(對於畫布)來處理的。是否有可能通過three.js使用webGL渲染器?如果是這樣,是否只需在擴展中創建/附加所需的webGL元素(例如場景,相機,光源等)?cytoscape.js webgl renderer

WebGL推送的原因是我想實現一個3D鄰接矩陣(我不記得我在哪裏找到這篇論文,但是有人在一個桌面應用程序中實現了這個功能,主題,謂詞和對象都是X, Y和Z軸),並且沒有看到另一種方法可以有效地處理10-25K節點/邊緣的大型結果集。

+0

你有沒有在這個WebGL渲染器的任何地方? –

+0

也許你可以從https://github.com/anvaka/ngraph.pixel獲取建議? –

回答

1

Cytoscape支持多個渲染器,但不支持3D座標。職位定義爲(x,y)。

如果您願意,您可以添加3D渲染器,但是您必須爲z位置使用數據屬性,因爲位置對象不支持z。

寫一個渲染器,特別是高性能,功能完備的渲染器有很多工作要做。如果您要編寫2D渲染器,則可以重新使用所有現有的測試,手勢/交互,事件等 - 以便您可以專注於繪圖技術。要編寫3D渲染器,您必須從頭開始執行所有渲染邏輯。

如果您的數據需要3D(例如,表示3D原子鍵或3D蛋白質結構),那麼編寫3D渲染器可能是一個好主意。如果只是爲了獲得整潔的3D效果,這可能不值得 - 因爲3D對於用戶來說很難導航和理解。

+1

夠公平的。我之後的佈局是一個三維鄰接矩陣,它將主體,謂詞和對象分別放在X,Y和Z軸上。不幸的是,這不僅僅是眼花繚亂......我認爲這是不值得的。但是,爲此,我會花時間......雖然可能需要一段時間才能完成。如果目標是通過Three.js的WebGL,有沒有一個指針讓我開始右腳? – user2772397

+0

你可以看一下/ fork默認的渲染器,因爲你必須複製很多基本的東西,比如接收通知。 – maxkfranz