David Holland's Avatar

David Holland

@davidhol.land.bsky.social

๐ŸŽฌ http://youtube.com/@denovodavid ๐ŸŒ http://davidhol.land ๐Ÿ“ Melbourne, Australia

91 Followers  |  51 Following  |  21 Posts  |  Joined: 06.10.2023  |  1.9591

Latest posts by davidhol.land on Bluesky

I don't know how Unity does rendering these days, but Godot uses forward rendering, so I just put my custom outline material on each object and it works. In the Water section of the article I have a paragraph about the depth/normals pre-pass, as that information is required for the outlines.

04.08.2025 22:11 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

You can either bake that information into the multimesh instance data or sample it from a texture. For my tree leaves, I sample positions/normals on a mesh and pass that into the multimesh. If you're doing procedural terrain grass, let's hope you have a heightmap to sample from.

24.07.2025 22:47 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

No problem. You'll need to make sure all your inputs to your lighting model are the same for grass and ground. I set LIGHT_VERTEX equal to the model origin (MODELVIEW_MATRIX[3].xyz) and NORMAL equal to ground/surface normal.

24.07.2025 22:12 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image Post image

@davidhol.land vi just wanted to thank you for the guide on the godrays, i managed to get it working! Thank you so much

13.07.2025 16:25 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Thanks, I'm seeing how far I can get without engines or libraries. I'll still use Godot for prototypes and game jams.

21.06.2025 02:11 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

The game from scratch is going well :)
I got vulkan & d3d12 renderers, code hot-reload, shader hot-reload, single draw call ui; and stable, frame-rate independent update loop. Going to have a stab at audio next. #odinlang

14.06.2025 13:06 โ€” ๐Ÿ‘ 7    ๐Ÿ” 1    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Thanks, friend. Specifically for this style, it can be hard to add a sense of depth to the scene without it looking too 3D, which is why I spent much effort on the god-rays. Also, smooth shading can look odd, but sharp shadows can cause flickering, due to the low resolution; it's a balancing act.

09.06.2025 10:04 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Man I've ran into this many times, following a bunch of overloaded classes/methods just to find what the "default" values of a struct are.

05.06.2025 23:45 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

Perhaps this crudely drawn diagram may help(?)

25.05.2025 05:54 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

a point on the plane; I check the shadow attenuation at that point (using a custom Godot shader language function), coloring the fragment if lit; then ray march a few more times using a defined gap to create the layers of light.

25.05.2025 05:54 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I find it difficult to explain, but I'll give it a shot. I have a post-processing shader that ray marches into the scene; there is a mathematically defined plane in world space that is parallel to the sun direction; in view space, using the x/y coords of the current fragment, I solve for z to get...

25.05.2025 05:54 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Post image

Iโ€™m reading The Art of Game Design and this is the best lens illustration so far.

17.05.2025 08:43 โ€” ๐Ÿ‘ 4    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

โ€ฆ the distance from the cell centre, used to animate the lines length.

21.04.2025 00:41 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

The red and green channels encode a vector pointing away from the centre of each cell. That way, my shader can extract the horizontal direction relative to the view, even when rotated. The blue channel is random per cell, used for timing offset of animation. Alpha channel isโ€ฆ

21.04.2025 00:39 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Thanks! I'm not totally sure, just building out mechanics that I like. Something single player, with minimal systems; a little adventure :)

25.03.2025 22:29 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
3D Pixel Art Rendering What I've learned making 3D pixel art in Godot and beyond.

I've added Open Graph meta tags to my website so now link cards should look nice :)

22.11.2024 07:51 โ€” ๐Ÿ‘ 17    ๐Ÿ” 5    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 0
3D Pixel Art Rendering | David Holland

www.davidhol.land/articles/3d-...

24.09.2024 03:31 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Video thumbnail

yeah i'm still doing this sometimes #pixelart #shaders #godot #gamedev

24.09.2024 03:30 โ€” ๐Ÿ‘ 12    ๐Ÿ” 2    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

I'M VERY SORRY ๐Ÿ˜ญ

01.11.2023 09:49 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
How my 3D PIXEL ART Camera Works
some godot things :)Source repository: https://git.sr.ht/~denovodavid/3d-pixel-art-in-godotNext-Gen Pixel Art - Astortion Devlog #20: https://youtu.be/jguyR4... How my 3D PIXEL ART Camera Works

I made this video just for you under the guise that you were wondering how a 3D pixel art camera works :)

01.11.2023 09:44 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Playdate console

Playdate console

Iโ€™m ready to crank #playdate #gamedev

14.10.2023 03:52 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
3d pixel art render of a sword on a rock surrounded by shallow water

3d pixel art render of a sword on a rock surrounded by shallow water

hello bsky :)
I like water #pixelart #shaders #godot #gamedev

08.10.2023 06:29 โ€” ๐Ÿ‘ 23    ๐Ÿ” 1    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

@davidhol.land is following 20 prominent accounts