💡☀️Working on the pixel-art cell shading for #BoneToPix & The Bleak Divine

A short thread on how I got lighting data to work on *art* pixels instead of *screen* pixels 🖥️

👇🧵 #MadeWithUnity #GameDev #PixelArt
Fragment shaders work on screen pixels, not texture pixels. In pixel-art styles 1 pixel in your art is going to be rendered over a bunch of screen pixels

That means you'll have different data for different parts of a texture pixel-> so you won't get the neat per-art-pixel look
The solution is to snap our data to an art pixel-grid.

We're gonna need to align both vertex positions and fragment positions to our pixel grid.

First, the vertex snapping, in the vert shader:
Next we snap individual fragment positions, so everything in the same grid square gets the same value.
Lastly, make sure in your texture import settings your Mesh Type is set to 'Full Rect'.
With 'Tight' Mesh Type the art pixels aren't going to be grid-aligned in the generated mesh, so you'll get the wrong values.
Now that you've got shared values per fragment you can do any sort of lighting shaders without breaking the pixel-art grid!

I'll probably be releasing my Pixel-light shader together with #BoneToPix in February.

Update, how to make it work with object rotation as well:

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with George B. Green - making The Bleak Divine

George B. Green - making The Bleak Divine Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(