-
Notifications
You must be signed in to change notification settings - Fork 16
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
[Compatibility] Dynamic shell texturing doesn't work with Iris #25
Comments
Does it happen with every shader you're using? |
I tested it with both Complementary Shaders and Sildur's Vibrant Shaders Extreme, and it occurred with both of those. |
Got it. Will look into this when the war ends |
It's better now... kind of. At least you can see that something's inside. Sadly, there's just no way of "combining" two shader programs because of the way they work, therefore it's the best outcome I can provide you with at the moment. Leaving this issue open, because it's not really resolved and maybe I will come up with some hack, but no promises |
Thanks for working on it. I've never specifically worked with fabric mods before, so I'm not sure how relevant it would be, but I know there's a mod called "indium" which allows sodium and thus iris to be compatible with the "fabric rendering api". I know there's a few mods that use that for complicated models, but I have absolutely no idea if it would be relevant here, and even if it is I'm sure it would probably be a lot of work to implement, but maybe it's useful. Thanks again. |
I know about all these, don't worry :) The issue is not really about one rendering api being incompatible with another, it's much worse - the concepts themselves cannot coexist with each other, therefore implementations of those concepts doesn't matter. I use core shaders to render unconventional things like shell's building blocks or partially colored shells. Core shaders are part of the vanilla rendering pipeline nowadays, so this approach is compatible with almost all mods, except mods that provide shaders themselves, because it is physically impossible to combine two shaders automatically (in order to make things simple, you can treat a shader as a function that takes vertices and other stuff and returns actual colors that should be rendered - Therefore, the only possible solution is to completely scrap current rendering implementation out and implement it in some other way, at least when Iris is loaded. |
Ah okay, I get it. Thanks again for your work on it. |
Notes to self:
|
Sadly, it's physically impossible to make dynamic shell texturing (the last phase of the shell building process) work with Iris the same way as it does now. The best solution I can think of is render a player skin and then render a white overlay over it where it's needed - this way we lose smooth "subpixel" rendering, but "incremental" texturing is still better than nothing. Unfortunately, I was unable to figure out a way to bring my idea to life, because nowadays when you try to do something with OpenGL the answer is always "just use shaders" (which is, as said before, not possible with Iris onboard), and older and clumsier approaches just do not exist anymore, so I'm stuck with seemingly easy task of dynamically merging two textures because of all the limitations. Therefore, for this part Iris players will see a fully rendered skin from start. It's better than seeing nothing, right? I'm closing the issue at the moment, and moving it to the For anyone who has a desire to help and deep knowledge of Minecraft rendering pipeline and how Iris affects it, please, refer to this code: sync-fabric/src/main/java/dev/kir/sync/compat/mixin/iris/ShellEntityRendererMixin.java Lines 30 to 54 in 78cd44c
|
What happened?
When using a shader with Iris, the white shell building animation in the shell constructor is invisible.
It appears if the shader is disabled in the Iris settings.
.
Version
3.1
Minecraft Version
1.18.1
Fabric API Version
0.46.6+1.18
Installation Source
CurseForge
Logs
Other Mods
Additional Information
No response
The text was updated successfully, but these errors were encountered: