If it’s possible I think it’d be really neat to have a custom material i.e an asset to a texture you’ve uploaded to use as the material for terrain painting. Or a mask that can be painted over existing terrain smoothly.
Here’s an example of what it could look like(painting over the default grass)
While this would be totally awesome and I would love to see this, my one concern is how difficult would it be to create a texture that works correctly?
I might be wrong but I think materials network efficiently because there aren’t a lot of them (it’s smaller data per voxel).
Something I think would be cool is swapping the default textures for one you made. That way materials would keep the same “shape” (i.e. bumpy rock etc).
Each terrain texture is stored locally on your computer. When the terrain data is networked it just sends the ID of the texture which is only a few bits.
If it had to send the entire texture, it would be a lot more data.
If users were to say upload their own texture, couldn’t the client cache it/load it when the game starts up and just fetch it as it does with the textures now?
Smooth Terrain is beautiful, but I think if we were able to have some freedom in deciding what textures we could paint on to the terrain, it’d open up a whole new realm of creative possibilities.
I think one feasible way in doing this(from what I’ve seen, correct me if I’m wrong since I’m still oblivious to a lot of the inner workings), is allowing the user to create their own dds files etc. to replace the current ones.
If we were able to upload our own as an option with the same file size thresholds and what not, it could be fetched from the web and cached in a temp folder or something?
Would it be? I thought the issue was the size of a voxel would be increased. We already send plenty of textures, perhaps not at as high of a resolution but it wouldn’t be huge I wouldn’t think?
Assuming you only have something like 4 bits unsigned, the largest number you can make is 15. So if you introduce new materials you now need to use a larger data type to store the material id. I might be wrong but that is my best guess.