My interest in Reality Capture is via Unreal Engine 5. I would like to use photogrammetry for some objects that I would like to use in Unreal Engine. I thought RC was a perfect choice till I tried to import my first exercise model into UE5. The result is very disappointing. I searched for answers and found this thread: https://support.capturingreality.com/hc/en-us/community/posts/360002851491
I followed the workarounds as suggested by other users - fixing normals in UE5 and channeling the model through Blender. In both cases the result is the same - ugly model missing detail, any other ideas on how to solve this issue?
(Optional)Postprocess your images in your favorite SW like (Lightroom, Capture One, etc) and do not use any lens profiles (we need images with lens distortion on - distorted images)
Import these inputs RealityCapture
Scale the scene with the distance constraint tool or Import GCPs, FlightLogs
Align images and troubleshoot alignment until it gives it most accurate results (with the Ray of Sight and Inspection tool)
Create a reconstruction region
Use normal/ high detail reconstruction (create a mesh)
Filter out large triangles, unimportant parts with the mesh selections and filtering selection tool
Use the smoothing tool to smooth out the noisy parts if there are any (using mesh selections)
Use the Clean model tool to automatically repair any topology defects
Optionally: Use the lasso selection to only simplify parts that require it, do not simplify the whole model, otherwise, you can lose a lot of detail (this step depends on the type of dataset)
Optionally: Use the simplification tool in 50% increments to get to a suitable triangle count without losing any detail and name the model as a high-poly model. After each step, verify if you are not losing detail or sharp edges.
NOTE: don´t forget to save the project after a large calculation to not lose any work
Create a UV unwrap with fixed texel size setting by selecting the high-poly model (cleaned one) and creating the UV unwrap texture (optionally, you can fill in the unwrap textures with the checkerboard to verify the UV unwrap layout in 2D and 3DS and search for any UV related issues)
Then Simplify the model to create a low-poly version (without reprojecting textures setting enabled because this would reproject texture for every low-poly iteration). When satisfied with the low-poly model quality.
Process of simplification:
Use the lasso selection to only simplify parts that require it, do not simplify the whole model, otherwise, you can lose a lot of detail (this step depends on the type of dataset)
Use the simplification tool in 50% increments to get to a suitable triangle count without losing any detail and name the model as a high-poly model. After each step, verify if you are not losing detail or sharp edges.
Filter out large triangles, unimportant parts with the mesh selections and filtering selection tool
Use the smoothing tool to smooth out the noisy parts if there are any (using mesh selections)
Use the Clean model tool to automatically repair any topology defects
NOTE: don´t forget to save the project after a large calculation to not lose any work
Create a UV unwrap with fixed texel size setting by selecting the low-poly model and creating the UV unwrap texture (optionally, you can fill in the unwrap textures with the checkerboard to verify the UV unwrap layout and search for any UV issues)
Then click on the Texture reprojection tool in the Reconstruction tab and select high poly as a source model and low-poly as a target model. Enable normal map generation and click on reproject (change the reprojection distance or sampling if you will see any issues)
Then just export the model with these settings:
Note: Also, by selecting Unreal Engine transformation preset model will be automatically scaled and rotated to be correctly displayed in Unreal Engine
After importing the model to Unreal Engine don´t forget to check two of these settings to read the 16-bit normal texture map correctly in Unreal Engine.
Also don´t forget to check all the texture materials if diffuse maps and normal maps are correctly connected to the master material (and optionally you can tweak roughness, specular, and AO channels too by creating a more complex material)
The size of imported image is limited. You can paste print screen easily (as it is small).
PS This is not my model, it is one of your examples. I followed the process following this tutorial: https://www.youtube.com/watch?v=WrCOhes1Zgg I haven’t yet had time to follow your process as it will take me some time being a beginner
You see such a big difference because the model and texture in RC are unlit. The model and texture in UE5 are rendered and interact with lighting in the scene, which highlights the model’s noise on the surface.
My colleague Wallace explained this in one of our FAQ articles here.
The quickest way to match RC to UE as close as possible is to view the model in UE in unlit mode:
However, this doesn’t solve the problem when you want to actually use the asset in a game or render an animation/image.
To solve it, you have to modify the model’s material in UE. In your case, the large difference is probably caused by incorrect default roughness, specular and metallic values.
I’m also hoping for exchanging models to Nanite, yet haven’t achieved it. But I was told by a professional that this might also work with very large models, possibly even without polygon reduction at all. It would just take ‘forever’ to import this to UE5. I tried it with a 34GB model (300 million triangles) along with a 1.1GB texture in PNG format. Problem, I only have 16GB of RAM. UE5 took on the battle quite bravely, but when the swap file usage reached 64GB after an hour or so the program quietly vanished from the task manager.