https://github.com/bauxitedev/godot-particle-dof
Bokeh-esque particle depth of field in Godot 3.0
https://github.com/bauxitedev/godot-particle-dof
bokeh godot-engine graphics-programming shader
Last synced: 12 months ago
JSON representation
Bokeh-esque particle depth of field in Godot 3.0
- Host: GitHub
- URL: https://github.com/bauxitedev/godot-particle-dof
- Owner: Bauxitedev
- License: mit
- Created: 2018-04-19T09:14:15.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2018-04-25T16:44:16.000Z (about 8 years ago)
- Last Synced: 2025-04-05T13:40:37.259Z (about 1 year ago)
- Topics: bokeh, godot-engine, graphics-programming, shader
- Language: GLSL
- Size: 106 KB
- Stars: 90
- Watchers: 8
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Godot Particle DoF
This is a shader for particles to create a bokeh-esque depth of field effect. It works by essentially "precomputing" the various amounts of blur, instead of blurring in real time. Since the particles are radial, we can store only a single row of pixels per blur level, and the shader will distort the UV coordinates to turn it into a circle. This gives us a very compact 512x1024 texture that stores 1024 different blur levels, which can be smoothly interpolated.
This has the following advantages:
- Really really fast blur. The GPU only has to look up the texture in a lookup table. No nested for loops with expensive convolution here. Only issue here is that there's a fairly large amount of overdraw.
- Allows extremely large blur sizes (e.g. can blur a particle so much that it covers the entire screen without lagging).
- No artifacts because of low sample count, looks very close to the "ground truth".
But has some disadvantages as well:
- Only works for radial particles, that is, disks and toruses and such, facing towards the camera.
- All particles must have the same size, or the effect breaks down.
It looks like this:

[Here's a video of it in action.](https://www.youtube.com/watch?v=7FDlCm7AiLw)
License
----
MIT