You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Nexus is a c++/javascript libraryfor creation and visualization of a batched multiresolution 3D model structure.
3
+
**Fork of [cnr-isti-vclab/nexus](https://github.com/cnr-isti-vclab/nexus)** — restructured as a **C++ static library** (`libnexus`) for programmatic creation and compression of batched multiresolution 3D models.
4
4
5
-
[Nexus](http://vcg.isti.cnr.it/nexus/) by [Visual Computing Laboratory](http://vcg.isti.cnr.it) - ISTI - CNR
5
+
All command-line executables (`nxsbuild`, `nxscompress`, `nxsview`, `nxsedit`) and Qt dependencies have been removed. The library exposes a clean C API for integration into any C/C++ application.
6
6
7
-
Contact me @ federico.ponchio@isti.cnr.it
7
+
## Entry Points
8
8
9
-
See [INSTALL.MD](INSTALL.md) for compilation instructions.
9
+
The public API is defined in [`src/common/nxs.h`](src/common/nxs.h):
10
10
11
-
### Main features
11
+
```c
12
+
#include"common/nxs.h"
12
13
13
-
* Multiresolution
14
-
* Large models
15
-
* Textures or color per vertex
16
-
* Streaming
17
-
* Compression
18
-
* WebGL
14
+
// Simple build: input mesh → output .nxs or .nxz
15
+
NXSErr nexusBuild(const char *input,
16
+
const char *output,
17
+
char *errorMessage,
18
+
int errorMessageSize);
19
19
20
-
### Basic usage
20
+
// Extended build with full control over all parameters
21
+
NXSErr nexusBuildEx(const char *input,
22
+
const char *output,
23
+
const NexusBuildOptions &options,
24
+
char *errorMessage,
25
+
int errorMessageSize);
26
+
```
21
27
22
-
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).
28
+
**Return codes** (`NXSErr`):
29
+
| Value | Meaning |
30
+
|-------|---------|
31
+
| `NXSERR_NONE` (0) | Success |
32
+
| `NXSERR_EXCEPTION` (1) | Internal error |
33
+
| `NXSERR_INVALID_INPUT` (2) | Invalid input file or parameters |
- [VCGLib](https://github.com/cnr-isti-vclab/vcglib) (auto-detected from `../vcglib` or pass `-DVCGDIR=...`)
33
48
34
-
$ nxsbuild gargo.ply
49
+
### Windows (PowerShell)
35
50
36
-
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.
51
+
```powershell
52
+
./build.ps1 # Release build
53
+
./build.ps1 -WithTests # Include unit tests
54
+
./build.ps1 -Debug # Debug build
55
+
```
37
56
38
-
### Compress the multiresolution model
57
+
### Linux / macOS
39
58
40
-
The model can be compressed, saving aroung 90% of the size. This is most useful for streaming applications:
59
+
```bash
60
+
./build.sh # Release build
61
+
./build.sh --with-tests # Include unit tests
62
+
./build.sh --debug # Debug build
63
+
```
41
64
42
-
$ nxcompress gargo.nxs
65
+
### Manual CMake
43
66
44
-
The result will be gargo.nxz.
45
-
Detailed information about the compression parameters can be found in the [man](doc/nxcompress.md) page.
[Nxsview](doc/nxsview.md) is a simple program for inspecting a .nxs file:
64
-
65
-
$ nxsview gargo.nxs
66
-
67
-
You can tune various parameters through the interface, but be sure to read the available options in the [man](doc/nxsview.md) page.
68
-
69
-
70
-
### WebGL
71
-
72
-
The easiest way to publish the model on the web is to use [3DHOP](http://3dhop.net) interface.
73
-
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).
74
-
It is strongly recommended to use compression for the models (nxscompress).
75
-
76
-
77
-
### Library
78
-
79
-
The visualization algorithm can be easily used as library inside your engine, both in C++ or in JavaScript,
80
-
basically the algorithm job is to send geometry to the GPU.
81
-
82
-
83
-
### Dependencies and Licenses
84
-
85
-
All C++ Nexus software is free and released under the GPL license (it depends on Qt and VCG lib).
86
-
All Javascript Nexus software is free and release under the MIT license.
101
+
## Original Project
87
102
103
+
Based on [Nexus](http://vcg.isti.cnr.it/nexus/) by [Visual Computing Laboratory](http://vcg.isti.cnr.it) - ISTI - CNR.
88
104
89
105
### Publications
90
106
@@ -94,35 +110,14 @@ Graphical Models, Volume 88, pp. 1-11, November 2016
94
110
95
111
[Fast decompression for web-based view-dependent 3D rendering](http://vcg.isti.cnr.it/Publications/2015/PD15/Ponchio_Compressed.pdf)
96
112
Federico Ponchio, Matteo Dellepiane
97
-
Web3D 2015. Proceedings of the 20th International Conference on 3D Web Technology, pp. 199-207, June 2015
113
+
Web3D 2015. Proceedings of the 20th International Conference on 3D Web Technology, pp. 199-207, June 2015
98
114
99
115
[Multiresolution structures for interactive visualization of very large 3D datasets](http://vcg.isti.cnr.it/~ponchio/download/ponchio_phd.pdf)
100
-
Federico Ponchio
101
-
Phd Thesis
102
-
103
-
[Interactive Rendering of Dynamic Geometry](http://vcg.isti.cnr.it/Publications/2008/PH08/dynamic.pdf)
104
-
F. Ponchio, K. Hormann
105
-
IEEE Transaction on Visualization and Computer Graphics, Volume 14, Number 4, pp. 914-925, July 2008
106
-
107
-
[Batched Multi Triangulation](http://vcg.isti.cnr.it/Publications/2005/CGGMPS05/BatchedMT_Vis05.pdf)
Proceedings IEEE Visualization, pp. 207-214, October 2005
110
-
111
-
[Adaptive TetraPuzzles: Efficient Out-of-Core Construction and Visualization of Gigantic Multiresolution Polygonal Models](http://vcg.isti.cnr.it/publications/papers/vbdam_sig04.pdf)
112
-
P. Cignoni, F. Ganovelli, E. Gobbetti, F. Marton, F. Ponchio, R. Scopigno
113
-
ACM Trans. on Graphics, vol. 23(3), pp. 796-803, August 2004 (Siggraph '04)
114
-
115
-
[BDAM: Batched Dynamic Adaptive Meshes for High Performance Terrain Visualization](http://vcg.isti.cnr.it/publications/papers/bdam.pdf)
116
-
P.Cignoni, F.Ganovelli, E. Gobbetti, F.Marton, F. Ponchio, R. Scopigno
117
-
Computer Graphics Forum, 22(3), pp. 505-514, September 2003
118
-
119
-
### Feedback
120
-
121
-
For documented and repeatable bugs, feature requests, etc., please use the [GitHub issues](https://github.com/cnr-isti-vclab/nexus/issues).
116
+
Federico Ponchio, PhD Thesis
122
117
123
-
### Support and thanks
118
+
##License
124
119
125
-
Thanks, support: VCL Informatic department in TU Clausthal, 3D-COFORM. Also to Kai Hormann for having me write the thesis :)
0 commit comments