So, I have a use case where I want to configure a single sprite_frames resource, because sometimes in menus or cutscenes I want to use it in 2D on a sprite2D.
But I also am trying to figure out how I can apply the textures to a quad mesh, because for my 2.5D battle interface (it's a grid based tactics game), I can get it to render nicer with smoother edge blending if it is on a quadmesh instead of a sprite3D.
I tried the sprite3D approach, even going that route for my purposes I am using a shader to replace some colors in the original texture image (for instance where the equipment should be gripped by the hand, it replaces a bright green pixel with a skin color parameter).
On the sprite3D, the shader works perfectly if I use set_s...
So, I have a use case where I want to configure a single sprite_frames resource, because sometimes in menus or cutscenes I want to use it in 2D on a sprite2D.
But I also am trying to figure out how I can apply the textures to a quad mesh, because for my 2.5D battle interface (it's a grid based tactics game), I can get it to render nicer with smoother edge blending if it is on a quadmesh instead of a sprite3D.
I tried the sprite3D approach, even going that route for my purposes I am using a shader to replace some colors in the original texture image (for instance where the equipment should be gripped by the hand, it replaces a bright green pixel with a skin color parameter).
On the sprite3D, the shader works perfectly if I use set_shader_parameter("sprite_texture", sprite_frames.get_frame_texture(animation_name, animation_frame).
But on a MeshInstance3D with a quadmesh, doing the exact same thing sets the texture to be the entire sprite sheet.
It seems that get_frame_texture() returns the entire sprite sheet texture, with some metadata which only Sprite2D and Sprite3D know how to use? But in that case, how does a shader on a Sprite3D know how to use that metadata, when it's overriding the actual sprite3D's drawing of the texture?
Why would the same shader on a quad mesh vs. a sprite3D show different things when the parameter is set to the exact same value from get_frame_texture()?