[SOLVED] Texturing problem - Out of Memory

Hi,

Relatively new to photogrammetry, and RC specifically.
Have read quite a bit so far but I’m still having trouble, but I think it might be a bug…
I don’t think the texturing process ever properly finishes…

I’ve played around with a few settings.

process:
import images and press start
Get a ~32Mtri model
simplify to ~1,5Mtri model
Unwrap with listed settings
Texture

Texture step takes about 2 minutes and then abruptly ends with the red bar.
I also notice Model 2 has ‘Texturing style’ as Unwrap even after texture step.

Is this a software problem/bug or am I doing something wrong?
30mTri to 1mTri the problem? How do i keep proper texture resolution for high def VR experience, but low poly count?

I’m creating indoor enviro for VR.
PC is i7 6700k, 16gb RAM, GTX 1080Ti
I restarted computer, recreate model multiple times, cleared cache, tried different options but no luck on texture.
Model images were captured  through RECONSTRUCTION>EXPORT>RENDER

Is this proper workflow for creating enviro from pics for VR?
Additionally, after decimating and texturing, I should clean in meshlab/zbrush or other suggestion? Clean, reimport, and retexture?
First large room project!!

Thank you!!!

https://s26.postimg.org/6pbp6wwo9/settings.jpg

https://s26.postimg.org/95dikreqx/erorr.jpg

https://s26.postimg.org/je5zql2sp/comparison.jpg

hello, does any error message appear? if so, what does is state?

and what version of RealityCapture are you using?

No error message appears, just the red Texturing Model bar.

I cant check now, but should be latest version available from Steam. $40 month subscription access.

Just reset everything again, delete everything, etc. and finally got a specified error.

Says ‘Application ran out of Memory’ on Texturing Model dialogue.

I’m googling this issue now.

 

From Log file

Coloring completed in 128.593 seconds
Coloring completed in 0.210 seconds
Coloring completed in 128.954 seconds
Creating Virtual Reality completed in 1764.636 seconds
Saving Project completed in 2.214 seconds
Simplification in Progress completed in 36.974 seconds
Unwrapping Model completed in 26.794 seconds
Texturing Model failed after 138.374 seconds
Processing failed: The application ran out of memory
  [0x4001\0x7\0x7]
  [0x4001\0x7\0x7]
Texturing Model failed after 138.622 seconds

I changed quite a few settings to see what works.
UNWRAP settings to maximal textel size and the texturing was successful!

However, texture quality was at 9%… pretty poor.

I’ve played around with the settings to see whats the highest Texture Quality i can squeeze out but have had little success higher than ~9%.

Also, I noticed while monitoring memory usage of the pc, memory usage never gets higher than 75-80% used before texture crash.

Is there a solution for out of memory error?
This is pretty critical and poor execution for a quality VR output…
I can sacrifice some speed/processing time for a proper texturing.

I have a VR company and photogrammetry creation is essential for our success, and would like to use RC instead of numerous other products I tried…

 

Update: So I change the TEXTURING/COLORING STYLE in RECONSTRUCTION settings to Photo Consistency Based, and process took longer but completed!
Resulted in 75% texture utilization and 30% texture quality

Does anyone have recommendations for best  texture utilization while good performance for VR?

It looks like the texture quality is a bit confused to everyone right now ^^

I made some tests here: https://support.capturingreality.com/hc/en-us/community/posts/115001353472-Unwarp-texture-size-improvements-otherwise-RC-is-a-toy

hope that helps!

Don’t hesitate to run some tests of yours and share them to the community to help figuring things out :slight_smile:

This could be useful to have a look at:

https://support.capturingreality.com/hc/en-us/community/posts/115000771291–SOLVED-out-of-memory

https://support.capturingreality.com/hc/en-us/community/posts/115000773071-ERROR-Out-of-Memory

https://support.capturingreality.com/hc/en-us/articles/115001483771-Huge-scene-reconstruction

I’m running Cache to external drive (Non SSD) for the large storage size.
Can this be the problem?

I will try to play with page file as well, i guess…


I’ve tried the vertice reduction per part to 1,000,000, but no success still.

I haven’t tried dividing model with different Reconstruction Regions… I’m sure it’ll work, but a bit of a hassle…
This is only a <200 aligned image model and don’t think it’s large enough to warrant such a work around…

I’d like to use the Visibility Based texturing style as forum concesus says it is superior…

I will try to play with Color Method setting and Legacy Unwrap Algorithm and see if I get results…

Thanks for all the input.

 

Hi Mauro,

did you get it to work?

Is it possible you emptied the cache at some point before texturing?

About the meaning of texture quality:

https://support.capturingreality.com/hc/en-us/community/posts/115001490772-The-secret-of-the-Texture-Quality-value-

Hey!

Thanks for the updated link.
I’ve read through that thread in the past, but the new post really clarify the mechanics behind the RC’s texturing!!
Very important!!!

Although the above link post says Texture Quality doesn’t exactly mean the quality OF the texture…

I’m only running 16gb ram, so I’m consistently getting out of memory errors no matter what options I play with since I’m working with large interior objects (>1mmTri)
Only solution is reducing the poly count of the model to somewhere that RC wont crash. I still don’t think this is how a software should truly properly work, but RC is still great so I will work around issues… :confused:


