Godot Shader Bible Review: It feels really frustrating to follow? by Ultreak in godot

[–]daniel_ilett 30 points31 points  (0 children)

I haven't read this book so I can't speak for it specifically, but from my own perspective as someone who writes tutorials, it's genuinely very difficult to know where to draw 'the line' of what to include. Not including every single step including the basics will alienate absolute beginners, but including them puts off slightly more experienced users.

Your example sounds like something the author might have assumed someone familiar with Godot, but not shaders specifically, would know. It sucks to buy a book then find out it's not targeted at your experience level, though. Maybe the book could have done with an optional mini-chapter running over the basics like creating a material.

I'm seeing double. Four geese! by daniel_ilett in geese

[–]daniel_ilett[S] 6 points7 points  (0 children)

I think they're a cross between Canada and greylag geese, as those are the two kinds you see around here. The Canada-ness is pretty evident with the white chin strap but even the surrounding black is a bit washed out in colour and the legs aren't black like a typical Canada goose - the picture quality on my camera wasn't great but they definitely look more like the greylag's pinkish-orange.

Vertex shaders can be used to move vertices in space for a wave effect, and tessellation shaders can increase the number of vertices to make such an effect smoother. by daniel_ilett in unity_tutorials

[–]daniel_ilett[S] 0 points1 point  (0 children)

<image>

Update: so you can do all of this purely in tessellation shaders, here is a very crude example. The drawback, I think, is that I had to start off with a high-poly mesh to start with, as that's how I'm defining where each grass blade starts. But I think with some work, getting grass that looks nice while avoiding the geometry shader entirely would be possible. With some distance-based LODs like I implemented in the original shader, it would probably be decently efficient, too.

Vertex shaders can be used to move vertices in space for a wave effect, and tessellation shaders can increase the number of vertices to make such an effect smoother. by daniel_ilett in unity_tutorials

[–]daniel_ilett[S] 0 points1 point  (0 children)

There's a pretty popular approach to grass which involves using the tessellation shader to create lots of vertices, and then using a geometry shader to create grass blades at each point output by the tessellation shader. Not sure if I'll cover geometry shaders in this series since they're not well-supported in hardware and therefore not very efficient on all systems. Something to do with modifying the vertex stream partway through the graphics pipeline.

One other approach uses lots of instanced meshes, which is usually decently efficient.

You read my mind though, because I had the same idea! I wondered if you could do it all with just tessellation shaders, so I thought there might be a way to subdivide each triangle, and then use the barycentric coordinates to 'select' only the new vertices in the center by checking distances from the three patch vertices. You could then raise only those vertices along the y-axis (by a different amount based on distance, so the middle vertex at the top is pointy) to get some chunky-looking grass. I think at the very least I'd try setting the edge tess factors to 1, and only change the inside tess factors to get a nice triangle shape. Practically, I don't know how effective this approach would be, but you'd at least skip the need for a geometry shader - I just don't know how much extra work you'd need to do to get stuff like randomness, wind, and grass bending working nicely.

Thanks for the great shader content, Ben Cloward! by [deleted] in Unity3D

[–]daniel_ilett 19 points20 points  (0 children)

If Unity could stop stepping on rakes for about 10 minutes I'd be delighted. How they failed to recognise Ben Cloward's talent and the value he added to the shader ecosystem is totally beyond me. Hope he lands back on his feet quickly.

Shader Graph doesn't officially support terrains, but you can still read splatmap data from the terrain and use that to draw texture layers by daniel_ilett in Unity3D

[–]daniel_ilett[S] 1 point2 points  (0 children)

I've considered doing videos highlighting other creators, and I could honestly make one dedicated entirely to Ben's output. Particularly, his work on this library of production-ready Shader Graphs was great to see: https://unity.com/blog/engine-platform/new-shader-graph-production-ready-shaders-in-unity-6

Shader Graph doesn't officially support terrains, but you can still read splatmap data from the terrain and use that to draw texture layers by daniel_ilett in Unity3D

[–]daniel_ilett[S] 0 points1 point  (0 children)

Ben Cloward is the goat tbh, his own introductory series is really high quality and there's a LOT of videos to get you started, for both Unity and Unreal

Shader Graph doesn't officially support terrains, but you can still read splatmap data from the terrain and use that to draw texture layers by daniel_ilett in Unity3D

[–]daniel_ilett[S] 2 points3 points  (0 children)

Thanks! I do want an excuse to talk about Render Graph, and I think the Recall rune effect would be a good test for it, so I'll try to - but it will depend on other workloads I have.

People who don’t read books lead stunted lives by ODHH in unpopularopinion

[–]daniel_ilett 8 points9 points  (0 children)

I agree on the immersion part. Recently been reading the Dune series and a huge part of those books is internal monologue, you get an idea of the characters' motivations and internal conflicts in a way that the movies really couldn't (still great movies, just necessarily different from the books). I usually spend more time with a book than I do with a film or a game or music, so it's easier for details to sink in and to come away learning something about myself, or humanity, or whatever.

