LoadHeirarchyFromFile crashes on some comptuers but not others!

Started by
5 comments, last by The Pentium Guy 18 years, 8 months ago
What the hell? LoadHeirarchyFromFile works perfectly fine on my dad's 2 integrated graphics computers, and my 9800Pro computer, but NOT on my friend's Geforce2, and my other friend's MX460 (both nVidia graphics cards). They both have up-to-date drivers, and I even tried Omega drivers on their systems. Hell, I gave them a sample where the animated mesh is not created nor rendered and it works perfectly fine. Error: Error in the application. -2147467259 (E_FAIL) at Microsoft.DirectX.Direct3D.Mesh.LoadHierarchyFromFile(String filename, MeshFlags options, Device device, AllocateHierarchy allocHierarchy, LoadUserData userDataLoader) Can someone please tell me what's going on? The code, the exe's, the folder, the filepaths are exactly the same - I verified. The DirectX, Direct3D, Direct3dX dlls are exactly the same (all are from the August 2005 9.0C update). Edit: Code is here:

    Dim animRootFrame As AnimationRootFrame 
    Sub New(ByVal filesrc As String) //fileSRC is the path to the mesh
        Dim alloc As New AllocateHierarchyDerived() 
        animRootFrame = Mesh.LoadHierarchyFromFile(filesrc, MeshFlags.Managed, GameClass.dxDevice, alloc, Nothing) //Crashes right here.
    End Sub
Thanks, -The Pentium Guy
Advertisement
The code is probably failing in a method of your AllocateHierarchy class, most likely CreateMeshContainer. Are you using indexed blending? My guess is that it's failing because the maximum bone influences per vertex for your mesh is too high for GeForce2 to handle.

One possible solution would be to use software or mixed vertex processing when you create your Direct3D device.
I'll try that. Thanks !
Yeah that worked. Mixed doesn't work though (some parts of the mesh appear fubar'd) Now is there any way to be able to use the Hardware device? What would I do for this?


-The Pentium Guy
Bump.
If you use mixed, try calling IDirect3DDevice9::SetSoftwareVertexProcessing to explicitly set vertex processing to software when rendering the skinned mesh. You can use hardware vertex processing for other rendering.
Quote:Original post by jacklin
If you use mixed, try calling IDirect3DDevice9::SetSoftwareVertexProcessing to explicitly set vertex processing to software when rendering the skinned mesh. You can use hardware vertex processing for other rendering.


Sounds like an excellent command. Thanks for that.

This topic is closed to new replies.

Advertisement