Jump to content
  • Advertisement
Sign in to follow this  
Corvwyn

Strange textures when loading md5 model in AssImp

This topic is 2043 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've finally gotten AssImp to work in DirectX11, but the textures are all wrong. I seem to remember seeing something similar before, but I can't remember what caused it.

 

Any ideas? I've included a screenshot (Print screen didn't seem to work, so I just took a picture for now).

Edited by Corvwyn

Share this post


Link to post
Share on other sites
Advertisement

It looks to me like the texcoords are stuck at a particular value, causing it to look like the texture is stretched across the whole model.  Have you tried loading a simpler model yet?  I would start out with something like a square or cube, where you can assign known values to each vertex.  Then when you load the model through AssImp, you can inspect the results and ensure that everything was properly read in and interpreted.

Share this post


Link to post
Share on other sites

Maybe the model creator mapped the texture to -1 .. 0 on one axis, and you activated texture coordinate clamping. The result would then look just like this.

Share this post


Link to post
Share on other sites

Thanks for the replies.

 

Jason:

Good idea! I'll try with a cube or something and see what happens. 

 

Schromph:

The texture coordinates are set to D3D11_TEXTURE_ADDRESS_WRAP. I've been messing around with texture coordinates/settings, but it didn't seem to help.

Edited by Corvwyn

Share this post


Link to post
Share on other sites

Another strange thing, that isn't really noticable in the screenshot is that the model only seems to be textured on the inside. When I loaded a cube and looked at one side, the surface I was facing disappeared and I could only see the inside.

 

I haven't been able to test out your idea yet Jason. I'll see if I can do that today.

Edited by Corvwyn

Share this post


Link to post
Share on other sites

After some research I assume that the reason the model seems to be textured on the inside is because of culling. Maybe it will work if I adjust CullMode and FrontCounterClockwise in the rasterizer state. Too bad I'm stuck at work at the moment :p

Share this post


Link to post
Share on other sites

Setting the parameter aiProcess_FlipWindingOrder while importing fixed the problem with culling. It now works correctly with CULL_BACK. When using CULL_NONE faces that shouldn't be shown seem to be rendered. Anyone have a clue what's happening?

Edited by Corvwyn

Share this post


Link to post
Share on other sites

While testing I set the texture coordinates to always be 0.0f, 0.0f, and it didn't affect the result at all. Why doesn't changing the texture coordinates have any effect? I've tried using the same shader to render a simple textured square without loading it from AssImp, and the textures work.

The only way I got anything to change was to mess with the normals (switched z and y). At least all the textures didn't look as strange as they do in the screenshot. I never really got the textures to show properly though. I have aiProcess_MakeLeftHanded enabled, so the normals should be correct. I have also tried just about every parameter I can pass to the AssImp importer, without success.

I'm using these settings while importing:

const aiScene* scene = importer.ReadFile( inFilename,
aiProcess_CalcTangentSpace |
aiProcess_MakeLeftHanded |
aiProcess_Triangulate |
aiProcess_JoinIdenticalVertices |
aiProcess_SortByPType |
aiProcess_FlipUVs |
aiProcess_GenSmoothNormals | 
aiProcess_RemoveRedundantMaterials  |
aiProcess_FlipWindingOrder );

 

I'm using the mesh Bob.md5mesh included with AssImp. The only change I've done to the model is that I converted the textures to DDS, but it works in AssImpView. Maybe I have to do something special with this model to get it to work with DirectX(11)?
https://assimp.svn.sourceforge.net/svnroot/assimp/trunk/test/models-nonbsd/MD5/

I can of course provide the code or more screenshots showing the problem, if that would be of help. One good thing about all these problems is that I've gotten more understanding about texture coordinates, buffers etc. I'd really like this to just work soon though.

Edit: Added some more info.

 

When I switch the z and y normals, this happens:

Edited by Corvwyn

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!