Exporting OBJ and FBX physically break edges - no love for the game making community?

ATTENTION - FUNDRAISING HAS BEEN STARTED:

Why does Blender ignore game industry artists? An ability to export your models correctly to other apps is essential for production even if you are a freelancer.

Im quite new to 3D and Blender in general but upon learning about this flaw Iam heavily put off of continuing my Blender studies as an aspiring games artist. I do love the Blenders interface and the mentality of development and community, but if this is something that wont be fixed in near future, Ill just learn some other app instead. Because Im not wasting time on an application that ignores industry standards and cant be integrated into different pipelines.

You can learn more about this here - http://www.polycount.com/forum/showthread.php?t=119902

EDIT: If you have any decent workarounds to this, I`m listening.

EDIT #2 for clarification by user @xrg - “Basically freelance game artists have a difficult time producing models for clients. The client is almost certainly going to be using Maya or Max. If you’re sending them a model created in Blender you can’t retain smoothing groups/edge splits.”

I am actually totally on your side.

I don’t know how easy or difficult it is to do, but the problem is always finding someone willing to do it. :confused:

For the first time since playing around with blender, I tried to use it for a game asset project (big scene). I went about using my normal workflow, except I substituted maya with blender, and used blender for sculpting/retopo instead of zbrush. As much as I like working inside Blender, it didnt take long to realize its just not as functional as I would like it. Exporting a scene to marmoset for example would result in broken meshes and no object groups to separate them. Couldnt manipulate vertex normals to create the desired look, nor export it right.

So I feel your pain. Ton and company seem (could be wrong) more interested in keeping everything inside blender rather than making it a part of a larger pipeline, while focusing more on cinema and animation. No love for the CAD/Game artist out there atm.

Looking into Modo again now that 701 is released, see if that can support the game asset creation a bit better. You might also want to check out Nvil, which is a streamlined modeling application based around game art.

I like the all in one package, especially if its freelance friendly, because theres no way I can afford the heavy stuff like Maya. I`ll take a look at Modo though as they are trying to do something new at least and the price is friendlier for someone like me compared to other industry standards. I have never heard of Nvil, definitely taking a look at that one.

I dont blame you. Maya is expensive and really for game art you only use a small portion of what the package is capable of. In addition to that, dealing with Autodesk is no fun. All their enhancements are usually just cannibalized plug ins that already existing prior.

For the cost of one maya license you can get two copies of Modo. Modo also allows you to have multiple copies on different computers, for example one at home and one at work. As long as its only you using it at any one time. If you do try modo, make sure you switch it to maya or 3ds max controls and turn off the weird rotation method, it will make the program 100x easier to use.

As for Nvil, you can find a thread about it on polycount as well.
http://www.polycount.com/forum/showthread.php?t=116573

Modo however got very expensive recently.

I use MOI for NURBS to OBJ export and it works terrific.
For Modo a decent CAD import tool is around another + 600$.

I think we should maybe form a feature request because it would be a shame when this very critical part of vertex normal shading is ignored. It makes the use of Blender for Product rendering a lot harder when other applications can do it since a long time.

Blender has now a terrific render engine making it comparable or even better than apps like Keyshot which is around a grand and just a dummy fire and forget plug n play render studio tool.

It’s funny how people download blender, play with it for a bit and then demand for things to be fixed or else they’re going to take their hard-earned money elsewhere…

Yeah I hate how they do that. Retail for modo is now $1500 and if you want the CAD plug in its something like an extra $600, like you said. Its annoying that these types of apps like to break up and price gouge features. Thats part of the appeal of Blender, you dont have to deal with that kind of crappage. Sadly with modo its still cheaper than dealing with Autodesk atm.

I think we should maybe form a feature request because it would be a shame when this very critical part of vertex normal shading is ignored. It makes the use of Blender for Product rendering a lot harder when other applications can do it since a long time.

Thats really the crux of the issue. Much of the features we see being worked on ignore the needs of industry folk in favor of rendering and simulation. Some very important features and functionality, while probably boring to implement, is just missing in action from Blender.

Would be nice to see every other release maybe focus on one specific industry or another…just enough to cover the basics at least.

When you look at the markets Ton is aiming for, there is a need for the developers to be aware of Blender’s shortcomings (why else is he trying to improve Blender for cinema and securing meetings and a booth at SIGGRAPH?).

I’d say if a FOSS project is truly aiming to get into the professional market, then the devs. need to be aware of the criticisms toward the software, otherwise, it doesn’t matter as much as they target people who are just happy to have a free option.

o/, maintainer of OBJ and FBX formats here.

So far from reading these thread. its still not clear to me whats being complained about.

  • No smooth-groups?
  • Edge split modifier breaking apart geometry (which duplicates edges)?
  • No manual normal editing?

FBX export supports smooth, sharp edges, and face smoothing.
Smooth-sharp edges are in fact more flexible then smooth groups, so whats the problem?

