About cache

I’m still coming to terms with what’s lost when clearing cache. My understanding is RC stores detected features and depth maps in the cache, but tie points live in the Component, which are saved to the .rcproject file. Is then safe to say, one should not empty the cache in a given project until Reconstruction of any and all Reconstruction Regions, but that it is safe to empty cache after Reconstruction but before Unwrap and Texture? With safe I mean efficient.

Secondly, does emptying cache while in one .rcproject affect any and all other project files? If so, that would appear to be inappropriate to the conventional purpose of cache, never something that holds critical information, rather a place to store things temporarily to get you through a process in a project. If there exists but a single cache folder shared between multiple projects, then emptying cache after Reconstruction in one project means loss of detected features and depth maps across all projects. And if that’s the case, to not lose time having to recalculate that for every other project, you’d have to impose a highly restrictive workflow on how many concurrent projects you have in motion based on how much (fast) storage is available. 1 TB SSD won’t get me far for this purpose.

Naturally, you wouldn’t want detected features and depth maps stored in the project file, since you’d forego opening up storage space after Reconstruction, forced to fatten the .rcproject file until the very end. The third alternative would then be to have a cache per project. This wouldn’t be a huge deal on the development side, but spells a world of difference to end users.

Thanks for either clarifying any misconceptions or responding to the ideas.

Hi Benjy,

  1. No, I believe RC also needs the features for texturing. I think for pretty much everything.

  2. Not sure if RC uses features of the same images across projects, but I would guess that it does. It should be possible to determine that easily via a quick experiment. If you don’t want to mess with the general cache, you can set it as “project folder” temporarily. That means the cache files will be saved in each project folder (I hope in a separate folder - haven’t tried it myself. This is also the olny way to delete the cache by individual projects. This would also be one possible answer to the second part of your question. It has been recommended several times to backup the cache if you want to be sure not to lose too much work if something goes wrong. I’ve never done that so far.

 

Hi Götz,

I can’t see how stored features would be needed for Unwrap or Texture. I’m less sure about the Unwrap side, but seems unwrapping a geometry wouldn’t rely on features detected within images used to make that geometry. As for Texture, with Alignment the camera poses are determined, three values for x, y, z location of the camera when the image was taken and three for rotation, where it was pointed. Those numbers aren’t the gospel, they get tightened with Reconstruction, and once the camera pose is locked, Texturing is simply about ortho-projecting the color back to the model from that camera pose. This is my basic understanding of photogrammetry generally.

When you say, “If you don’t want to mess with the general cache…” I’m a bit confused. Is there more than one cache? The default for storing cache is a Temp folder on the C drive. If you change that to a given project folder on another drive, I see in other projects that setting travels with RC on into other projects, so this was at the heart of my concern, every project being impacted by the choice to clear cache only in a given project. Is this for sure the way it works? I’d love to hear from the RC team on this point, as it’s so pivotal to workflow.

As a workaround, for those working numerous projects in parallel, you could set Temp to a folder within a given project folder, do this for each project, and simply be careful anytime you switch which project you’re working on to reassign cache to that project folder’s Temp folder.