This patch is a work in progress.
I am currently working on dividing this up into smaller diffs.
I will take what I learn from feedback on the smaller diffs and apply it here after I make progress on them.
Currently I am prioritizing the following patches and need feedback there:
| Feature | Patch |
| Cycles Texture Sampler Refactor | D14295 |
| Geometry Nodes Texture Sampler Refactor | D14304 |
| EEVEE Sampler Refactor | D14366 |
Here are some related patches that make minor non functional changes:
| Minor Feature | Patch |
| Cleanup: Replace shader image defines with image texture enums | D14297 |
| Node UI: Updated descriptions for a few node texture settings | D14308 |
The goal of this patch is to enable the user to set the image extension settings independently for the X/U and Y/V axes.
This patch also helps refactor certain parts of the sampler code for EEVEE and Cycles to facilitate more features in the future.
Specifically, I would like to add mirrored repeat to the list of extension settings, but this patch is already getting big.
Demo:
On top of the regular worries about messing things up, I have some additional doubts:
I have not and cannot test the Metal and HIP implementations.
I am unsure about how to handle the versioning of animated values.
Adjustments need to be made to ensure support for animating the image extension settings.
I have made changes to the way samplers are managed that might interfere with the EEVEE Rewrite branch.