Skip to main content
GameDev.net gamedev.net
🔒 Locked

Raytracing Artifacts

Started by Tom Savage Nov 14, 2012 at 10:46 PM 2 replies 2.4k views
Original Post
Tom Savage
Tom Savage
I'm currently working on an experimental raytracer which is currently presenting me with a strange artifact that I can't explain.

If you look at the first attached file, you will see an example render (1 sample per pixel). On the right-hand side, there is a noisy band in line with the light source (red sphere). I've added arrows to point out the noisier areas.

When I increase the number of samples - the noise is averaged out and disappears, but has a blurring effect (visible in the second attached image).

Moving the light source will move the artifact as well. It always appears in line with it, moving across the x axis

Has anyone seen this sort of effect before?
Bacterius
Bacterius
I've never seen this before. What does the code look like?
“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”
Necrolis
Necrolis
I've seen something very similar to this this, turned out to be precision issues with shadow rays, that is is the ray was intersecting with the surface it was shot from, even though it should be starting from the surface, adding a small offset/bias fixed the problem. it might be a similar issue in your case.
Tom Savage
Tom Savage

I've never seen this before. What does the code look like?


The render is written in Haskell. I'm not sure if many people here are too familiar with it but here's an intersection routine for spheres: https://gist.github.com/4078346



I've seen something very similar to this this, turned out to be precision issues with shadow rays, that is is the ray was intersecting with the surface it was shot from, even though it should be starting from the surface, adding a small offset/bias fixed the problem. it might be a similar issue in your case.


I suspected floating point precision and already have a minimum distance I will allow for intersections (epsilon in the sample above). I've tried increasing it with no effect. How similar was your example to this one?

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.