Fresh Moves

Fresh Moves

500k Downloads

Possible pixel space saving method

Koguri3108 opened this issue ยท 3 comments

commented

I was reading through the issues on this pages and came across a closed issue where someone was talking about shorter eyelashes and how it could be possible to separate the eyelash geometry into two cubes instead of one to fix a visual glitch with that method.

So then I had the idea that by splitting all the eyelids, eye-whites and even eyebrows up into individual cubes for every pixel, it would be possible to get rid of the pixel positions that take up the same space as other pixels of the same type!

commented

For example, if you were to rearrange where everything goes,
These could be pixel positions for all current 1 tall eyelids:
image
2 tall eyelids:
image
3 tall eyelids:
image
And eye-whites:
image

Depending on how analogous the pupils of the different eye types move you could save even more pixels by reusing the 1 tall pupils for parts of the 2 tall pupils for example.

All of this would naturally allow for much more freedom to add more eye variants, or in this case, pupil movement variants, haha.

I am aware however, that adding a bunch of additional cube models could possibly impact performance depending on how this is rendered, so if it does, use sparingly I suppose.

commented

Okay I did some testing and I noticed that the eye-whites actually expand upwards a bit when looking up so if someone uses different hues in their eye-whites this could potentially lead to visual artifacting, like z fighting, so it may not be a great solution for the eye-whites, but I think it could definitely help with space saving regarding the eyelids, especially when it comes to various kinds of simple 1-whide eyes, and perhaps even eye-whites of the same position and height but different width like the enderman eyes + normal 2x1 eyes.

Edit: After looking at the models and the code I think I have an idea on how to make the eye-whites tileable.
Make all the different pixel positions' scaling static and add a second cube model behind with slightly shorter z-width which can act as the part of the eye that widens when looking up, with it being slightly shorter it can get covered by static pixels above it to avoid z-fighting.

commented

Okay I did some more testing and it seems that the eye-whites also shrink when "squinting" even though the eyelids should move in to cover the eye-whites anyways, this seems a bit redundant to me and has messed with me trying to cobble together non supported eye shapes by combining multiple supported ones.
Imo it would be better if they didn't do this.

Edit: I looked at the model structure and the animation code and I think if the squinting eyelids get extended to the same size as the blinking eyelids this should be possible.