Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved texture filling #2697

Draft
wants to merge 13 commits into
base: dev
Choose a base branch
from

Conversation

douira
Copy link
Collaborator

@douira douira commented Aug 21, 2024

Work items:

  • Implement better filling algorithm for transparent pixels
  • Handle NPOT textures by expanding them to the next POT
  • Rewrite atlas stitching to take advantage of POT-sized textures
  • Deal with textures smaller than 2^mipLevel (even if they are POT) which otherwise limit the mip level to log2(size) by either upscaling or doing something else

Prerequisite: #2666

…t and not performant. Mods should instead use FRAPI or Forge APIs to assign multiple materials to the quads in their models such that each quad only renders as the most demanding material it requires.
change injection of both mixins to not conflict by using WrapOperation,
change the downgrade method to use passes, but then also add code to change the material bits' alpha cutoff parameter
remove ternary that gives different (but functionally identical) alpha cutoff parameters
…ad's UV coordinates and by sanity checking the quad against the sprite before downgrading
# Conflicts:
#	common/src/main/java/net/caffeinemc/mods/sodium/client/render/chunk/compile/pipeline/BlockRenderer.java
address review comments in the sprite contents mixin
… the average color but instead fill in transparent pixels with the color of the closest non-transparent pixel
@djmrFunnyMan
Copy link

If I understand correctly, this won't fix low-POT textures dropping mip levels (for example a single 4x4 texture will reduce all mip levels to 2)
Could this also be adressed? (by resizing to 16x16 or reusing mip levels)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants