Is applying texture instances to every face of a mesh a viable alternative to TextureID?

So I’m playing around with vehicle skins for my new game and I really like the consistent tile size property that Texture Instances bring, but I’m unsure of whether this would be a viable alternative to using the “TextureID” property of the vehicle’s body mesh part.

My primary concern here is performance and whether using several Texture Instances will be significantly more expensive than the mesh TextureID, obviously more instances = slightly more memory, but I’m more concerned about significant swings in performance due to additional processing or render time.

If anyone has any kind of insight or experience with Texture Instances and what effects they have on performance, drop a reply below!

1 Like

Having like 5 texture instances for every vehicle might hit the performance a little bit. It’s actually the only way if you want to have the tile size property

A texture will add a draw call and if you have like 20 players, every player got one car with 5 textures it would be 100 draw calls just from vehicle textures which is quite a lot, to be honest.

I got a scene with 200+ meshes (some models got the same mesh) and it got around 50 draw calls

update: It also depends on what texture you use and how many got it
Let’s say we got 2 parts

if the second part would have the first part textures then the game will just draw the first one and use it for the second one as well reducing the draw calls by 2 times
Roblox got an instancing system to memorize how the texture will be projected on a part and I believe if the same texture is projected on another mesh it would add another draw call or if the same projected mesh got a different texture

2 Likes

Thanks for the in-depth reply, is there any built-in UI to monitor draw calls in game?

Yes there is one
View/Stats/Render

there are also other tools there to help you optimize your game

1 Like