Skip to main content
Share Your Experience: Take the 2024 Developer Survey
24 votes

Why does my Perlin Noise look "blocky"?

The interpolation looks fine. The main problem here is that the hash function you're using isn't very good. If I look at just one octave, and visualize the hash result by outputting ...
Nathan Reed's user avatar
  • 25.1k
8 votes

Ray Tracing Shadows: The Shadow Line Artifact

The shadow terminator problem (as it's also known) is still something of an open problem in ray-tracing. As you say, disabling self-shadowing is not a very good workaround, because non-convex meshes ...
Dan Hulme's user avatar
  • 6,830
6 votes

Artifacts when gamma correcting

Short answer, set the precision of the image to a higher value. Long answer, When looking at a gamma correction curve, you can see that the lower values get changed much more, this means that the ...
bram0101's user avatar
  • 1,605
5 votes

How to solve Z buffer artifacts

Short answer: Move your near clip plane further away. Depth buffer precision is very sensitive to the near clip plane distance. Complicated answer: Use different math in your view projection. There ...
Chifti Saidi's user avatar
5 votes

Tesselation sine distortion?

Not enough triangles. The situation is analogous to the sampling theorem that states that you can not reconstruct a signal if your sample frequency is below a certain threshold. Although in this, case ...
joojaa's user avatar
  • 8,437
4 votes

Strange sphere reflection effects in ray tracing project. I cannot figure out what causes them

The issue was caused by an incorrect calculation of the reflection direction vector. With D ray direction and N the normal vector: R = D - 2 * dot(D, N) * N The ...
Speterius's user avatar
3 votes

Weird rendering in rectangle mesh shader AKA Why has my basic shader become a modern art generator?

I think you are not constructing the index buffer correctly. Firstly you only need 1 degenerate vertex to terminate each triangle-strip row. You also should not need any special handling for odd/...
PaulHK's user avatar
  • 2,322
2 votes

Compression-friendly PNG files

PNG format is lossless format where for compression the image is first "filtered" and this filtered image is then passed to DEFLATE lossless compression algorithm. The purpose of filtering stage is to ...
JarkkoL's user avatar
  • 3,636
2 votes

How to avoid curvature artifact in raytracer?

In raymarching, it's typical to change the direction of the ray according to the fragment coordinates, but leave the origin at vec3(0,0,0). In you code you add r, ...
Michael Sohnen's user avatar
1 vote

How to achieve smooth max of two coordinates in a shader

You do not have a bug. This is not an artifact of your program, but of the human visual system — an optical illusion. The retina emphasizes the second spatial derivative of the image, a phenomenon ...
Kevin Reid's user avatar
  • 1,171
1 vote

What remedies are there for percieved color artifacts due to pixel geometry?

In computer typography, the technique for adjusting strokes so that they align with the pixel grid is called hinting. The color artifacts you are seeing are due to another technique called subpixel ...
Gus's user avatar
  • 111
1 vote

How to avoid curvature artifact in raytracer?

Some curvature artifacts are normal when doing raymarching or ray-tracing. And if you are careful, you can even find curvature artifacts in some rastered scenes if the triangles are small enough. It ...
Michael Sohnen's user avatar
1 vote

What can be the cause of some strange ray shadows artefacts on a perfectly flat surface?

It appeared that it was exactly the problem explained in the link of my original post (Cause of shadow acne). The shadow function offset has been increased and the problem is solved!
Balfar's user avatar
  • 76
1 vote

Visual Artifact in Wireframe Grid/Plane

It's a interference pattern, called Moire pattern. You get them in signal analysis and various other fields. I guess it could be considered an optical illusion. EDIT: To elaborate, this occurs when ...
lfgtm's user avatar
  • 456
1 vote

Microfacet BRDF artifacts

It turns out that the ring was happening from a negative divided by a negative, so adding nom = max(nom, 0.0); fixed the problem. The new highlight, amplified:
Sam's user avatar
  • 198
1 vote

Ghosting in volumetric lighting

Temporal by definition will ghost. I’d limit past frame sampling, apply weight < 0.5, limit movement etc.
Alexey L's user avatar
1 vote

Normal Artifacts On Grazing Angles

According to, the term $G(l, v, n)$ in the Cook-Torrance Specular BRDF can be written as $$ G=\frac{n \cdot v}{(n \cdot v)(1-k)+k} \cdot \frac{n \cdot l}{(n \cdot l)(1-k)+k} $$ and ...
TheCoder5550's user avatar

Only top scored, non community-wiki answers of a minimum length are eligible