Jump to content

  • Log In with Google      Sign In   
  • Create Account

We need your feedback on a survey! Each completed response supports our community and gives you a chance to win a $25 Amazon gift card!


Blender to XNA: Skinned Model Renders Black


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
19 replies to this topic

#1 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 13 September 2012 - 11:54 PM

Hello all,

I am trying to import a skinned model into the Skinned Sample from Microsoft. The model was built in Blender 2.63a with an animation, a material, and a texture. The model renders perfectly with Blender, but once exported, the model loses all reference to the texture. The model renders black in XNA, and VS doesn't complain about the missing texture in the folder. Anyone know why Blender is not exporting the texture or at least a reference to it? I tried recreating the material and the texture, but to no avail.

Sponsor:

#2 BCullis   Crossbones+   -  Reputation: 1813

Like
0Likes
Like

Posted 14 September 2012 - 08:06 AM

What effect are you using to render the model? If it's not a BasicEffect, can we see the shader code?

Also, does VS give you any warnings about the loaded assets?

if you put the associated texture into the <Projectname>Content folder of your project, do you get a warning that it's being compiled twice?
Hazard Pay :: FPS/RTS in SharpDX
DeviantArt :: Because right-brain needs love too

#3 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 14 September 2012 - 09:20 AM

The shader is the skinned model sample shader, yes, VS would warn me of a missing asset, and no it's not warning me that it's being compiled twice. I am fairly sure Blender is not exporting the texture or any reference to it.

Edited by Drakken255, 14 September 2012 - 09:22 AM.


#4 CC Ricers   Members   -  Reputation: 835

Like
1Likes
Like

Posted 14 September 2012 - 09:27 AM

I'm just assuming but I'm 99% sure you're exporting to .fbx since it's a common format for XNA animations and the sample uses this format, right?

Usually the compiler would give an error in the model processing phase of the build when it looks for a texture that is not found. Otherwise, the content processor you're using has a way to handle missing textures and just puts a default one in its place.

Coincidentally, I was fixing up a third-party model I exported from Blender yesterday in trying to get its textures to load too. I didn't export the animations but it was an .fbx format. When done incorrectly, exporting as .fbx would cause the model's texture to have "untitled" in its file path, so you will end up with nothing. You need to check the image list in the UV image editor. Select your mesh, go into Edit Mode and press A to highlight all the vertices. In the UV editor window, choose the image you want to associate the mesh with. Then save the file and export.

There's a chance you also have some unused image datablocks named "untitled" possibly followed with a number, which you will see in the list of images in the UV editor. Shift-click to unlink and remove these, save, and re-open the blend file. It was kind of tricky trying to figure this out myself, I was also struggling for hours figuring out why the model's texture wasn't showing.

Edit: Yep, I checked my original model again and you will get references to "untitled" in the exported file (search for this string in the file with quotes included). You gotta remove any references to those image files as I've mentioned before.

Edited by CC Ricers, 14 September 2012 - 09:59 AM.

My development blog: Electronic Meteor

#5 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 14 September 2012 - 10:10 AM

Turns out that is not quite the problem. When I open the .fbx in notepad, I find absolutely no reference to a texture whatsoever. I haven't checked about unnecessary links yet, though.

EDIT: I saved, closed, reopened, and exported and now there is a reference to textures... And it does point to the correct file... I don't just get it... Lemme provide a link to the fbx and blend files:

https://dl.dropbox.com/u/10337688/SteveIdle01.blend
https://dl.dropbox.com/u/10337688/SteveIdle01.fbx

Edited by Drakken255, 14 September 2012 - 10:24 AM.


#6 CC Ricers   Members   -  Reputation: 835

Like
0Likes
Like

Posted 14 September 2012 - 11:47 AM

What do you see when you load the .fbx with the correct texture names? Does the new exported file work correctly? I checked the .fbx, and do see a texture name in RelativeFilename of the texture object, and it has a connection with the texture to the HumanMesh model.
My development blog: Electronic Meteor

#7 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 14 September 2012 - 12:56 PM

Still black...

#8 CC Ricers   Members   -  Reputation: 835

Like
0Likes
Like

Posted 14 September 2012 - 01:24 PM

You may want to post the content processing code for the model to see if that's the possible problem.
My development blog: Electronic Meteor

#9 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 14 September 2012 - 02:02 PM

From SkinnedModelProcessor (Modified):

Spoiler

Edited by Drakken255, 14 September 2012 - 02:02 PM.


#10 Sesha   Members   -  Reputation: 107

Like
0Likes
Like

Posted 15 September 2012 - 07:26 AM

Hi Drakken255 try removing the TEXCOORD from the effect file and compile just with the material if it succeed then it is with blender. I know some in directx and not XNA.

#11 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 15 September 2012 - 12:10 PM

If I am correct, removing the TEXCOORD from the effect and he texture from the mesh would result in a flat grey model, right? Well I am highly certain the problem is with Blender, anyway. How else would the standard dude.fbx work where my own won't? Also, it seems that despite my program recognizing SkinnedEffect, it's not in my project! I don't get it. I thought SkinnedEffect was a custom MS effect and came with the sample...

