-
Notifications
You must be signed in to change notification settings - Fork 266
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
Ray intersection sometimes ends up behind shape surface with inaccuracy larger than shadow epsilon #171
Comments
Hi @leroyvn, I couldn't reproduce this bug on my end, could you try again with the latest |
Thanks for looking into it :) I rebased my
System informationPlatform: macOS 11.4
|
Interesting, I have only tested this on a Linux machine. This is running with Embree I suppose? |
AFAIK I'm running with the kd-tree (I set |
Same here actually. Would it be possible for you to try on a Linux machine? |
I got exactly the same results on a WSL (Ubuntu 20.04). I'll attach my CMake cache file just in case. CMakeCache.txt
|
Ray intersection is sometimes behind surface with inaccuracy larger than shadow epsilon. This may result in wrong occlusion.
System configuration
Platform: macOS 10.15.4
Compiler: Apple clang version 11.0.0 (clang-1100.0.33.17)
Python version: Python 3.7.6 :: Anaconda, Inc.
Mitsuba 2 version: leroyvn/mitsuba2@ed00d49 [branched off abf6938]
Compiled variants:
scalar_mono
scalar_mono_double
Problem
I sometimes get intersections located at the wrong side of the associated surface. While it's usually not an issue, the error in positioning can become larger that
ShadowEpsilon
if scene dimensions become too large. At this point, this become problematic, as the surface will occlude while is actually should not. I tried with therectangle
andsphere
shape plugins.Note that I encountered this issue only with the
distant
sensor plugin (see #143). I suspect that this is due to the fact that the ray origin moves further away from the scene as its size increases, which increases the tolerance on positioning.Any idea about what can be done to ensure that the intersection point will end up at the correct side of the surface? (Or at least closer than
ShadowEpsilon
?)Steps to reproduce
The text was updated successfully, but these errors were encountered: