UPDATE 2.1.0 - April 11th, 2019The plugin has been updated to support AliceVision 2.1.0, including support for Linux! In order for it to work, update the Game Development Toolset to build 1.143 or newer! It also requires updated binaries! See download link in installation instructions below.
Release Notes (Highlights)
- More complete sensor database and better matching as well as explicit status for lens initialization.
- Support for reconstruction with projected light patterns and texturing with another images set.
- Better estimation of the space to reconstruct to limit the reconstruction zone. This avoids reconstructing low quality and useless areas around the main object/environment.
- Reduce IO and intermediate files in MVS part of the pipeline.
- See FULL LIST
This plugin requires an NVIDIA graphics card with Cuda 2.0+ support.
AliceVision is a Photogrammetric Computer Vision Framework which provides a 3D Reconstruction and Camera Tracking algorithms, which can be found on Github. It is being developed by the post-production company called Mikros Image, about whom you can find more information here: About AliceVision
Due to its command line capabilities, we have been able to successfully create an implementation inside Houdini as part of the GameDevelopmentToolset. (FREE)
AliceVision is licensed under the MPL2 license
- Install the Game Development Toolset 1.143 or newer
- Run Houdini and Verify the nodes are being properly loaded
- Download Alicevision_Windows or Alicevision_Linux below depending on your platform
- (Optionally) Download Sample Content
- Extract the Alicevision-2.1.0 zip file somewhere without whitespace (space) in the path.
- Correct: C:\My\File\Path\Alicevision-2.1.0\ Incorrect: C:\My File Path\Alicevision-2.1.0\
- Windows --> ALICEVISION_PATH = C:\Your\Path\Alicevision-2.1.0
- Linux --> ALICEVISION_PATH = "/Your/Path/Alicevision-2.1.0"
You can also decide not to set the ALICEVISION_PATH houdini.env variable, but that will require you to link to the binaries on the AV Initialize node every time you create a new node instance. It is therefore for convenience sake recommended you use houdini.env
- Get to the geometry context by creating a geometry node and enter it.
- Create the AV Photogrammetry sop.
- Set the Project Name parameter. (Ensures unique cache id for current process)
- Set the Cache Directory.
- Click the Add Images button on the Initialize tab to configure which images need to be processed.
- Optionally tweak any of the other parameters.
Click the add images button on the Initialize tab on AV Photogrammetry to configure which images need to be processed.
If you wish to customize more than just the very few basic parameters on the AV Photogrammetry sop, you can also construct the internal node network using the provided nodes yourself. Do this in the following order:
AV Initialize - Configure which images to process.
AV Analyze Images - Match all features between candidate image pairs.
AV Structure From Motion - Detects 3D points with position and orientation and calibrate the cameras accordingly.
AV Depth Map - Retrieves the depth value of each pixel from the cameras.
AV Meshing - Creates a dense geometric surface representation of the scene.
AV Texturing - Texture the generated mesh
There are a few node specific parameters you can change to speed up some of the steps. (For example for previews)
Structure from Motion: Set max number of matches to anything above 0 (default of 0 is unlimited). This reduces the number of images Alicevision tries to match.
Depth Map: Increase the down-sample amount.
Texturing: Reduce the generated texture resolution.
In the current version there are 7 Nodes, which can be found in the geometry context under GameDev/AliceVision.
This node is the start of the AliceVision node-network, and where you add your images. Simply click “Add Images” and a dialog will launch in order for you to select your chosen images. The image list is then stored as a detail attribute and will be passed on to the next nodes. It is therefore essential this node is always part of you network.
After you have added the images, set the Cache Directory and Project Name. The project name will ensure a new Cache Directory subfolder, meaning it will not overwrite previously processed data.
The objective of this step is to extract distinctive groups of pixels that are, to some extent, invariant to changing camera viewpoints during image acquisition, and to match all features between candidate image pairs.
The objective of this step is to understand the geometric relationship behind all the observations provided by the input images, and infer the rigid scene structure (3D points) with the pose (position and orientation) and internal calibration of all cameras. The output of this node will be a point cloud.
The objective of this step is to retrieve the depth value for each pixel in the images and cameras that had previously been resolved by Structure From Motion. This can take a very long time depending on the resolution and number of images provided.
The objective of this step is to create a dense geometric surface representation of the scene. The output of this node is a high-poly mesh, which can be used for any further processing in Houdini.
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 meshwith custom UVs. (For example using the Games Baker or Simple Baker)
For better analysis of your model, you might want to change some of the default display settings. This can by done by hitting D while on the viewport. As well as add an Ambient Light to your scene, cranked to white.
Detailed Documentation (WIP)
The team behind AliceVision has also been working on Meshroom, which is a free, open-source 3D Reconstruction Software based on the AliceVision framework. The documentation for Meshroom contains very useful information regarding the steps AliceVision goes through, including descriptions of every tweakable parameter. This can be found HERE.
Windows 7 or newer (x64), Linux
NVIDIA CUDA-enabled GPU (compute capability >= 2.0)
HDD: 2Gb+ for cache and models
CPU: No older than 3yr
CPU: i7/Ryzen 7 or better
GPU: NVIDIA GTX1070+
- The Plugin is currently only available on Windows.
- What image formats are supported?
- '.jpg', '.jpeg', '.tif', '.tiff', '.png', '.exr', '.rw2', '.cr2', '.nef', '.arw'
- AliceVision also supports other formats part of OpenImageIO, but it is recommended to stick to the ones listed above.
- Can I provide a boundingbox around my pointcloud to restrict what gets used for further processing?
- No, this is currently not supported by Alicevision.
- Error reporting is relatively light right now
- Cameras currently cannot be extracted from the scan due to a bug in Alembic import in Houdini. This should soon be resolved.
- No output generated
Try setting the project name to something you haven’t used yet. The problem might be caused by previous cache files interrupting the current process.
- Alicevision not found
Make sure you either set the ALICEVISION_PATH houdini.env, or link to the Alicevision directory on the AV nodes themselves.
Please send support questions to email@example.com