|
Tell us what you think of the site.
|
Autodesk Media & Entertainment User Community
|
Autodesk® 3ds Max®
|
|
Autodesk® Maya®
|
|
Autodesk® Softimage®
|
|
Autodesk® MotionBuilder®
|
|
Autodesk® Mudbox™
|
|
Autodesk® ImageModeler™
|
|
Autodesk® Sketchbook® Pro
|
|
Autodesk® Smoke on Mac®
|
| cannot get materials from fbx files exported from revit
|
|
|
Hallo there,
im using the FBX SDK 2011.3.1 to read fbx files, well the problem is that i cant get material from fbx files exported from revit 2011, well i tried the code pNode->GetMaterialCount() and it always return 0 while importing the file into 3dsmax 2011 gets the materials, and exporting it from 3dsmax 2011 to fbx and using the same code (pNode->GetMaterialCount()) returns some materials.
well with some investigation i found out that there is something called “Protein 2.0 appearances” that is new mental ray materials for revit and 3dsmax and maya and autocad 2011, and i noticed that there is Protein 2.0 conventions in conventions.h but i didn’t find any reference that might help me, supposing im looking in the right direction.
any ideas or hints would be great.
thanks.
Sameer Ababneh.
|
|
|
|
Can you post an example?
Use .zip
|
|
|
|
Hello Doug,
i have attached fbx file exported from revit, this file imports with materials i 3dsmax but it dont in the fbx sdk 2011.3.1, i even tryed it using the ImportScene example that comes with the sdk and it couldn’t find any materials
thanks
|
|
|
|
Hi, Max2u,
Protein 2.0 material is not a part of FBXSDK, but something only supported in applications like Revit and 3ds Max.
So there is nothing in FBX SDK can handle Protein2.0 materials yet, it only existed in FBX file as blobs which will be thrown into 3ds Max as a whole and then processed by 3ds Max.
And as far as I know, there is no plan to include Protein 2.0 materials in FBX SDK yet.
So for now you can only use Protein 2.0 materials in the scope of applications.
Jiayang Xu
Maya Data Platform
Autodesk
|
|
|
|
hello there,
i was aware of that there is a blob in the file, i was hoping that there are some magical way in the sdk that helps me to read the material from that blob,
and yes Jiayang, is there any thing that helps me reading this blob??
|
|
|
|
|
Sorry, but I am afraid we are not allowed to do so. :(
Protein 2.0 is something not opened and with a pretty complex structure. And to parse it need a whole materials library system to support, which is also not opened.
If you could tell us why you need to parse these material for what kind of task, then you may add a cent to the possible future plan to make this kind of operation available. But since this is totally out of control of FBX, I cannot guarantee anything :(
Author: Jiayang Xu
|
| Replied: 02 November 2010 09:37 PM
|
|
|
|
|
I am having the same problem, of the node reporting a 0 material count (and null material reference), but the material layer reporting it does have a material, from Revit 2011 fbx.
This works just fine in Revit 2010. The exported fbx file node in question does have the right number of materials and returns a reference to it. node->GetMaterial(id);
Has someone found a solution to this problem for 2011?
|
|
|
|
|
As I stated above, Revit 2011 is using a new material system which cannot be handled by FBX SDK yet.
That’s why Revit 2010 is fine but 2011 got this problem.
Author: Jiayang Xu
|
| Replied: 20 December 2010 02:19 PM
|
|
|
|
|
Yes I can give you a very good reason to include the abilty to process, store etc protein 2 in FBX. Because without it you can’t get Revit files into Maya. I see no point in having a cross platform file format that does not cross over into Maya.
So please make revit files compatible with Maya. Is this the plan???
|
|
|
|
|
Yes. That is then plan.
1. There already existed an internal converter to convert protein 2 material to FBX compatible materials.
However, we do not know when this will be public.
2. If I remember correctly, Maya already supported Protein 2 material now, but I do not remember the exact version, you may ask on Maya’s forum. So for sure the FBX plug-in for Maya will follow that too at some point.
Author: Jiayang Xu
|
| Replied: 29 January 2011 03:51 AM
|
|
|
|
|
"Platform-independent.” It is far from it. FBX doesn’t work properly exporting to many 3rd party renderers. And there are plugins that work in AutoCAD that can’t work as well in Revit because of this limitation. Ridiculous. Makes AutoDesk look petty.
Don’t get me wrong. I have no problem with AutoDesk restricting interoperability. As long as they’re honest about it. Notwithstanding the fine print in their statements.
|
|
|
|
Hello all,
I’ll try to clarify a few things and collect your feedback.
Let’s face it, interop is a difficult topic. FBX has 15 years and is far from having completely resolved the problem its targeted at. What for?
1. Revit-Maya interop
FBX was created by Kaydara to support 3D information from 3ds Max/Maya/Softimage|3D to go into FiLMBOX and to get animation data back in the original software. that`s for the entertainment business.
Nowadays, because products like 3ds Max and Maya are used in other industries like automotive, fabrication or architecture, the problem list expands… Why is that so? these software defines 3D object with solids, not polygons, Revit use a database (BIM) which is a collection of metadata that is difficult to use outside this paradigm, etc.
In this topic, we’re interested in Revit-Maya material support.
Maya is a product targeted at the entertainment business. It does not support Protein materials (the new materials for the 2011 ACAD, Revit, Inventor products) and until it does, won’t be able to support files coming from Revit. 3ds Max and 3ds Max Design do support these, however… A solution could be to use 3ds Max instead.
I’ve looked if it was possible to automatically translate the protein materials into good old FBX materials while in Max. Unfortunately, It’s not.
2. renderer material data interop
The big picture is that while FBX is an interchange format, the data it carries may not be supported by all. More specifically, the material information carried by FBX materials (or protein materials) does not resolve anything for the interoperability across renderer.
I personally don’t think it`s an easy problem… the parameters used drive different shader(s) (or worse, assemblies of shader fragments). The resulting images won’t be necessarily predictable until a visualization expert tells how to approximate a look on renderer A to a look on renderer B. And then, it will work for a specific look on specific builds of renderer A and B. Who’s up to ensure (and maintain) global automated correspondence between Mental Ray, Maxwell, Renderman, Arnold, Brazil and VRay?
Until superman comes, artists are stuck with the manual/visual translation of material information from a renderer to another one.
Hope this helps a bit understanding the situation and what can be done,
don’t hesitate to comment or question,
I’ll be happy to discuss.
Jean-François Yelle, Product Manager
Autodesk Media and Entertainment division
|
|
|
|
|
Inter-operability is a hard problem, however Autodesk has the ability to solve this in their own product line. External products will follow your lead.
1. Revit-Maya interop
The legacy/history of FBX should have no bearing on an interoperational file format. If FBX has issues, then use a different format or expand the functionality of it. It is more important to have a file format that “just works” vs. one that has issues or legacy problems.
IMHO, the FBX file format should be a super-set of the functionality of all the programs that it supports. There should not be proprietary blobs of data that other programs cannot read.
Furthermore, developers wish to use the FBX format to import into their programs, so having materials that cannot be parsed at all is problematic. I know that this is not a priority, but it makes using the FBX format frustrating.
2. renderer material data interop
...while FBX is an interchange format, the data it carries may not be supported by all.
This is exactly the thing that should avoided at all costs and should be considered a bug, certainly within the apps that you control. You can’t call it an interchange format if there are proprietary fields generated from standard programs.
If Revit creates materials, the FBX format should be expanded to allow for those materials to be used in other programs.
Autodesk can solve this in a standard way. Just a list of materials is not sufficient. Look at the Unreal Editor, for example, you can create surface materials and save them for use later. Store the shaders or use a shader graph, anything that allows more sophisticated rendering. Start the process and iterator it over revisions. This also leads me to observe that the frequency of SDK updates is at best, slow.
Renderers don’t need to produce the exactly the same look. What is needed is the ability to read what is stored in the FBX files across applications.
Author: Doug Rogers
|
| Replied: 22 March 2011 09:53 AM
|
|
|
|
|
Doug,
There are 2 issues really
1. Maya can’t currently deal with the material information coming from Revit. This isn’t a bug, it’s a feature.
2. The Autodesk materials Revit exports (aka Protein 2.0) are currently saved in a proprietary binary blob. Getting an API to extract the data, or serialize it in a readable fashion (ASCII) are also 2 features that could resolve the same problem.
However, I know for a fact you could query the material properties out of the Revit API. If it’s that important, I guess it’s a way to get to the data.
Jean-François Yelle, Product Manager
Autodesk Media and Entertainment division
|
|
|
jfyelle 23 March 2011 09:44 AM
Doug,
There are 2 issues really
1. Maya can’t currently deal with the material information coming from Revit. This isn’t a bug, it’s a feature.
2. The Autodesk materials Revit exports (aka Protein 2.0) are currently saved in a proprietary binary blob.
As for #2, it does not solve the problem of using Revit outside of its host environment.
Both can be solved by not using proprietary blobs of data, but extending the FBX format. Whose proprietary format is it?
|
|
|
|
|
Agreed.
the Autodesk materials (aka Protein 2.0) are a company wide component.
It was developed as an ongoing a multi-year effort.
This binary blob is embedded in FBX, DWG, inventor files, etc.
A public facing API is being considered.
This would eventually permit the binary blob access within a file format API
Meanwhile, there’s no way to easily access the data contain in the ADSK material binary blob transported any format (FBX included).
It is possible, however to access material information through product APIs supporting the ADSK materials.
within 3ds Max : accessing the ParamBlock2 data using the Max SDK (or Maxscript)
within Revit : accessing the material appearances within the BIM
As maya does not support the ADSK materials at this point, it won’t be possible to access the data through MEL or their Maya SDK.
thanks
Author: jfyelle
|
| Replied: 23 March 2011 04:03 AM
|
|
|
|
|
|
//need to have reply to reply on this forum.
A public facing API is being considered.
IMHO, this should be added to the FBX SDK, since FBX is considered your universal interchange format.
Any time you are considering adding a new proprietary blob of data, I think the FBX SDK should be updated to read and write that data, as POR.
Author: Doug Rogers
|
| Replied: 23 March 2011 04:24 AM
|
|
|
|
|
|
//need to have reply to reply on this forum.
A public facing API is being considered.
IMHO, this should be added to the FBX SDK, since FBX is considered your universal interchange format.
Any time you are considering adding a new proprietary blob of data, I think the FBX SDK should be updated to read and write that data, as POR.
Problem with that is it would grow the FBX SDK by _a lot_, which is currently technically not suitable.
Author: Robert Goulet
|
| Replied: 14 May 2012 01:56 AM
|
|
|
|
|