Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cnr-isti-vclab/nexus
Nexus is a c++/javascript library for creation and visualization of a batched multiresolution mesh
https://github.com/cnr-isti-vclab/nexus
compression lod mesh multiresolution nexus point-cloud streaming threejs visualization webgl
Last synced: 3 days ago
JSON representation
Nexus is a c++/javascript library for creation and visualization of a batched multiresolution mesh
- Host: GitHub
- URL: https://github.com/cnr-isti-vclab/nexus
- Owner: cnr-isti-vclab
- License: gpl-3.0
- Created: 2015-12-14T13:19:30.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-12-04T16:48:34.000Z (21 days ago)
- Last Synced: 2024-12-14T23:03:15.469Z (10 days ago)
- Topics: compression, lod, mesh, multiresolution, nexus, point-cloud, streaming, threejs, visualization, webgl
- Language: C
- Homepage:
- Size: 3.42 MB
- Stars: 221
- Watchers: 26
- Forks: 89
- Open Issues: 50
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Nexus
Nexus is a c++/javascript library for creation and visualization of a batched multiresolution 3D model structure.
[Nexus](http://vcg.isti.cnr.it/nexus/) by [Visual Computing Laboratory](http://vcg.isti.cnr.it) - ISTI - CNR
Contact me @ [email protected]
See [INSTALL.MD](INSTALL.md) for compilation instructions.
### Main features
* Multiresolution
* Large models
* Textures or color per vertex
* Streaming
* Compression
* WebGL### Basic usage
Starting from a 3D model (.ply), drag and drop it on the **nxsbuild** executable, and it will be converted into a multiresolution nexus model (.nxs). Drag the multiresolution nexus model (.nxs) onto the **nxscompress** executable to compress it, and the result will be a compressed multiresolution nexus model (.nxz).
gargo.ply --> **nxsbuild** --> gargo.nxs --> **nxscompress.exe** --> gargo.nxz
Drag and drop either .nxs or .nxz files on **nxsview** to interactively inspect the generated 3D multiresolution model.
-----------------------------------------------------------------------------------------
### Create the .nxs model
Use [nxsbuild](doc/nxsbuild.md) to create a multiresolution nexus model (.nxs) out of your 3D model (.ply):
$ nxsbuild gargo.ply
The result will be gargo.nxs. For large files this may take quite some time. See the [man](doc/nxsbuild.md) page for all the options, supported input files etc.
### Compress the multiresolution model
The model can be compressed, saving aroung 90% of the size. This is most useful for streaming applications:
$ nxcompress gargo.nxs
The result will be gargo.nxz.
Detailed information about the compression parameters can be found in the [man](doc/nxcompress.md) page.### Edit, Info and Simplify
[Nxsedit](doc/nxsedit.md) can be used for many editing operations on the multiresolution model.
For instance, you can get some statistics on the created model (bounding sphere, list of patches, etc.):$ nxsedit gargo.nxs -i
Or also, you can simplify the .nxs file (pruning the lowest level of the multiresolution tree):
$ nxsedit gargo.nxs -l -o simplified_gargo.nxs
Detailed information about the editing parameters can be found in the [man](doc/nxedit.md) page.
### Inspect your model.
[Nxsview](doc/nxsview.md) is a simple program for inspecting a .nxs file:
$ nxsview gargo.nxs
You can tune various parameters through the interface, but be sure to read the available options in the [man](doc/nxsview.md) page.
### WebGL
The easiest way to publish the model on the web is to use [3DHOP](http://3dhop.net) interface.
Alternatively you can use Three.js: there is a minimal example in the HTML directory of the GitHub [Nexus repository](https://github.com/cnr-isti-vclab/nexus).
It is strongly recommended to use compression for the models (nxscompress).### Library
The visualization algorithm can be easily used as library inside your engine, both in C++ or in JavaScript,
basically the algorithm job is to send geometry to the GPU.### Dependencies and Licenses
All C++ Nexus software is free and released under the GPL license (it depends on Qt and VCG lib).
All Javascript Nexus software is free and release under the MIT license.### Publications
[Multiresolution and fast decompression for optimal web-based rendering](http://vcg.isti.cnr.it/Publications/2016/PD16/FastDec_Ponchio.pdf)
Federico Ponchio, Matteo Dellepiane
Graphical Models, Volume 88, pp. 1-11, November 2016[Fast decompression for web-based view-dependent 3D rendering](http://vcg.isti.cnr.it/Publications/2015/PD15/Ponchio_Compressed.pdf)
Federico Ponchio, Matteo Dellepiane
Web3D 2015. Proceedings of the 20th International Conference on 3D Web Technology , pp. 199-207, June 2015[Multiresolution structures for interactive visualization of very large 3D datasets](http://vcg.isti.cnr.it/~ponchio/download/ponchio_phd.pdf)
Federico Ponchio
Phd Thesis[Interactive Rendering of Dynamic Geometry](http://vcg.isti.cnr.it/Publications/2008/PH08/dynamic.pdf)
F. Ponchio, K. Hormann
IEEE Transaction on Visualization and Computer Graphics, Volume 14, Number 4, pp. 914-925, July 2008[Batched Multi Triangulation](http://vcg.isti.cnr.it/Publications/2005/CGGMPS05/BatchedMT_Vis05.pdf)
Paolo Cignoni, Fabio Ganovelli, Enrico Gobbetti, Fabio Marton, Federico Ponchio, Roberto Scopigno
Proceedings IEEE Visualization, pp. 207-214, October 2005[Adaptive TetraPuzzles: Efficient Out-of-Core Construction and Visualization of Gigantic Multiresolution Polygonal Models](http://vcg.isti.cnr.it/publications/papers/vbdam_sig04.pdf)
P. Cignoni, F. Ganovelli, E. Gobbetti, F. Marton, F. Ponchio, R. Scopigno
ACM Trans. on Graphics, vol. 23(3), pp. 796-803, August 2004 (Siggraph '04)[BDAM: Batched Dynamic Adaptive Meshes for High Performance Terrain Visualization](http://vcg.isti.cnr.it/publications/papers/bdam.pdf)
P.Cignoni, F.Ganovelli, E. Gobbetti, F.Marton, F. Ponchio, R. Scopigno
Computer Graphics Forum, 22(3), pp. 505-514, September 2003### Feedback
For documented and repeatable bugs, feature requests, etc., please use the [GitHub issues](https://github.com/cnr-isti-vclab/nexus/issues).
### Support and thanks
Thanks, support: VCL Informatic department in TU Clausthal, 3D-COFORM. Also to Kai Hormann for having me write the thesis :)