Skip to content

Shell Texturing

Faking fur in Unity URP with shell texturing and HLSL geometry shaders.

Any noise texture can define the fur strands and pattern.
Toying with blend options gave this weird pattern. Not sure why, but noted for when I need buggy looking textures!

details

Trying out new stuff again, this time Shell Texturing: a way to fake fur in games (with problems like overdraw and not working from every angle, but we don’t care about those right now).

I saw Acerola’s video and wanted to try it. That video, the blog by hecomi and the video by NMG helped me a lot.

learnt

  • how shell texturing works, duh
  • writing HLSL shaders for Unity URP, including geometry shaders
  • hands-on graphics knowledge: shader stages, blending, passes, wavefronts
  • lighting and ShadowCaster passes

Problems: the geometry shader took two tries and two different tutorials; porting it to ShaderGraph is a no-go with geometry shaders; and I scrapped the fur emission because I couldn’t make it look good.