Skip to content

Commit

Permalink
[UPDATE] Overhaul to **Labs AV Texturing 6.0 SOP** and all other Alic…
Browse files Browse the repository at this point in the history
…eVision plugin SOPs to be compatible with the latest version of AliceVision/Meshroom. Also includes some UI cleanup, documentation updates, and removal of some unnecessary features.
  • Loading branch information
d-oglesby committed Jan 11, 2025
1 parent 94b85b7 commit e1af59f
Show file tree
Hide file tree
Showing 22 changed files with 2,615 additions and 0 deletions.
79 changes: 79 additions & 0 deletions help/nodes/sop/labs--av_texturing-6.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
= Labs AV Texturing =

#type: node
#context: sop
#internal: labs::av_texturing::6.0
#icon: alicevision.png
#tags: sidefxlabs, photogrammetry

""" Texture the generated mesh using Alicevision. """

The objective of this step is to texture the generated mesh. The output of this node is a high-poly mesh with very basic UVs and textures. It is highly recommended to reproject the textures on a mesh with custom UVs. (For example using the Games Baker or Simple Baker)

NOTE:
Requires Meshroom/AliceVision version 2023.3.0. See [https://alicevision.org/#meshroom|https://alicevision.org/#meshroom] for information on how to download.

TIP:
The node allows you to provide a custom mesh to be textured in the second input. For example use the quad remesher to remesh the dense geometry produced by the meshing step and UV it using any of the UV tools. This generally produces better results than letting AV UV the geometry.
@parameters
== Main ==
Cook:
Start the cooking process for this step.
Use Log:
This toggle controls if the status of the current node should be printed to the console. This is useful for getting a quick overview of the progress.
== Texturing ==
Texture Side:
Output texture size.
Texture Downscale:
Texture downscale factor.
Texture File Type:
Texture File Type.
Unwrap Method:
Method to unwrap input mesh if it does not have UV coordinates.
' Basic (> 600k faces) fast and simple. Can generate multiple atlases.

' LSCM (<= 600k faces): optimize space. Generates one atlas.

' ABF (<= 300k faces): optimize space and stretch. Generates one atlas.
Fill Holes:
Fill Texture holes with plausible values.
Flip Normals:
Option to flip face normals. It can be needed as it depends on the vertices order in triangles and the convention change from one software to another.
Use UDIM UVs:
Use UDIM UV mapping.
Padding:
Texture edge padding size in pixels.
Best Score Threshold:
(0.0 to disable filtering based on threshold to relative best score).
Angle Hard Threshold:
(0.0 to disable angle hard threshold filtering)/
Force Visible By All Vertices:
Triangle visibility is based on the union of vertices visibility.
Visibility Remapping Method:
Method to remap visibilities from the reconstruction to the input mesh (Pull, Push, PullPush).
Use Custom Images for Texturing:
Use images from a specific folder instead of those specify in the SfMData file. Filename should be the image uid.
Custom Texturing Images:
Use images from a specific folder instead of those specify in the SfMData file. Filename should be the image uid.
Correct Exposure:
Uniformize images exposure values.
Use Score:
Use triangles scores for multiband blending.
Process Colorspace:
Colorspace for the texturing internal computation (does not impact the output file colorspace).
Multi Band Downscale:
Width of frequency bands for multiband blending.

== Environment ==
Environment:
The environment used for launching the AliceVision utilities command line. Note that this is a python expression and should be modified only through "Edit Expression".


@inputs
Custom Mesh:
Optionally provide a custom mesh to be textured in the second input. For example use the quad remesher to remesh the dense geometry produced by the meshing step and UV it using any of the UV tools. This generally produces better results than letting AV UV the geometry.


@examples

- [Example File|https://github.com/sideeffects/SideFXLabs/blob/Development/hip/examples/alicevision]
14 changes: 14 additions & 0 deletions otls/av_texturing.6.0.hda/INDEX__SECTION
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Operator: labs::av_texturing::6.0
Label: Labs AV Texturing
Path: oplib:/labs::Sop/av_texturing::6.0?labs::Sop/av_texturing::6.0
Icon: opdef:/labs::Sop/av_texturing::6.0?IconImage
Table: Sop
License:
Extra: inputcolors='2 "RGB 0.700195 0.700195 0.700195" "RGB 0.700195 0.700195 0.700195" ' outputcolors='1 "RGB 0.700195 0.700195 0.700195" '
User:
Inputs: 1 to 2
Subnet: true
Python: false
Empty: false
Modified: Fri Jan 10 21:22:40 2025

4 changes: 4 additions & 0 deletions otls/av_texturing.6.0.hda/Sections.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
""
INDEX__SECTION INDEX_SECTION
houdini.hdalibrary houdini.hdalibrary
labs_8_8Sop_1av__texturing_8_86.0 labs::Sop/av_texturing::6.0
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"hdaroot/null1.def":1547596363,
"hdaroot/switch1.def":1547596358,
"hdaroot/obj_importer1.def":1644437960,
"hdaroot/attribwrangle1.def":1620413548,
"hdaroot.def":1736533455,
"hdaroot/11_Texturing.def":1546980116,
"hdaroot/merge1.def":1620232650,
"hdaroot/switchif_custom_mesh.def":1620259979,
"hdaroot/divide1.def":1620260591,
"hdaroot/file1.def":1620259966,
"hdaroot/attribwrangle2.def":1620413934,
"hdaroot/switchif_custom_mesh2.def":1620259979,
"hdaroot/null6.def":1620261272,
"hdaroot/null4.def":1569865496,
"hdaroot/OUT.def":1620413846,
"hdaroot/merge2.def":1620261265,
"hdaroot/null2.def":1554851935,
"hdaroot/output0.def":1549935223,
"hdaroot/python8.def":1569864008,
"hdaroot/color1.def":1620425076,
"hdaroot/file2.def":1620259987,
"hdaroot/obj_importer1/mesh_materials.def":1642589800,
"hdaroot/null_custom_mesh.def":1636503404,
"hdaroot/null5.def":1620232655
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"values":["0.4","20.5.445"
],
"indexes":{
"hdaroot/null1.userdata":1,
"hdaroot/switchif_custom_mesh.userdata":1,
"hdaroot/null_custom_mesh.userdata":1,
"hdaroot/merge1.userdata":1,
"hdaroot/file2.userdata":1,
"hdaroot/null5.userdata":1,
"hdaroot/11_Texturing.userdata":1,
"hdaroot/python8.userdata":1,
"hdaroot/OUT.userdata":1,
"hdaroot/divide1.userdata":1,
"hdaroot/output0.userdata":1,
"hdaroot/obj_importer1/mesh_materials.userdata":0,
"hdaroot/null4.userdata":1,
"hdaroot/null6.userdata":1,
"hdaroot/file1.userdata":1,
"hdaroot/switchif_custom_mesh2.userdata":1,
"hdaroot/merge2.userdata":1,
"hdaroot/switch1.userdata":1,
"hdaroot/null2.userdata":1
}
}
Loading

0 comments on commit e1af59f

Please sign in to comment.