OSL trace to gather information on second hit
Julius Ihle
Hi, I'm trying to create a mask of everything after the first hit using `trace`. The way I was thinking of going about this is to do another trace call after the initial hit based on its P. I'm kind of getting the result I am after, however everything is really grainy and I cannot really wrap my head around as to why that is. I'm using the following code: ``` int hit = trace(P, I); if (hit) { point PP; getmessage("trace", "P", PP); int tt = trace(PP, I); out = tt; } ```
Which gives me this result:
I'm basically looking for exactly this result minus all the noise, which I'm not really sure why it's happening :) My approach is probably not the proper way to go about this. Any help would be greatly appreciated! Thanks, Julius |
|
Anders Langlands
Have you tried adding ray offset to the second trace call? ie something like: int tt = trace(PP + I * 1e-3, I); On Sun, 18 Sep 2022 at 07:28, Julius Ihle <julius.ihle@...> wrote:
|
|
Julius Ihle
Hey Anders, Thanks so much for the quick answer! I indeed didn't think of this earlier hehe. That did the trick just perfectly! Many thanks, On 9/17/22 21:56, Anders Langlands
wrote:
|
|