-
-
Notifications
You must be signed in to change notification settings - Fork 97
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
Add flip/mirror option to GridMap #5883
Comments
I was about to say "Uhm, actually, this is a duplicate of #5158" but this is GridMap. I feel like this feature would suit GridMap even more than TileMap. |
One issue with mirrored tiles is that the texture pattern will be flipped. This is sometimes what you want, but not always. |
@Calinou can you clarify why you feel that is an "issue?" I can't think of a use case for the ability to mirror a 3d model without also mirroring its UV information, the end result being that UV mapping is still correctly aligned with the model. |
If you have a tile with a cobblestone texture for instance, you may not want the cobblestone texture to appear flipped on flipped variants of the same tile. That is, if you're using tile flipping to reduce the number of unique variations you need to create manually. This is not a problem in 100% of cases, but it's a potential issue to keep in mind. |
It seems like World Triplanar Mapping would be the solution for models whose texture map is desired to display independent of mesh rotation/scale. I would expect mirrored meshlib objects with Triplanar mapping to not mirror the texture, in this proposal's implementation. |
Indeed. Not directly related to this but I'd also like to be able to have child nodes for/per tiles when creating GridMaps. Could be useful for having Position 3D nodes as spawn points for procedural generation and/or pseudo randomly picked and placed objects. Could also then include such a child of the tile for a floor mesh that could be placed at the location of that Position3D node without taking the rest of it's transform into account. In fairness though there's already a kind of a way of achieving all of that. |
This proposal is more about enhancing the current functionality of gridmaps, however there is a larger discussion to be had about how gridmap could be used as the basis for a more general-purpose level design tool. You might be interested in the discussion here: #3518 (comment) |
Describe the project you are working on
3d sidecroller (arguably 2.5d) using gridmap to build levels composed of 3d tiles, used analogously to a 2d tilemap.
Describe the problem or limitation you are having in your project
To create something as simple as a tileable 2d box, a mesh library of 9 unique models is necessary. For more complex tilesets (i.e. including interior corners, holes, slopes) the number of models quickly becomes hard to parse in the gridmap tile selection panel, making 'drawing' complex shapes unintuitive. Having the option to mirror while 'drawing' the gridmap drastically reduces the number of necessary unique models to achieve similar results to 2d tilemaps.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Add mirroring options to the gridmap UI in conjunction with the current rotation options.
Implementation was previously prototyped by @Varicus and @Xenoamor back in 2019, code examples, prototypes, and discussion are in the link below.
godotengine/godot#31340 (comment)
If this enhancement will not be used often, can it be worked around with a few lines of script?
It would probably be used with more frequency than the current 'rotate' options, since rotated tiles will show seams in ways that mirrored tiles will not.
Is there a reason why this should be core and not an add-on in the asset library?
It should be a core function of Gridmap alongside tile rotation
The text was updated successfully, but these errors were encountered: