GISD artifacts

Started by sboerner, June 07, 2018, 06:14:21 PM

Previous topic - Next topic

sboerner

I ran into some strange vertical striping while using GISD with imported objects in my Erie Canal scene. I had some time today to run it to ground and wanted to report on the results. I've scanned all the GISD-related posts on the forum and couldn't find any references to this specific issue. But if everyone already knows about this please bear with me.

In a nutshell the striping occurs when the object is distant from the scene origin (0,0), and becomes more apparent the further away the object gets. The angle also matters: If the surface is perpendicular to any of the three axis the stripes seem to disappear.

These are all unmodified renderings made of a cube with some surface extrusions. The cube's surface shader is a plain, 50 percent diffuse gray. The planet's surface layer is also set to 50 percent gray. Because the artifacts are most apparent in the shadow areas, all of the objects are backlit: The sun is at 20 degrees elevation and a little to the left. The stripes are more apparent when GISD is set to Ambient Occlusion instead of Global Illumination.

The first one shows the cube rotated 45 degrees on the Y axis and positioned 1,000 meters from the origin, with GISD set to GI and AO:

[attach=1]

Same object at 5,000 meters.

[attach=2]

And again at 10,000 meters.

[attach=3]

Neither the incident light angle or camera angle seems to matter. Here is the same cube from a different camera angle (left), and from the original camera angle but rotated on all three axes.

[attach=4]

If the surfaces are perpendicular to the X, Y or Z axes, then the pattern goes away:

[attach=5]

Some of the GISD forum posts I saw discussed an issue where the underlying mesh sometimes appeared when GISD was used. This is not that. These stripes have nothing to do with the mesh.

In my canal scene I ran into this with an object located only about 1,100 meters from the origin, so the proximity and color of nearby surfaces, and the density of the shadow area, must also have an effect. So far the only way I know to reduce it is by setting GISD to Global Illumination and dialing back the occlusion weight and/or radius.( Increasing the radius increases the effect.) I haven't messed around yet with Bounce to the Ounce, so adjusting that might help as well.

(Edited to attach full file with dependencies.)

Kadri


Interesting that the problem shows up when you rotate the object.
The population bug does have the same problem with rotation. Maybe related?
https://planetside.co.uk/forums/index.php/topic,24326.msg246986.html#msg246986

Matt

You've found a bug I wasn't aware of. It's probably a floating point precision issue in the position buffer. I'll put it in the bug tracker.

Thanks for the detailed tests.

Matt
Just because milk is white doesn't mean that clouds are made of milk.

sboerner

You're welcome! Thank you for following up.

Oshyan

Wow, very well sleuthed! Thank you.

- Oshyan

sboerner

My pleasure! Glad to help.