With Substance 3D Sampler 4.0, you can use real-world images to create 3D objects with automatic subject masking, texture mapping, and geometry decimation. This version introduces some UX improvements as new possibilities in the Python API.
Release date: 31 January, 2023
With Substance 3D Sampler 4.0, you can now create 3D objects from images.
We have integrated photogrammetry capabilities. Photogrammetry is the technical process of taking measurements from images. It is how Sampler creates 3D meshes from a series of photographs.
All you need to start is a series of photos which capture the visible surfaces of an object - a smart phone or DLSR camera works great.
Discover the step-by-step workflow here.
Remove the background of the object you wish to 3D capture. Create an auto-generated mask of the object after importing your images via the Mask tab.
Using masks has many advantages. It allows to detect features and reconstruct only non-masked areas.
Define your reconstruction area
Toggle Region of interest to activate a bounding box after aligning your images. Set and align the precise area you want to reconstruct.
Once your 3D object is reconstructed, optimize the result with automatic decimation, UV unwrapping and baking.
The post-processing helps you to adapt and optimize your mesh and textures to your needs and how you want to use it.
The result of the reconstruction can generate a mesh with millions of polygons and up to 16K textures. This often won’t be optimized for rendering, real-time or AR experience.
The post-processing step chains 4 steps automatically:
- UV unwrap
Export to major file formats
Export your reconstructed 3D objects in all standard file formats so you can use them wherever you need.
2D and 3D viewports can be resized, swapped and stacked vertically.
We splitted the export function into 4:
- export materials:
- export environment lights:
- export mesh with or without textures:
We added a new function to import textures with a specific usage:
Sampler will now load at startup script and plugins stored on paths defined by two environment variables:
(Released 31 January, 2022)
- [3D Capture] Create 3D objects from images
- [3D Capture] Dedicated 3D Capture wizard
- [3D Capture] Import or generate black and white masks on your dataset
- [3D Capture] Alignment result - view all matched features as a point cloud
- [3D Capture] Alignment result - view and interact with cameras associated with each aligned photo
- [3D Capture] Define the reconstruction area with a bounding box widget
- [3D Capture] Scale, translate, and rotate on all axes the bounding box widget
- [3D Capture] Define the geometry precision for the reconstructed mesh
- [3D Capture] Optimize your mesh and textures by creating a new version
- [3D Capture] Each of the versions is automatically decimated to the target faces number set
- [3D Capture] The post-process step automatically unwraps, re-projects textures, and then bakes the normal height and AO information from the high-poly mesh
- [3D Capture] Add the original result or a version to the Sampler project
- [3D Capture] New Mesh Post-Process layer to automatically decimate, unwrap, reproject textures, and bake details of the underlying mesh layer
- [3D Capture] New Mesh Transform layer to scale, rotate, or translate the underlying mesh layer
- [Export] New Export window
- [Export] Dedicated settings and UI depending on the asset type (material, environment light, mesh)
- [Export] Export the mesh as USD, USDA, USDZ, glTF, glb, obj, fbx, stl
- [Export] Define the material type when exporting Substance files (SBSAR, SBS)
- [UI] Move cache settings to a new tab in the Preferences popup
- [Application] 2D and 3D viewports can now be resized, swapped, and stacked vertically
- [Application] New SAMPLER_RESOURCES_PATH environment variable to add extra starter assets
- [Scripting] Added SAMPLER_PLUGIN_PATH and SAMPLER_SCRIPT_PATH environment variables to import plugins and scripts at startup
- [Scripting] Added export functions for materials, environment lights, and 3d objects
- [Scripting] Added identifier, default value, min and max values, labels, and enum values to parameters
- [Scripting] Added import_textures function to enter a customized usage while importing images
- [Application] Crash when opening a recent project and saving in confirmation dialog
- [Application] File dialog prevents opening .ssa files
- [Application] File dialogs can appear on a background window on macOS
- [Application] Potential crash when opening 3.2 projects
- [Application] Selecting a file closes the File dialog before displaying warnings
- [Exposed Parameters] Exporting parametric environment lights does not work
- [Layers] "Click here to browse" link in layer stack doesn't work anymore
- [Layers] Painting several images within the same layer sometimes does not work
- [Layers] Setting an image in the layer properties does not update the image picker thumbnail
- [Layers] Tweaking a Sampler asset added as a layer does not work
- [Project] Unwanted asset update when opening a project
- [Scripting] Browse to plugin folder sometimes fails on Windows
- [Scripting] Crash when using 'open_project()' in a Python script
- [Scripting] JPEG export is missing from the API
- [Scripting] The log panel is not read-only
- [Scripting] image_picker parameter value does not work
- [UI] Missing asset icon for environment lights in the Project panel
- [UI] Send to Designer Format Dropdown in the Preferences popup can be empty
- [UI] Some buttons have an incorrect style
- [UI] The label overlaps the buttons in Button Group widgets
- [UI] Tooltip position is wrong for "Tools" in Set the physical size menu
- [UI] When changing language, File menu is misaligned
- [3D Capture] When using masks, the texture projection may be broken
- [3D Capture] Small artefacts may appear on your object if your scale in the Mesh transform is too small
- [3D Capture] The exported mesh may be really small. Reset the scale of the Mesh transform and re-export
- [Color Picker] Picking a color on a second monitor with a different resolution may not work
- [Content] Shape light widget is not working in spherical projection mode
- [Interoperability] Material with displacement sent to Stager will lose displacement controls