Followers 0

## 11 posts in this topic

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
0

##### Share on other sites

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.

1

##### 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.

1

##### 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
0

##### 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
0

##### 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

0

##### 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
0

##### 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.

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

Edited by Corvwyn
0

##### Share on other sites
Anyone know what the problem is?
0

##### Share on other sites

Have you checked that your input layout matches the data in the vertex buffer?

2

##### Share on other sites
I thought I went through this so thoroughly, but what do you know...

Seems like normal and texturecoords have been switched when creating the input layout. No wonder the "normals" affected the textures the way they did.

Many thanks for the advice! I'll check it out when I get home. My fingers are itching to fix this.
0

##### Share on other sites
It worked! Don't know how I managed to miss that. Thanks!
0

## Create an account

Register a new account