Hi, so far I know two ways of applying different materials/textures to objects in my level:
create the 3D model in a 3D modeling software, apply your UV mapping
assign a new material/element to a element in the model, so you end up with different elements in your mesh in UE, then apply different materials to different elements.
I was wondering, which one is better?, pros and cons?, is the second one a legit way of doing it?.
You need UV’s either way. Plus doing a material per element would be really inefficient in general. But that depends a lot more on the type of object. Less materials means less draw calls (in general). UV’s are needed because it defines where a texture is, even with a material based approach, you are going to use textures and unless you UV them even simplistically, you’re going to get a mess of a material.
So to answer your question, doesn’t matter because they both need UV’s.
That second approach is very slow and will be more of a headache than UV mapping. Not sure why you would bother not making UV maps. For me I was really bad at UV mapping, and found it extremely hard until I found 3D Coat. It’s very fast to unwrap things. Just draw the seams and it will handle the unwrapping and packing for you. It has some pretty good auto UV mapping as well. Might be fine for less critical props, but I usually draw the seams by hand because it’s just so fast to do so and gives better results.
It is not that I don’t want to create the UV’s, but that I’m starting to learn how to do it and I wanted to use the best approach.
My character is just a little cartoonish dragon, (that I bought), and it comes with UV’s and textures already. And I wanted to mess around with the different areas of the dragon in UE, you know, make the claws a little more rough, make the eyes brighter and maybe apply a glow, but I found out I can’t, or I don’t know how to do it.
So in other words, I’m not sure how to. But what I do know, according to the tutorials I watched, that if each element has a different material, I can just make that material whatever I want.
But if you say is not a valid approach, tell me how can I accomplish that, since I’ve read that UE can’t import more than UV and diffuse color from a FBX file.
The UV’s are there to simply tell the engine where on the texture the polygons are. If you aren’t using textures in your materials (i.e. very simple solid colours) then you don’t need them, but for pretty much any reasonable complex materials you will pretty much want the UV’s to be laid out properly so the textures work.
Unreal as far as I know supports at least 3 UV channels, but that might be more. It also allows multiple materials per object (you create a multi-sub object material in max, no idea about any other software).
I see, so let me ask you this, let say I want to change the roughness of a claw or teeth in the model, how can I do that?, without having it’s own element?.
The easiest and more effiecent way would be with a mask texture and blending a parameter with the current value. But you’d need UVs and a mask texture or a material ID texture.
Truth is, I don’t need/want textures for my characters, since they have a cartoon style, solid colors will do. But I do want to later be able to create different materials from those solid colors. That is why I don’t understand what role UV plays in this. I think I’m missing something, since in UE when I import my character, I don’t have any way to interact with the UV’s or anything like that, I just have a automatically created material that contains my texture and mesh, but no reference to the UV whatsoever.
I guess you could just assign multiple materials without textures and use parameters to control those values with material instances to save on performance. But each separate material on a mesh is another draw call, so I’d avoid doing that too much of you want a bunch of characters on screen at once.