this post was submitted on 28 Sep 2026
25 points (100.0% liked)

Godot

7924 readers
2 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 3 years ago
MODERATORS
 

Hello, everyone! Let’s again create a spatial shader for a 3D object. This tutorial is special because for the first time I will touch on a function that I have completely ignored so far. It is the function called light, and I will show how we can work with it.

top 4 comments
sorted by: hot top controversial new old
[–] jaydom28@lemmy.today 1 points 3 days ago (1 children)

I started learning Godot about 2 weeks ago. I feel an urge to save all these vids for when I need them haha

[–] FencerDevLog@programming.dev 2 points 2 days ago

Good luck. 😎

[–] insomniac_lemon@lemmy.cafe 1 points 3 days ago* (last edited 3 days ago) (1 children)

Youtube encoding doesn't help, but I'm not sure about the "fire" effect here.

It reminds me of when I turned Minecraft's end skybox into a purple-ish Moiré pattern (no shader needed, just a checkerboard texture viewed at a distance+angle).



Back to Godot, I made a toon-like light shader with the step function being the important bit*. It is probably good enough to use, though it's a bit frustrating how I can't seem to keep input colors accurate. Ambient color works acceptably, though I somewhat wish I could control it more, also seeing issues with light range/multiple lights.

I also haven't found a good way to handle light color. I can ignore it or mix color (can look ugly). It's probably possible with dot() but I can't seem to do it right.

Using HSV is probably needed here, although to me it seems like an absolute mess without it being built-in.

* unshaded+1 shadow w/ambient with DIFFUSE_LIGHT = , 5(?) shades with DIFFUSE_LIGHT += but it's also too bright

[–] FencerDevLog@programming.dev 1 points 2 days ago

Yeah, I don't say it's the best possible simulation. It could be a lot better. The point was to demonstrate the usage of the light() function, mostly.