• Stars
    star
    215
  • Rank 183,925 (Top 4 %)
  • Language
    C
  • License
    GNU General Publi...
  • Created almost 9 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Nexus is a c++/javascript library for creation and visualization of a batched multiresolution mesh

Nexus

Nexus is a c++/javascript library for creation and visualization of a batched multiresolution 3D model structure.

Nexus by Visual Computing Laboratory - ISTI - CNR

Contact me @ [email protected]

See 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 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 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 page.

Edit, Info and Simplify

Nxsedit 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 page.

Inspect your model.

Nxsview 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 page.

WebGL

The easiest way to publish the model on the web is to use 3DHOP interface. Alternatively you can use Three.js: there is a minimal example in the HTML directory of the GitHub Nexus repository. 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 Federico Ponchio, Matteo Dellepiane Graphical Models, Volume 88, pp. 1-11, November 2016

Fast decompression for web-based view-dependent 3D rendering 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 Federico Ponchio Phd Thesis

Interactive Rendering of Dynamic Geometry F. Ponchio, K. Hormann IEEE Transaction on Visualization and Computer Graphics, Volume 14, Number 4, pp. 914-925, July 2008

Batched Multi Triangulation 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 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 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.

Support and thanks

Thanks, support: VCL Informatic department in TU Clausthal, 3D-COFORM. Also to Kai Hormann for having me write the thesis :)

More Repositories

1

meshlab

The open source mesh processing system
C++
4,649
star
2

vcglib

The VCGlib is a C++, templated, no dependency, library for manipulation, processing and cleaning of triangle meshes
C++
1,097
star
3

PyMeshLab

The open source mesh processing python library
C++
711
star
4

piccante

The hottest High Dynamic Range (HDR) Library
C++
250
star
5

meshlabjs

A javascript client based mesh processing tool. Built using vcg library, emscripten and webgl
JavaScript
227
star
6

corto

Mesh compression library, designed for rendering and speed.
C++
196
star
7

3DHOP

3D Heritage Online Presenter
JavaScript
156
star
8

relight

A RTI library for creating and visualizing Reflectance Transformation Imaging
C++
69
star
9

TagLab

A CNN based image segmentation tool oriented to marine data analysis
Python
65
star
10

openlime

Web-based, advanced images viewer (RTI, multispectral, BRDF, etc. )
CSS
24
star
11

meshlab-extra-plugins

Extra plugins for MeshLab
C++
23
star
12

ReviewerNet

A Data Visualization tool for choosing reviewers
JavaScript
20
star
13

vclib

The Visual Computing Library
C++
11
star
14

texmetro

A tool for evaluating a number of quality metrics on textured 3D models
C++
9
star
15

DepthStreaming

Depth Compression
C
6
star
16

MoReLab

Python
4
star
17

GeomDL4GridShell

Source code for the paper "Geometric Deep Learning for Statics-Aware Grid Shells"
Python
4
star
18

ArchAIDE_digit

The repository for digit, an automatic MATLAB app for the digitalization of archaeological drawings
MATLAB
3
star
19

DeeplabV3-for-Corals

This code is part of a bigger project about the semantic segmentation of coral reefs for ecological monitoring.
Python
3
star
20

DynamicCollections

3D Web Platform of Archaeological Artefacts designed for Data Reuse and Deep Interaction
JavaScript
2
star