I’ve tried Maximal and Fixed  texel setting on same  reconstruction region to see differences.
Fixed Texel with the matching ‘optimal texel size’ input yielded an obvious ~99-100%.
Maximal yielded 110%… lol Good!
However, I knew the selected reconstruction region had high quality imagery source, so maximal texel was expected provide good results…

In other experiments, when I texture a whole large environment, maximal would yield poor results in some part of the model  while it could look better with Fixed Texel size…
In practice, I guess I could render everything in Maximal setting, then analyze the model for texture weak points, define that reconstruction region for retexturing in fixed texel style, and finally remerge the higher texture piece…
Annoying workflow though…


 

I  also need help in merging/combining all the submodels of the component in RC.
To work around Out Of Memory error, I create multiple reconstruction regions which yield multiple models and retexturize each individually.
Is there a way to put all the reconstructions back together to one piece or must I use external program? I hear meshlab or Recap is good for this…

What do you guys suggest?
I’m looking  for most automatic, seamless workflow.

Edit:
So i just tried combining 2 mesh .obj regions I exported from RC into  Meshlab.
Very easy and straight forward to combine to one mesh.
I reimport combined obj into RC.
But now I have to unwrap and re-texture the large combined mesh but I cant because of the out of memory error like before! lol!
Circular problem for me here… haha

So how I do i preserve and make use of the high res texture created earlier for the new combined mesh?
If i have 15 reconstruction regions, wont this lead to wayyy too many texture files and be a problem in performance for VR?
ahhh man… any suggestions or help plz?

https://support.capturingreality.com/hc/en-us/articles/115001485012-How-to-put-together-more-components-

https://support.capturingreality.com/hc/en-us/articles/115001483771-Huge-scene-reconstruction

Hey mauro,

thanks for the report!

Why do you need to retexture within RC? I guess the only way to solve this is to create an unwrap outside RC that works within RC specifications. No idea if that is possible at all…

Lubenko: I’m not sure how to incorporate that with the texturing…
I need to learn more about the functioning of Components and Models. Current output only produces one component, and then i work with multiple models… need to merge models with existing textures.

Gotz:
So when i re-import the combined .obj, texture is no longer aligned, so I have to unwrap and retexture… which now I cant do because it is too many polys again.
Meshlab doesn’t export .rcinfo file to tell RC how to use the original texture.
Is there a setting in the Meshlab export for seamless RC import?
Or what’s an acceptable workflow to export from RC, import to stitching software, then reimport to RC while keeping texture alignment?

I’m just not understanding how to set multiple reconstruction region model parts and then combining them again without problem.

Hi mauro,

I am 100% certain that there is no meshlab output for RC!  :slight_smile:

The only way I could imagine is that you look at the rcinfo with an editor and see if you can figure something out.

Hence my question: What do you need to do in RC with the textured model - could that not be done in external software?

Another way to go might be that you use vertex colors instead of a texture - that can work if your model has a high enough resolution or rather a dense enough point cloud.

BTW, could you elaborate on how you did it in meshlab? I do not want to open a whole discussion about that. just for the case somebody else has the same problem and needs a quick solution…

@lubenko:

I wouldn’t say that this is solved yet…

@Gotz: I had seen Mauro mentioning the issue was solved, he/she may have edited it later, I will need to check everything again then

Meshlab stitching was very easy.
Once the Reconstruction region .objs are exported from RC, open meshlab FILES>IMPORT MESH and import all related meshes.
The objects should be lined up automatically once everything loads. Then select one of the objects on the right hand panel where loaded objects are listed, Right Click and click “flatten all visible layers”.
Finally FILES>EXPORT MESH


In regards of what I need to do in RC:
It doesn’t HAVE to be RC that does the texturing, just work flow. But the point of this discussion is breaking down model into multiple .obj to texture in high resolution with modest hardware in RC. I’ve managed to high res texture subrections of the model but cant bring them back in to work with… But I think I see what you’re saying now Gotz…
I’m not sure why I’m bringing the model back into RC… I can have final product straight from meshlab into game engine… is that what you’re saying?

Lol…

Yes, that’s what I’m saying!  :slight_smile:

That it won’t texture your modest mesh still sounds like a bug or at least points to some unresolved problem. But as long as you get what you need…

Thanks for the explanation for meshlab!

@lubenko: I guess now it is somewhat solved!  :slight_smile:

In this separate thread I relayed a similar problem:  for me, texturing small models (a few thousand triangles) using ~500 cameras out of ~4,000 registered cameras fails with ‘out of memory’ errors on a system with 128GB of (tested) RAM.  I’m selectively turning off the ‘Tx’ contribution from the other cameras in the scene.

With ~500 cameras, I can successfully texture a plane (2 triangles) in this scene, but not much more.

Culling the cameras to three gives the same problem, as discussed in the thread.

It looks like I’m having this issue again with a larger construction.
Out of Memory

970/1152 images registered
231M tri model

I’ve simplified down to 3M, 1M, 500k, and ~600 tris with no success in texturing and all take the same amount of time to fail (~20-30min)
I’ve tried all sorts of different setting variations in reconstruction settings and unwrap settings.
I’ve tried different reconstruction regions, small and large.

The model does have alignment issues in some sections when looking at the solid construction…
I have read that this can be the cause for errors.

I’m not exactly sure how to go about this any more…

Does anyone have a recommend solution for texturing an RC mesh output with a different software?