GithubHelp home page GithubHelp logo

fengyee / nexus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cnr-isti-vclab/nexus

0.0 2.0 0.0 504 KB

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

License: GNU General Public License v3.0

CMake 0.80% JavaScript 15.70% HTML 1.36% C++ 80.86% C 0.16% QMake 1.12%

nexus's Introduction

Nexus

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

Nexus by Visual Computing Laboratory - ISTI - CNR

Contact me @ [email protected]

Main features

  • Multiresolution
  • Large models
  • Textures or color per vertex
  • Streaming
  • Compression
  • WebGL

Create the .nxs model

Use nxsbuild to create a multiresolution nexus model (.nxs) out of your mesh (.ply):

$ nxsbuild bunny.ply

The result will be bunny.nxs. For large files this may take quite some time. See the man page for all the options, supported input files etc.

Simplify and/or compress

The model can be compressed, saving aroung 90% of the size. This is most useful for streaming applications:

$ nxsedit bunny.nxs -z -o bunny.nxz

Detailed information about the compression parameters can be found in the man page.

You can get some statistics using nxsedit on the created model: bounding sphere, list of patches created along with their error using nxsedit:

$ nxsedit bunny.nxs -i -n

The .nxs file can be simplified: you can prune the lowest level of the resolution using the -l option.

Inspect your model.

Nxsview is a simple program for inspecting a .nxs file:

$ nxsview bunny.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 Threejs: there is a minimal example in the html directory of the repository.

It is strongly recommended to use compression for the models (nxsedit -z).

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 Nexus software is free and released under the GPL license (it depends on Qt and VCG lib).

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

Support and thanks

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

nexus's People

Contributors

ponchio avatar potenziani avatar cignoni avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.