8000 InstantMeshes by natowi · Pull Request #877 · alicevision/Meshroom · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

InstantMeshes #877

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 18 commits into
base: develop
Choose a base branch
from
Open

InstantMeshes #877

wants to merge 18 commits into from

Conversation

natowi
Copy link
Member
@natowi natowi commented May 3, 2020

This node can utilize Instant Meshes, an auto-retopology tool that can be used to remesh a surface into an isotropic triangular or quad-dominant mesh. To make use of this node, you need to provide the path to the Instant Meshes executable.

PyMeshFix is used to resolve mesh issues Meshroom has with the unmodified files.

Implementation notes:

  • Tested on Windows with python 3.7 and MR 2021.1
  • Add InstantMeshes on the AliceVision side or provide way to link to existing IM installation -> use [nodes] New node "RenderAnimatedCamera" using blender API #1432 as reference to call external application
  • update node / keep InstantMeshes name for node or change it? / node category
  • uncomment node documentation documentation = '''...''' before inputs = [
  • hide outputInstantMeshes (useful for testing only) -> set as advanced option (untested)
  • [Note: removed from this PR, full implementation can be found here] Dependencies (* NumPy >= 1.18.1(https://numpy.org/) * PyMeshFix >= 0.13.4, older versions DON'T work! (https://github.com/pyvista/pymeshfix) )
  • Some comment cleanup.
  • move detailed credits from code to COPYING.md
  • remove ALL print statements
  • implement Meshroom log output (implemented by TigerVersusT)

IM

Here are the ready to use files if you want to test this node with MR2021.1 (windows), instructions included


Code from natowi/meshroom_external_plugins#2 (comment)
InstantMeshes plugin 0.4 code by @djoerg

Old install instructions (until full implementation: natowi/meshroom_external_plugins#2 (comment))
(License is MPLv2, same as MR)

@natowi natowi added feature new feature (proposed as PR or issue planned by dev) wip work in progress labels May 3, 2020
@NexTechAR-Scott
Copy link

Awesome plug in.

Great work.

Validated Win 10 tonight.

My pipe is Linux so will look to provide feedback on that tomorrow.

@ChemicalXandco
Copy link
Contributor

I am planning to implement plug-in installation (similar to blender) as part of #964 which will allow this to be distributed separately from meshroom which is much easier because then the dependencies and the instant meshes executable are not tied to the meshroom version. What do you think?

@natowi
Copy link
Member Author
natowi commented Apr 15, 2021

Having an easy option to add external executables to be accessible for new nodes within MR would be great. It would simplify things. Here are my thoughts on the topic https://github.com/natowi/meshroom_external_plugins/wiki/Plugin-Manager-Draft

InstantMeshes is probably a good plugin to start with.

@fabiencastan
Copy link
Member
fabiencastan commented Apr 16, 2021

We should start simple.
Create new nodes using InstantMesh, Blender, etc. and just require the path to the binaries in these nodes.
When we have enough nodes that have proven to be useful, we can setup a UI module to deal with addons.

@natowi
Copy link
Member Author
natowi commented Apr 16, 2021

We should start simple.

I agree. We don´t need a sophisticated plugin menu at the moment, but a simple option to define a path to an executable and being able to use the path variable in nodes would be a huge help.

@natowi natowi self-assigned this Jul 2, 2021
@natowi natowi added review and removed wip work in progress labels Jul 2, 2021
@natowi natowi marked this pull request as ready for review July 2, 2021 20:28
@fabiencastan
Copy link
Member

Could we remove PyMeshFix and numpy for a first basic integration of InstantMesh?

@natowi
Copy link
Member Author
natowi commented Jul 7, 2021

I guess so, but it really helps to remove self-intersections and non-manifolds from the Instant Meshes output. So yes, sure, we can remove it for a first implementation. I´ll take a look at it within the next days. If you are faster, feel free to go ahead.

@fabiencastan
Copy link
Member

Maybe we can create a dedicated node for PyMeshFix and evaluate if we integrate it separately.

natowi added 4 commits August 1, 2021 10:23
Removed PyMeshFix to minimize dependencies

Known issues:

- InstantMeshes produces (more) self intersecting faces with smoothing, setting it to 0 worked most of the time
- The "Basic" unwrap method of the Texturing node seems more robust than the other two, "LSCM" definitly crashes on self-intersecting faces with "OpenNL assertion failed"! (Tested this by removing self-intersections with MeshLab, after that LSCM worked.)
@natowi
Copy link
Member Author

natowi commented Aug 1, 2021

Hi @fabiencastan, I removed PyMeshFix and tested the node (with the current release). Here are the known issues:

  • InstantMeshes produces (more) self intersecting faces with smoothing, setting it to 0 worked most of the time
  • The "Basic" unwrap method of the Texturing node seems more robust than the other two, "LSCM" definitly crashes on self-intersecting faces with "OpenNL assertion failed"! (Tested this by removing self-intersections with MeshLab, after that LSCM worked.)
  • The unmodified output from Instant Meshes isn't compatible with Meshroom and can cause crashes or unexpected behaviour if feed directly into a node.
  • Quad Meshes are not supported by other Meshroom nodes like Texturing.
  • Quad Meshes can be loaded into the 3D Viewer, but show up with a triangle icon next to it. We should add a Quad icon in the future.
  • At the moment we need to re-write the InstantMeshes Output into a OBJ file without normals to be able to use it with the Texturing node. Native support for OBJ with normals in the Texturing node would be really useful.

@stale
Copy link
stale bot commented Jun 18, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale for issues that becomes stale (no solution) label Jun 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature new feature (proposed as PR or issue planned by dev) review stale for issues that becomes stale (no solution)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants
0