[Interop-dev] GSoC 2017 netjsongraph.js progress report

Xiang Gao (spam-protected)
Sun Aug 20 18:12:42 CEST 2017


Hi, all

Last week I still focus on performance issues.

- replace the link rendering method by using custom geometry and make it can have width
- set the camera depth to fix link invisible when zooming
- fix raycasting intersects according to mrdoob/three.js#1842
- fix link hover highlight effect. But if we use this hover effect, we can’t use the material reusing to improve performance
- simplify event controller

I also try to use Web Worker to accelerate the vertices position calculation, but I found it is slower than no Web Worker…

And during weekend I want to add more interaction for our graph, like drag and brush selection, but I found it is very difficult if we use current simple data structure. Because if you want to find the links between two nodes or nodes binding by a link, you should travel nodes or links over and over again or render again and again. So I read some articles and discovered appropriate data structure like:

• https://en.wikipedia.org/wiki/Quadtree <https://en.wikipedia.org/wiki/Quadtree>
• https://en.wikipedia.org/wiki/Octree <https://en.wikipedia.org/wiki/Octree>

If you give me more time I think I can optimize performance under it. 


There are two articles I think good:

- https://github.com/Jam3/jam3-lesson-webgl-shader-intro <https://github.com/Jam3/jam3-lesson-webgl-shader-intro>
- https://github.com/Jam3/jam3-lesson-webgl-shader-threejs <https://github.com/Jam3/jam3-lesson-webgl-shader-threejs>


Next week plan:

- learn quadtree and try to use it in project
- add more interaction: drag


Best regards,

Xiang

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.funkfeuer.at/pipermail/interop-dev/attachments/20170821/2b206bc8/attachment.html>


More information about the Interop-dev mailing list