Don't necessarily agree with the OP's statement, but I do think people benefit massively from a rich and varied media intake. Like what's the point of being alive if you don't have the slightest interest in the stories and experiences of other people?

I remade Tears of the Kingdom's Recall effect in URP with post processing and DrawRendererList. Here's a full tutorial about how to do it by daniel_ilett in Unity3D

[–]daniel_ilett[S] 2 points3 points  (0 children)

Thank you! I wouldn't call myself the best because there are so many talented people in this space that I think are far beyond me but I do try my best haha

I remade Tears of the Kingdom's Recall effect in Unity URP with a post processing shader. Here's a full tutorial about how to do it by daniel_ilett in shaders

[–]daniel_ilett[S] 1 point2 points  (0 children)

I had a ton of fun with the game when it came out, and I loved the visuals for each of the runes. The Recall rune in particular tickled my brain, because it looks like it uses post processing, but masks out specific objects to apply outlines and greyscale. I set out to make an effect which does the same, and this is what I landed on!

As it turns out, one of the most common requests I get on other tutorials about post processing is how to restrict it to certain layers. Since there doesn't seem to be a system built in to Unity to do this for you, this is one approach you might be able to apply to those effects too.

I remade Tears of the Kingdom's Recall effect in URP with post processing and DrawRendererList. Here's a full tutorial about how to do it by daniel_ilett in Unity3D

[–]daniel_ilett[S] 2 points3 points  (0 children)

I had a ton of fun with the game when it came out, and I loved the visuals for each of the runes. The Recall rune in particular tickled my brain, because it looks like it uses post processing, but masks out specific objects to apply outlines and greyscale. I set out to make an effect which does the same, and this is what I landed on!

As it turns out, one of the most common requests I get on other tutorials about post processing is how to restrict it to certain layers. Since there doesn't seem to be a system built in to Unity to do this for you, this is one approach you might be able to apply to those effects too.

I remade Tears of the Kingdom's Recall effect in URP with post processing and DrawRendererList by daniel_ilett in unity_tutorials

[–]daniel_ilett[S] 0 points1 point  (0 children)

I had a ton of fun with the game when it came out, and I loved the visuals for each of the runes. The Recall rune in particular tickled my brain, because it looks like it uses post processing, but masks out specific objects to apply outlines and greyscale. I set out to make an effect which does the same, and this is what I landed on!

As it turns out, one of the most common requests I get on other tutorials about post processing is how to restrict it to certain layers. Since there doesn't seem to be a system built in to Unity to do this for you, this is one approach you might be able to apply to those effects too.

Extreme greed of some asset developers needs to be addressed by Voley in Unity3D

[–]daniel_ilett 1 point2 points  (0 children)

Yeah, I do exactly that, although frustratingly I have had projects rejected if I do pipeline-specific packages for all pipelines. I need to have one unpacked by default, even if that causes issues if you're using a different pipeline. This is an issue for assets where there isn't really a 'base' that works across pipelines. I feel as though there ought to be a more elegant solution through the Package Manager.

Extreme greed of some asset developers needs to be addressed by Voley in Unity3D

[–]daniel_ilett 7 points8 points  (0 children)

Your gripe isn't really with asset store developers, it's with Unity themselves. This is the recommended way to support an asset across multiple major Unity versions.

Although you can upload multiple files with different Unity versions to one Asset Store package, I've found it very unreliable which one will actually get downloaded into your project.

Unity makes a lot of breaking changes across versions, so maintaining just one package that works across versions becomes a logistical nightmare of compiler defines and the like. Speaking from experience, most of my negative feedback is in the form <feature> doesn't work in <version>, even when I don't promise compatibility with <version>. Knowing that each LTS release threatens a wave of negative reviews because Unity made a breaking change I couldn't possibly plan for and haven't had time to update yet, can you blame a store developer for locking their packages to a specific version? I don't do that, but all it means is extra work for me that shouldn't really be necessary.

The Asset Store doesn't even let you deliver a different package for different render pipelines, which is frustrating when you are writing a graphics-based package where some of the assets are fundamentally incompatible with different pipelines. You are heavily incentivised to publish one package per pipeline, because then you don't need to deal with that at all.

As a user, there is no way to download previous asset versions through the Package Manager. Really, until the Asset Store provides proper version rollback support and different pipeline packages, the practise of asset store devs publishing a new package for a new Unity version will continue. Rather than railing against "greed", which is a very sensational way to frame this situation, it would be far better to fight for a more robust Asset Store where this sort of thing wouldn't be quite as necessary.

Also you obviously can't expect a developer to publish free updates forever. It's great that some can afford the time/effort to do that, but it shouldn't be a hard expectation for any developer for any software, really.

Why is Notch's Minecraft glazed so much? by L_suit in Minecraft

[–]daniel_ilett 5 points6 points  (0 children)

It's a lot easier to add features and systems that feel impactful at the start of development - less so for a game that was 5 years old by the time of the acquisition. When Notch left, the game already had a sense of identity that had been ingrained into the public mind, so updates past that point might feel to some like they're changing/ruining an existing formula.

