Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ghosting artifacts in ULR for virtual scenes #12

Open
rumblecoder opened this issue Jun 16, 2021 · 2 comments
Open

Ghosting artifacts in ULR for virtual scenes #12

rumblecoder opened this issue Jun 16, 2021 · 2 comments

Comments

@rumblecoder
Copy link

Hi,
I have a question regarding the implementation of the unstructured lumigraph rendering: Why can I see ghosting artifacts for virtual scenes created with the provided acquisition interface using the high quality (non-optimized) ULR shader? I would expect that the UL rendering is near perfect because everything I provided (images, depth, cameras and mesh) is ground truth. There should not be any inaccuracies that could explain these artifacts.
I also checked the original ULR paper but could not find any hints for this problem (except for the proxies maybe?). Do you have any idea why this is happening?

@DinechinGreg
Copy link
Contributor

Hi,
Thank you very much for your message! And sincerely sorry for not answering sooner.

While ULR is quite great, some issues do remain that could explain the presence of ghosting artifacts. In particular, if your problem is that colours from a foreground object are projected onto a background object, then I believe the issue may be with the visibility check.
While I don't recall it being included in the algorithm described in the original paper on ULR, the authors of the paper do mention that "With a highly accurate geometric model, the visibility of any surface point relative to a particular source camera can also be determined. If a camera’s view of the point is occluded by some other point on the geometric model then that camera should not be used in the reconstruction of the desired ray". So if we have a foreground object occluding the background in the captured photographs, then a visibility check should be performed to prevent artifacts from appearing on the background.
We set up a basic version of such a check in the toolkit, which is why we store per-view depth data as well as the global mesh. We implemented this in the CheckPointNotOccluded method in ULRCG.cginc.

To compute our visibility check, we notably rely on a modifiable factor, named _DepthCorrectionFactor, which can be modified interactively in the GUI of the Rendering component (Depth. corr. under Blending method). The current implementation is far from perfect, but giving this factor a smaller value could perhaps help with your issue. Could you please try modifying the value of this factor in the GUI during rendering, to see if it helps reduce the amount of ghosting artifacts ?

Thanks again for your feedback, feel free to keep me posted on the issue!

@rumblecoder
Copy link
Author

Thank you very much for the explanation.

Decreasing the depth correction factor removes indeed the ghosting artifacts. Unfortunately new artifacts like small holes and strange lines appear now in the rendering:
colibrivr_depth_correction_compare

I think I need to check the blending steps in detail and modify them to my needs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants