Shader nodes are my favorite tool in any engine I use, and the Godot node editor is wildly powerful… while being absolutely obtuse to learn.
Here are the things I struggled with, and the solutions I’ve found so far:
Shader Node Names
| Godot | Unity | Blender | Unreal | Material Maker | Susbtance Designer |
| Mix | MixRGB | Lerp | Blend | ||
Godot Shader concepts
Usefull Node Groups
World Space Transform
Sources
Finding info on Godot Visual shaders can be like pulling teath, especially with our search engines being ripped apart from the inside. Here are the useful places that I found everything I’ve learnt so far.
- Supporting multiple lights in your shader: https://www.reddit.com/r/godot/comments/1e71ywe/comment/le0nc2c/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
- Long blog on how Godot lights and shaders work: https://medium.com/@ShaderError/godot-custom-shader-built-ins-44f88007a054
- Shadow Casting and receiving on a custom shade. Honesty not a huge insight, but it was critical in debugging why my shadows didn’t work. Sometimes you just need an authorities answer to rule out a red herring: https://forum.godotengine.org/t/can-i-add-a-parameter-to-disable-shadows/41024/2
- Lerp is called Mix, shouldnt have needed to look this one up, but herre’s how I found out: https://www.reddit.com/r/godot/comments/1avj3x6/comment/krb0o6n/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
- Checking distance form the camera: https://www.reddit.com/r/godot/comments/ynumxl/how_to_get_pixel_distance_to_camera/
- There are 2 things I found helpful here: 1) How to calculate World Position. 2) How to pass info from Light/Fragment/Vertex using a ‘Varying’: https://danielilett.com/2024-02-06-tut8-1-godot-shader-intro/
- How to edit the values in the Triplanar node (TriplanarParameterTexture) using the editor, because they can’t be accessed in the shader window: https://danielilett.com/2024-02-06-tut8-1-godot-shader-intro/
- Info on different spaces (World, Object, etc.) and the math/nodes to convert between them: https://www.reddit.com/r/godot/comments/1cql9qo/shader_space_transform_node/
- Using rendered camera space normals and converting them to world space: https://godotforums.org/d/36409-triplanar-visual-shader-with-different-textures/4
- Weird quirks of making triplanar mapping from scratch: https://godotforums.org/d/36409-triplanar-visual-shader-with-different-textures/6

