Why is my imported FBX file not showing textures?

I admit this may end up being more of a Blender question than a Unity question, but at this point I’m not sure.

When I export a house model to an FBX file, and drag that file into Unity, I can see that it imports the materials, but no textures. So the house in the Scene view is missing all of the textures.

Blender 2.57
Unity 3.3

Is it supposed to work the way I’m doing it? Or am I missing something?

(I don’t know if this is relevant – and this IS more of a Blender-related question – but in Blender I can see the textures when I Render the image, but I cannot see the textures in Object Mode.)

Thanks for any advice.

Hi!
I was having the same problem, after UV mapping my model in blender 2.5, the texture wouldn’t show up in Unity.
I noticed that Blender exports the model as it is visible in the 3D view. Change the view mode to textured and then try exporting. It worked perfectly for me.

This is a good tutorial for UV Mapping btw… Introduction to Simple UV Texture Mapping in Blender 2.5 (HD) - YouTube

Mischa is right, FBX does not export textures and you have to import them into your Unity Scene, but if done right you can reload your FBX and do not have to manually assign them to the materials. They will find the links with the right materials.

I always have my folder setup like this: Assets/MyModels/ModelName/ FBX imported file which creates a materials folder, I add a textures folder, my 3d model also pulled the textures out of a textures folder next to the model. after I dump the textures in the textures folder I reimport the FBX and wolla! all the textures are assigned.

So I banged my head against a desk for the longest time figuring out the pipeline for Blender to Unity and getting things to show up correctly.

Basically Unity doesn’t take any properties from Blender in respect to Textures and Materials. You basically need to assign your materials to your house (i.e. - select the faces for your roof in Blender and create a material called roof in Blender and in edit mode click assign in the properties panel). Do this for every material you’re going to have on your house. Don’t worry about the settings for the material. You set all those in Unity (i.e. - transparency, specularity, normal maps, etc.).

After assigning materials to the different vertex groups on your model, you’ll need to make sure all the faces of the model are unwrapped (this is so you can make sure all the textures show up correctly on each surface in Unity). If you’re unfamiliar with unwrapping models in Blender, head over to blendercookie.com, they have tons of great tutorials on unwrapping UV images. Make sure you save the UV map for your house (you only really need one UV Image, not one for each material), in the UV Image Editor window in Blender.

I’m going to give you an example now for one texture like a roof for the house. Say you have a texture (you can get lots from cgtextures.com) and you have it sized out for 1024x1024 in Gimp or whatever image program you use. 1024x1024 is standard for game textures. When you unwrap your model you’ll notice that only the faces that are highlighted show up in the UV Image Editor, highlight only the roof faces for your model and resize them in the UV image editor to match the shape of the faces in the 3d View port. Using the UV Test Grid is a big help here as it shows you how even the texture will appear when you drag onto the material in Unity.

Sorry this is so wordy, I didn’t have any indication how schooled you were at the pipeline of Blender to Unity. Once you have the UV Map of your roof set, save your Blender file and export the FBX into Unity, you’ll notice that Unity, brings over the materials that you created for each part of your house. Now you get to pick what type of material you want each section of your house to be by choosing the appropriate shader. Most likely the roof may have a bumped diffuse shader applied to the material (assuming you have a normal map for your texture, if you don’t just choose diffuse rather than bumped diffuse). Then make sure your texture image is located in your Unity project, navigate to it in the project view and drag it into the blank square in the properties panel for the material.

VOILA, your texture has just been put onto your material and should show up. This all may seem complex at first, but once you get the hang of the process and do it over and over again, it becomes quick and painless and you start to really have fun with making your game.

Cheers

FBX exports your model with uvw coordinates but doesn’t include the textures into the FBX file. You have to Import your textures seperately into Unity and add to the generated material (the main texture panel in the inspector).

I’m not using blender but if you have procedural textures generated in blender you need a way to bake them before you can use them in unity.

Important is to actually save the material as an image in the uv/image editor before exporting as fbx!

did you just assign a texture to the model in blender or did you create a material and assigned that to the model? you should do the latter.
also, you might need to re-assign the materials in unity. i encountered that too, it imported the UVs properly, but i needed to tell unity which texture to use in which material so it wouldnt be just empty.

Import the texture into Unity and then drag it onto the model and the texture will find its place.

In case none of the above has result in positive answers do the following:
From Blender do two exports: 1 as FBX which contains the model and perhaps the animation you need. 2 as Collada.dae for the UVs and stuff. Make sure that in second export you check “Include Material Textures” and “Include UV Textures”. Then go to Unity (assuming you put the fbx and dae files already into assets folder) and look for material generated by fbx and apply them the textures generated by dae file.
I hope this helped.

I exported a .3ds file from Blender to my Unity project folder. Worked like a charm!

From Maya to Unity textures are exported with FBX when Embedded Media option is marked.