Edited by Drakken255, 15 September 2012 - 12:14 PM.


#12 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 16 September 2012 - 08:20 AM

Will someone please take a look at my .blend file (linked above) and see if I am doing something wrong?

#13 Tarika   Members   -  Reputation: 481

Like
0Likes
Like

Posted 17 September 2012 - 11:17 AM

Try the following to debug the problem:
  • Add a breakpoint during the render of your model, check that the texture is actually loaded in the first place.
  • Make sure when you export your FBX file through blender that you tick the option: XNA Strict Options
  • As your model is skinned, make sure that the textures are placed where XNA expects them, you can check this by opening up the fbx file and looking for the texture references.
  • Make sure (and I know this is obvious but it's worth checking) that you have UV mapped your mesh and not just applied a texture material, because generated UV's don't automatically export.
  • If none of the above fix the issue, then it's possible there is something wrong with the rendering code you are using, if you are using a custom shader to display
    the model, let us see what you have so that we can better help. If you have your own lighting system, perhaps the model is simply not being lit.
Hope this helps, and keep us up to date on your progress.

Aimee

We are now on Tumblr, so please come and check out our site! 

 

http://xpod-games.com


#14 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 17 September 2012 - 04:23 PM

Thanks for your reply.

1: I may be using custom code, but even using the Skinned Sample by MS with no changes other than the model and animation name strings, it stays black.

2: I am always sure to correctly export the model.

3: My texture is placed in the right spot and when it isn't, VS complains like it is supposed to.

4: Wait... Blender doesn't export my UV map? I did make my own... This sounds like a part of the problem, but I don't know...

5: Similar to 1.

EDIT: My models did work ok with Blender 2.6, whereas now I am using 2.63a. Is this an issue?

Edited by Drakken255, 17 September 2012 - 04:28 PM.


#15 CC Ricers   Members   -  Reputation: 835

Like
0Likes
Like

Posted 18 September 2012 - 10:17 AM

I use Blender 2.59 so I'm not sure if the issue is there.
Things that you may want to keep in mind: The SkinnedModelProcessor is not where the problem is. Something seems to be up with the way Blender prepares textures in your model upon export.

I opened your Blend file, scrapped the extra textures, and just exported the Steve mesh with one texture. In XNA he appears tiny (probably just the size the model was made) and indeed appears black. Then it hit me... Did you choose to pre-multiply Alpha in your texture processor? My guess it's set to True by default in the Skinned sample. Try turning it off. Had the same problem when I dug up an SSAO shader I made many months ago and for some reason the randomized normals texture was rendering in black making the AO look weird. The alpha channel of the texture was black, so I had to disable pre-multiply alpha to get it working again.

Edited by CC Ricers, 18 September 2012 - 10:21 AM.

My development blog: Electronic Meteor

#16 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 18 September 2012 - 07:40 PM

Ok, how do I turn this off?

#17 CC Ricers   Members   -  Reputation: 835

Like
0Likes
Like

Posted 18 September 2012 - 08:08 PM

Here's how.

With this window open, click on the little arrow or plus sign next to Content Processor and then you should see an option called "Premultiply Texture Alpha". Set it to false.
My development blog: Electronic Meteor

#18 Drakken255   Members   -  Reputation: 173

Like
0Likes
Like

Posted 18 September 2012 - 09:59 PM

Thanks. Will try after work and edit with results.

EDIT: Setting the pre-multiply alpha setting on either the model or the texture didn't work...
Not even removing all transparency options in Blender works...

Edited by Drakken255, 19 September 2012 - 04:49 AM.


#19 Tarika   Members   -  Reputation: 481

Like
0Likes
Like

Posted 20 September 2012 - 11:03 PM

Just wanted to follow up on this as it seems you haven't solved the issue yet, and I needed a break from just writing shader code for our tech featuring at eurogamer expo this year lol. Just now I grabbed your blend file and had a poke around, seems that you have unwrapped the mesh, but you have not yet coupled a texture to the UV's, so heres what I did, I loaded a basic texture I had in edit mode while the UV's were visible, then went to the texture properties tab, scrolled down to Mapping -> Map and chose UVTex so that the UV's were properly assigned.

After that I exported as I mentioned, and it works fine, to prove it here is a screenie of your model running in our engine Phobius (this is an XNA engine):

Posted Image

The issue is entirely down to making sure that your model is properly UV mapped, so try have another pop. If you still have problems PM me and I'll send you the modified blend file so you can see what I did.

Aimee.

We are now on Tumblr, so please come and check out our site! 

 

http://xpod-games.com


#20 oxiyoxi   Members   -  Reputation: 101

Like
0Likes
Like

Posted 25 October 2012 - 08:26 PM

I have the same problem,Please send your modified blend file for me,thank you very much~
i still didn't figure out this problem~




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS