I’ve seen these models on sketchfab that I find good enough for a mobile game, but if you look at them in wireframe mode it looks like they are made of a succession of cubes (or very close shapes).
I’m far from an expert at modeling, but isn’t it a very bad practice?
In blender for example, what’s the difference between creating multiple objects and a single object composed of multiple meshes?
How will it impact rigging / animation?
If I would import them into unity, can it make a difference (in performance/usability/shading) ?
Hi. Probably it is fine. Just because an object seems to be made out of individual objects it still can be merged to one mesh and therefore has good performance (one draw call).
There is no problem to rig and animate unconnected surfaces in one mesh.
Sorry for the noobish question, but could you clarify what you mean by :
The number of draw calls is what I had in mind when I posted my question.
What I currently understand (please correct me if I’m wrong, I’m fairly new in this) :
one mesh is a consecutive set of vertices
an object can contain multiple meshes (here I have Blender in mind when I say “object”)
each mesh will make one draw call
so an object containing two meshes (for example a character and a sword) will trigger two draw calls
You tell me that you can merge the parts together into a single mesh, but I don’t see that in the model I’ve linked above. Each “cube” is separated from the others, no common vertices. So will not each cube trigger a separate draw ? If so, it looks very bad performance wise.
In many instances, I think it’s far easier to create an object using multiple separated meshes than to create the whole object in one mesh.
For example, to make a table, is easier to create a rectangle for the top, and 4 other rectangles for each of the legs instead of doing multiple edge loops to extrude the legs from the top.
I also requires less geometry. But it feels very wrong to do it that way.
I have the same feeling with the character I’ve linked in my first message. I feels wrong that each part of the character is kind of a cube of its own, separated from the rest.
That is the point, it is not the case. I am not very familiar with the technical details, but a mesh consists of a set of triangle strips. It can also consist of single triagnles which are not connected to each other. Those will be sent to the GPU in one batch. This is also the reason why things like Dynamic Batching works and why particles can be drawn in one batch for instance. Batch = Draw Call.
Also if you have hard edges the the vertecies are split. So a cube with hard edges is actually a set of 6 planes.
What you describe in terms of Blender is different. I am sure you can merge two cubes in blender into one mesh (object). But I don’t use Blender.
Now if that particular model is combined I can’t tell for sure. The website describes it as modular and it actually does seem to be split into pieces
BitGems are expert artists - and I’d suggest defer to his/her knowledge. I’m not saying don’t ask these questions - they are good questions. Having dug into other BitGem models myself - I can attest to the quality and competency BitGems has as asset developers and artists in general.
Guessing without having direct access to the model, the model is probably one mesh object - but has separate mesh elements. All the meshes are still one object, but are comprised of different mesh elements. (I’m also not a blender artist - but have been doing 3D art for 17 years)
Sorry don’t know - not a blender artist. In most 3D package a mesh object can still have different non-welded mesh elements. They are still considered one mesh= one draw call - in 3D and in Unity.
It won’t unless the rigger/animator is inexperienced.
Yes - if the mesh elements are separate meshes, but this is highly unlikely, and only for performance. But if one character is drawing 2 more calls and that is slowing down the game - there are probably other issues in the game that need attention.
No - BitGems are really good artists and have been creating art for the asset store for a long time, at least 6 years or more. They are good asset developers and good at there craft - and I don’t even know them.
No - one mesh is not a consecutive set of vertices.
Yes an object can contain multiple meshes - these meshes are part of the object but are considered one mesh.
Yes - each mesh will make one draw call - unless you have different shaders/textures on the one mesh - and then it starts to get more complicated.
If the sword and character are the same mesh and have the same texture - it will only be one draw call. Two meshes in one object (this does not exist by the way) would create two draw calls, but two meshes are actually 2 objects.
Two mesh elements in the same mesh will still only create 1 draw call as long as they have only one texture/shader.
I’m new to the 3d world and I simply need to understand what I’m doing. I’m not the kind of guy who copy/paste without understanding, and after spending some time searching for this, I didn’t find a clear and definite answer.
This particular asset was a very good candidate to illustrate the underlying question, I didn’t want to judge the quality of the work in any way, I’m far too unexperienced to do so.
It’s good to know that a mesh can contain multiple set of vertices and still be rendered in one batch because I find it very hard to keep everything in a single set in certain cases.
A related question may be how do you determine if you should create a new set of vertices or add some edge loops to keep everything in the current one but it’s a discussion for another day. I guess the answer will be “it depends” or “you’ll find out with experience”.