cnr-isti-vclab / nexus

Nexus is a c++/javascript library for creation and visualization of a batched multiresolution mesh
GNU General Public License v3.0
216 stars 87 forks source link

building .nxs file from PLY fails #50

Closed mathib closed 4 years ago

mathib commented 5 years ago

Hi! For a PLY file I tried to convert to .nxs files, I receive the following message in the console:

nxsbuild 200k_meshlab.ply -r 14000
    Reading 200k_meshlab.ply
    Components: mesh colors textures
    Normals enabled
    Colors enabled
    Textures enabled
    Creating level 0
    Creating level 1
    Creating level 2
    Creating level 3
    Unable to properly simplify due to framented parametrization
    Using a smaller node size (-f, default is 32000) might alleviate the problem

The PLY mesh (10MB) contains 200K faces / 95K vertices. There are 40 JPEG textures (in total 67.8MB).

As a consequence, I tried to rerun the command using the -f option and different values (30000-25000-20000-10000-5000-1000). All of these processes manage to finish, but the resulting .nxs/.nxz is unacceptably distorted when I view it in nxsview

nxsbuild 200k_meshlab.ply -f 20000 -r 14000
    Reading 200k_meshlab.ply
    Components: mesh colors textures
    Normals enabled
    Colors enabled
    Textures enabled
    Creating level 0
    Creating level 1
    Creating level 2
    Creating level 3
    Stream: 29076 Last top level size: 34136
    Quitting prematurely (most probably to high parametrization fragmentation)
    Unifying normals
        Saving to file 200k_meshlab.nxs

Any idea on how to proceed with this mesh? Are there any settings of nxsbuild/nxsedit I can change, or can I do some preprocessing of the mesh elsewhere?

chapel-distorted_30000faces

ponchio commented 5 years ago

Fragmentation of the parametrization is a nasty problem to tackle. We are working on it... Could you send me the model? Would be useful for testing and maybe I can tune the correct parameters (if possible).

Thanks.

On Sat, Aug 24, 2019 at 10:19 PM mathib notifications@github.com wrote:

Hi! For a PLY file I tried to convert to .nxs files, I receive the following message in the console:

nxsbuild 200k_meshlab.ply -r 14000 Reading 200k_meshlab.ply Components: mesh colors textures Normals enabled Colors enabled Textures enabled Creating level 0 Creating level 1 Creating level 2 Creating level 3 Unable to properly simplify due to framented parametrization Using a smaller node size (-f, default is 32000) might alleviate the problem

The PLY mesh (10MB) contains 200K faces / 95K vertices. There are 40 JPEG textures (in total 67.8MB).

As a consequence, I tried to rerun the command using the -f option and different values (30000-25000-20000-10000-5000-1000). All of these processes manage to finish, but the resulting .nxs/.nxz is unacceptably distorted when I view it in nxsview

nxsbuild 200k_meshlab.ply -f 20000 -r 14000 Reading 200k_meshlab.ply Components: mesh colors textures Normals enabled Colors enabled Textures enabled Creating level 0 Creating level 1 Creating level 2 Creating level 3 Stream: 29076 Last top level size: 34136 Quitting prematurely (most probably to high parametrization fragmentation) Unifying normals Saving to file 200k_meshlab.nxs

Any idea on how to proceed with this mesh? Are there any settings of nxsbuild/nxsedit I can change, or can I do some preprocessing of the mesh elsewhere?

[image: chapel-distorted_30000faces] https://user-images.githubusercontent.com/22965460/63642222-79230400-c6bc-11e9-872d-6d59b1974ed9.PNG

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/cnr-isti-vclab/nexus/issues/50?email_source=notifications&email_token=AAUDV2YUWPHTVFR6C7HZWC3QGGJWBA5CNFSM4IPHEIM2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HHGLMFQ, or mute the thread https://github.com/notifications/unsubscribe-auth/AAUDV2ZP662TSC3R7H2QDILQGGJWBANCNFSM4IPHEIMQ .

mathib commented 5 years ago

Hi Federico, I've sended you a mail with the links to the files! Thanks for looking into this :)

murphysurveys commented 4 years ago

What does the error "fragmentation of parameterization" mean?

ponchio commented 4 years ago

Basically it's the number of 'fragments' the texture is split into. Ideally you would want a texture to wrap onto the model in a single piece, and the inevitable distortion be as small as possible. Unfortunately, due to the shape of the object, and often to the algorithm mashing together part of pictures projected on the 3d shape, the texture need to be split into many (sometime very very many) connected components.

Unless we reparametrize the surface locally (and that's what we are working on), the simplification algorithm has additional constraints, and might fail to get a decent result.

This problem usually surfaces at the end of the simplification (the lowest resolution LOD), and it should be automatically recognized and just stop simplifying the model.

On Fri, Nov 1, 2019 at 1:36 PM murphysurveys notifications@github.com wrote:

What does the error "fragmentation of parameterization" mean?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/cnr-isti-vclab/nexus/issues/50?email_source=notifications&email_token=AAUDV247ETNTY4POA5UQBELQRQPERA5CNFSM4IPHEIM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC2ZXFQ#issuecomment-548772758, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUDV27J4RG7BFSQBUQT6VDQRQPERANCNFSM4IPHEIMQ .