godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.33k stars 21.24k forks source link

GI Probe streaking artifacts #33701

Open AidenHuxley opened 5 years ago

AidenHuxley commented 5 years ago

Godot version 3.1.1 OS/device including version: Windows 10(64 bit) Running on a laptop with a 1060, i7-8750H @ 2.20GHz and 16 GB ram Issue description: Building lighting with a GI probe produces weird streaks on most models in the scene:

Capture

Steps to reproduce: Model and unwrap a medium sized scene in blender and export to Godot as a GLB. Import it as a scene. Add directional light, environment light and GI probe. Build GI with maximum GI subdiv.

Minimal reproduction project: GiProbeIssue.zip

Calinou commented 5 years ago

Build GI with maximum GI subdiv.

Does this occur with a lower number of subdivisions? Also, does this occur if you disable Rendering > Quality > Voxel Cone Tracing > High Quality in the Project Settings?

AidenHuxley commented 5 years ago

The effect is lessened with lower GI subdivs, but it's still pretty noticeable. Yeah it happens with high quality voxel cone tracing turned off

Calinou commented 5 years ago

@AidenHuxley Try to play around with the GIProbe's bias values.

AidenHuxley commented 5 years ago

@Calinou Turning up the bias seems to fix most of the artifacts for the diffuse, but it doesn't affect how visible they are in the reflections, especially at grazing angles

Capture2

I'm wondering if this could be a problem with the models? Maybe something with how it's voxelizing them?

Jummit commented 4 years ago

To me it seems pretty obvious: The problem is with faces that aren't allined to the voxel grid. The more subdivisions, the more streaks. There are still streaks with the lower subdivisions, but they are less noticeable.

KoBeWi commented 3 years ago

Seems still valid in f3dccf5

Calinou commented 3 years ago

@KoBeWi Does rotating the GIProbe on any axis improve the situation?

KoBeWi commented 3 years ago

It doesn't make any difference, unless rotated after baking.