-
-
Notifications
You must be signed in to change notification settings - Fork 21.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TRACKER] DOF Blur quality issues #65116
Comments
I will update the other points more substantially later, but the Label3D issue comes from it being a transparent object. It doesn't write to depth so it gets treated as if it's at the depth of whatever is behind it. It will have trouble with all screen-space effects utilizing the depth buffer (SSR, SSAO, etc.). The solution is to set the depth draw mode to opaque prepass so it's depth can be written into the depth buffer. |
Regarding jitter, I remember it having a very subtle effect a few months ago. It may have broken with refactoring changes though. Either way, I think that setting should be removed to only perform DoF jitter when TAA is enabled (where jittering effects over time is the most beneficial). #57210 has a WIP branch linked in a comment to improve depth of field performance/quality, but its author no longer has time to work on it. |
It still works, but it's effect is extremely slight, and is masked by using higher quality settings, using a larger blur size, or rendering at a higher resolution. EDIT: Also, It doesn't look like it has any effect in Circle mode. |
I'm working on a fix for an edge artifact that happens at uneven resolutions, which is somewhat related to the #65116 (comment) issue described here (I suspect the I think creating individual issues and checklist linking them in this tracker issue might be easier to follow. |
Godot version
9c890ef2f
System information
Windows 11/64, RTX 3070, Vulkan
Issue description
Tracker for depth of field blur issues.
I can pull any of these out into separate issues if desired. Otherwise, the detail is below.
Steps to reproduce
Minimal reproduction project
test_dof_blur.zip
Jitter does nothing
rendering/camera/depth_of_field/depth_of_field_use_jitter
doesn't seem to do anything.I see no effect on any bokeh or quality level.
Label3D
Label3D is incorrectly affected by blur
Blur Artifacts
Different blur algorithms amounts have different artifacts on movement. This is tested while adjusting focus_distance between near and far and back. This procedure is done all the time when a real camera is autofocusing, or when an First Assistant Camera pulls focus on a camera when filmmaking (a person manually focusing the camera). Every film racks focus. Many video games also use this technique.
Hexagon
Low
Tested w/ f/4, 100 ISO, 250 shutter
This seems to be the reference setting and the best all around, however it has issues.
dof_moving.mp4
Very Low
Tested w/ f/4, 100 ISO, 250 shutter
A bit of pixel movement on focus.
It appears that the blur amount is stepped. As the MRP racks between 3 and 6, watch the background. It doesn't change smoothly. It looks more like it changes in 3 increments as if recording with a stop motion camera. Compare with Low, which changes smoothly. Not present on Low or High.
Medium
Tested with f/2, 25 ISO, 250 shutter to get about the same amount of blur.
A bit of pixel movement on focus.
This level also changes the blur in steps, like Very Low. Not present on Low or High.
High
Tested with f/2, 25 ISO, 250 shutter to get about the same amount of blur. Otherwise, no artifacts.
Box
Pretty much the same as Hexagon.
Circle
Tested with f/2, 25 ISO, 250 shutter.
In its current state, this is not usable for a racking focus camera due to artifacts. Performance takes a big hit as well. The blur looks amazing, so it's too bad.
Very low
edge_artifacts.mp4
Low
Medium
High
The text was updated successfully, but these errors were encountered: