Problems MG Pipeline processing .FBX Models Textures?

We are becoming reliant upon the MG Pipeline for Content translation, as we lose the original XNA Tools. But I have had little success with converting .X or .FBX 3D Models into any .xnb files which will render textured models in MonoGames anymore. I am not sure whetehr to use .X or .fbx files from Google Sketchup now that the XNA Pipeline is gone, and problems with MonoGame Pipeline. The nearest I can get is with fbx exports from Sketchup, but MonoGame Pipeline seems to mess up the Texture conversions.

When I use the attached file in an old XNA VS2010 project I can get the textures rendered good. But MonoGame Pipeline in MG 3.4 under VS2015/ Windows 10 the Textures don’t full render correctly. [n.b. from the Google Sketchup I had to manually correct relative pathname errors, and go via Autodesk convertor to get into an appropriate .fbx format. ]

All rather frustrating to lose the ability to lose simple Google Sketchup to .x file exports for 3d Modelling. Blender is too much of a pain to learn and use.

2 Likes

Similar problem here. Following the Riemers 3D Tutorial Series 2, I noticed there is no normal information in the ‘xwing.x’ model after loading it with Monogame. The Riemers’ shader needs that information, and I do would like to have normals in my model to learn how the shader works on them. There should be a way to autocalculate the normals in Monogame when importing a model to the Content Pipeline or when loading the model in the Framework.

OK think I have stumbled on a solution for fbx models from Sketchup into MonoGame .

a) I use the Free Sketchup Make (version 16.0.x) from Google for my models, which now includes fbx exports.
b) I have to adjust all the relative texture path names to be local relative.
c) I then build in MonoGame Pipe Line (FBX convertor)
d) I then build the .xnb content into my MonoGame content
e) *** However the important bit for correct Texture displaying** : In the 3D Daing code I include the following:
GraphicsDevice.RasterizerState = RasterizerState.CullCounterClockwise;
GraphicsDevice.SamplerStates[0] = SamplerState.AnisotropicWrap;
GraphicsDevice.BlendState = BlendState.Opaque;
GraphicsDevice.DepthStencilState = DepthStencilState.Default;

Many Thanks to the post at: http://strikelimit.co.uk/m/?=447

1 Like