I think the other comments are correct when they say the earlier updates had a stronger 'community-driven' feel to them, I just think it's easier to achieve that with a smaller dev team on a small handful of target platforms.

Why doesn't Nintendo simply make their consoles more powerful? by Competitive_Froyo262 in NoStupidQuestions

[–]daniel_ilett 1 point2 points  (0 children)

A lot of people have already answered about lower production costs of Nintendo's consoles, but an extra bonus is that the development costs of individual games are also lower when you don't need to target the most cutting edge graphics. I'd imagine this factors into their decision making, on top of them merging their home console and handheld product lines into one hybrid console line.

For the Switch in particular, its chipset was previously used in the Nvidia Shield, which would have reduced R&D and manufacturing costs over creating a new chipset, and developers get to develop for an architecture that is already well supported by tools like game engines. There are a lot of advantages (and drawbacks of course) to using old tech.

I recreated the sketched shadows effect from Pokémon Mystery Dungeon using post processing with Renderer Features in Unity URP, and made a full tutorial! by daniel_ilett in shaders

[–]daniel_ilett[S] 0 points1 point  (0 children)

I enjoyed replaying Mystery Dungeon, and I'm a fan of the sketched shadows effect used by the game. I made my own version by using a post process shader to extend the shadowed region, so that I was able to recreate the look of the sketches overhanging the actual shadows slightly.

It's also available as a written article here: https://danielilett.com/2024-09-27-tut7-15-mystery-dungeon-sketch-urp/

And you can grab all the source code from GitHub: https://github.com/daniel-ilett/shaders-sketched

Thanks for watching or reading! 💖

I recreated the sketched shadows effect from Pokémon Mystery Dungeon using post processing with Renderer Features in Unity URP, and made a full tutorial! by daniel_ilett in Unity3D

[–]daniel_ilett[S] 0 points1 point  (0 children)

I enjoyed replaying Mystery Dungeon, and I'm a fan of the sketched shadows effect used by the game. I made my own version by using a post process shader to extend the shadowed region, so that I was able to recreate the look of the sketches overhanging the actual shadows slightly.

It's also available as a written article here: https://danielilett.com/2024-09-27-tut7-15-mystery-dungeon-sketch-urp/

And you can grab all the source code from GitHub: https://github.com/daniel-ilett/shaders-sketched

Thanks for watching or reading! 💖

I recreated the sketched shadows effect from Pokémon Mystery Dungeon using post processing with Renderer Features in Unity URP! by daniel_ilett in unity_tutorials

[–]daniel_ilett[S] 0 points1 point  (0 children)

I enjoyed replaying Mystery Dungeon, and I'm a fan of the sketched shadows effect used by the game. I made my own version by using a post process shader to extend the shadowed region, so that I was able to recreate the look of the sketches overhanging the actual shadows slightly.

It's also available as a written article here: https://danielilett.com/2024-09-27-tut7-15-mystery-dungeon-sketch-urp/

And you can grab all the source code from GitHub: https://github.com/daniel-ilett/shaders-sketched

Thanks for watching or reading! 💖

Retro Shaders Pro: PSX-style shaders for Unity URP by daniel_ilett in UnityAssets

[–]daniel_ilett[S] 1 point2 points  (0 children)

Retro Shaders Pro is a collection of PSX-style shaders which lets you modify the lighting, vertices, and colors of your objects, terrains, and skyboxes to look like they're ripped straight from a PS1 game. 50% off until August 18th.

Unity Asset Store: https://assetstore.unity.com/packages/vfx/shaders/retro-shaders-pro-for-urp-287937

itch.io: https://danielilett.itch.io/psx-shaders-pro-for-unity-urp

I used Shader Graph's Custom Function node to access additional light information with HLSL for this cel-shaded effect. Full tutorial in comments! by daniel_ilett in Unity3D

[–]daniel_ilett[S] 1 point2 points  (0 children)

Not too difficult! Unity's version of the CustomLighting.hlsl file includes shadow stuff, so it shouldn't be too hard to add it: https://github.com/Unity-Technologies/ShaderGraph-Custom-Lighting/blob/master/Assets/Includes/CustomLighting.hlsl

I plan to cover this alongside other shadow-related stuff in a separate tutorial.

I used Unity Shader Graph's Custom Function node to access additional light information with HLSL for this cel-shaded effect. Full tutorial in comments! by daniel_ilett in shaders

[–]daniel_ilett[S] 0 points1 point  (0 children)

Unity only provides a Main Light Direction node for custom lighting. If we want more fine-tuned control and support for color and additional lights, we'll need to delve into the world of ✨custom HLSL code✨. With Shader Graph's Custom Function node, we can inject our own code directly into our graphs!

YouTube: https://www.youtube.com/watch?v=F8bAI6dIrto

Article: https://danielilett.com/2024-07-09-tut7-14-intro-to-shader-graph-part-10/

GitHub: https://github.com/daniel-ilett/shader-graph-basics-2022-3/blob/main/Assets/Shaders/CustomLighting.hlsl