I did check on the polycount forum but didnt read all pages of posts.
Can someone explain whats wrong?

Actually, now that I think about it, I’m 99% sure that OBJ doesn’t even support multiple normals per vertex. I was working on an .obj parser (well, still do from time to time when I get bored and want to try out a new parsing method since it has a super simple grammar and finding huge example files to test the parsing speed is easy) and can look it up in the spec to become 100% sure since I have it somewhere on the hard drive but am way too lazy for that.

Dunno about fbx though.

In part this isnt possible in blender, nor can it be exported:

In another example, lets say I have these 2 meshes:



This is part of a project I am trying to use blender for. If I export selected as an obj and load it into marmoset, there is no data telling marmoset that these are two different mesh groups. I would have to take them over to Maya, export there and suddenly the groups are recognized. But thats not the biggest issue…just one.

If I wanted to edit the vertex normals…say smooth edge, I cant do that much less export it. Game engines dont play nice with blender meshes half the time I have noticed.

Now if i were to export that as fbx with in blender, for some reason the mesh is broken or invisible within the game engine. I checked the face normals and they were pointing in the right direction. So again what I have to do is go to maya or some other app and re-export there.

There are just problems… not only with exports but the mesh data, as well as a lack of ability to edit vertex normals.

Blender has ways of making edges hard and smooth for use within blender, and especially when working in subd, but for low poly work and game engines it just doesnt want to play ball.

Hello Ideasman42,

I work with Rhino/MOI and export NURBS models into OBJ for rendering in Blender just so you know where I am coming from.

My biggest problem currently is the remaining fact that Blender ignores the vertex normal shading MOI writes into the OBJ file.
Upon importing the OBJ file the vertex shading seems to be recalculated which however results into heavy shading artifacts.
In the image below you can see hard edges in solid shading as well as during render time with OBJ or STL formats.



This makes for me using Blender for rendering very hard on certain shapes.

@SaintHaven, hard edges can do this (the example you use for smooth groups) - and FBX will export this.

@cekuhnen, storing and editing normals is missing - and in your case it would be really good to have, though Im not sure this was the complaint with the initial post?

From just reading the thread - Max and Maya support multiple normals per vertex to get hard edges. The edge split modifier is Blender’s way of doing that while still maintaining editability. But when you export an fbx, the model gets exported with split vertices instead of single vertices with multiple normals. It’s like applying your Edge Split, which even in Blender there is almost never ever a reason to do. When someone opens it up in Max or Maya later it’s not unfixable but annoying and makes you look very unprofessional. Instead of applying Edge Split, the exporter should have an option to throw it out and do multiple vertex normals based on sharp edges so that it imports cleanly to Max/Maya.

I’m not sure how implementing this would mesh with the upcoming normal editing - it’s going to be important to be able to edit each normal on a split edge.

the problem seems that when exported from blender the mesh is actually split where there is a hard edge . which is not the way that max use and make working with some studios and game engine difficult since you will need to have a copy of max and reattach those edges and set the shading groups there first then … ? is that right ??

Maybe there should be a project where it’s looked at how to go from Blender to the existing free 3d engines(Unity, Ogre etc.) and how to make this more efficient to do. I’m sure smoothing groups aren’t the only problem.

The BGE is nice, but you can’t blame people for using more dedicated engines to make their games with.

Not only is the lack of multiple vertex normals a problem going out to other apps, it’s also a problem coming in. The aforementioned MOI issue (I ran into that. Ended up not rendering the project in blender over it). Plus I often have issues with bringing in maya models from other artists in the studio, only to find out that all of the smoothing group assignments that they painstakingly set up for entire environments were now obliterated in blender and had to be remade using the split modifier.

You are totally wrong about edge split thing. The vertices ALWAYS duplicated when any of the data is not same on it. So if hard edge or not same UV, or not same vertex color, your vertex is duplicated in the videocard.

But: when an engine loads a model, there is an optimization process, where the same datas are processed into a table (index buffer, vertex arrays - I dont remember the name). So if you have 1000 vertices on same position with different UV, the coordinate datas are stored only one times.

And there is no difference between apps. Blender edge split thing will make same results as Max smoothing groups or Maya etc.

For example read Unity docs, they write too: use edge split modifier in Blender.

I have worked on many games, using Blender as main modeler and level editor (so the objects are exporter directly from Blender into our game engine) and we have no problems with edge split thing. In one of my latest game we achieve very good performance on IOS/iPad1 game (Theendapp). And my older game Ignite now coming to iOS, and we can render many many vertices…

So Blender is perfect for game making. Now I am working on the #5 company where we use Blender as main tool in our game engine.

This topic is very sad, new example of the bad critisism of Blender… :frowning: But ouf course, do not fear me. You are the future of Blender, not me. Your bad knowledge will rule everything…

Sorry for my bad english.