Hi, I am just wondering whether there is a way to make texture sheets in blender, since by using them it could be possible to reduce notably the number of drawcalls. I have tried to find some information on the web, but nothing yet…
Thanks in advance
Juan
By texture sheet I’m assuming you mean using the same texture for multiple objects? Yes it is possible to do in Blender but I don’t know of any scripts that automate this. You could ask at the Blender Artists forum, someone might know there or be kind enough to assist you in writing a script that would do it.
The next question is, is there any benefit to doing this in Unity? I’ve never bothered in the past, if I recall correctly, the topic of whether it is faster to use many small or one big texture came up before and I believe the answer Joachim gave was that it really didn’t matter.
Just pulling this off my dusty memory banks which, thanks to age and alcohol, can be faulty.
Thanks bigkahuna for the quick response.
Yes, I meant the kind of sheet composed by different textures and that can be used to share the same material between different objects.
From Joachim’s optimization docs I understood that it can be a fairly good technique to reduce drawcalls, as long as the objects are sufficiently close to each other and combined.
It seems rather complex if a custom script is needed to achieve this… anyway, I’ll follow your suggestion to see if I can get something from the blender artist forum…
Thanks again
Sorry if I might have caused some confusion on this. You can set up a texture sheet manually in Blender pretty easily, although I don’t do this that often. I just wasn’t sure if there was already a script that automates the process.
So it is easy to do it manually? That’s great news. I still have no clue on how to do so :? Could you please briefly outline the steps to do it?
I’ll try:
Let’s say for example you want to use the same texture sheet for 4 different models. For the texture, I would use each quadrant of the texture for each of the 4 models. Then in Blender, I would just use the same texture in all four models, and just restrict each model’s UV map to its unique quadrant of the texture.
Follow me? It’s a lot harder to explain than it would be to demonstrate…
Ok, I’m following these steps… one question: do you know whether this will work for tiled textures? The process seems very logical, but I can’t imagine how to tell unity to repeat only the defined quadrant of the texture…
No, sorry, I can’t think of a way to do this either. I just tested a couple of things and it didn’t work. I normally just use separate textures for each model. That way I can create high res textures for everything, and then scale them to the size I want based on how the player will see them. For example, if object “A” is always going to be close to the player, I’ll set it to 512x512. And if object “B” will always be far away, I might use “128x128”. If they shared a texture sheet it would become a pretty messy operation to tweak this after the model was created.
You’re right, using these texture sheets maybe help to reduce the drawcalls but on the other hand can be a real mess when trying to define different import settings. Anyway, I will continue experimenting just to see if blender can do it, and I’ll post any further progress on that…
Thanks a lot!