Closed AndrewJayDev closed 3 years ago
Hi.
After conversion, the model data is in a custom format (.arrAsset) intended only for consumption by the rendering service. Other than the operations provided by the rendering service, we don't offer an API for accessing the information within it.
I would like to understand your use-case better, though. The word "layer" gets used for several different things in the 3d domain, so I'm not 100% sure what's being discussed. For example, the FBX format has support for a kind of layer which defines different surface properties of the same surface (to support this concept, an FBX file will carry properties like "LayerElementNormal"). On the other hand, applications like 3ds Max have a structural concept of layer, where objects can be placed within layers which can be used to control their visibility. When exported to FBX, this seems to export to FBX as something called a "CollectionExclusive" property.
In the former case, we only support the first layer of surface properties, so any information in secondary layers will not be available. In the latter case, you might be able to exploit the fact that we set entity names from object names in the source FBX. If you can extract the mapping between object names and their layers from the FBX, you might be able to use that at runtime.
Thanks for the response, I will look into the second option and see if I can use that info in the FBX file to make some sort of map. To elaborate, when I refer to layers, I refer to specific parts of a 3D image which I believe are called entities in Unity. For example, if I have a rendered 3d image of a car, I want to see the parts of the car separately like a wheel or the roof, and add documentation about said roof so that the end user with a hololens or other device can see that information along side of it.
Rather than having a separate manual that they have to consult.
In ARR they are called entities as well. You can pick them via raycasts and you can override certain properties, such as visibility, color, etc. Here are some documentation pages that might be of interest for your use case:
On top of what Jan just said, the concept of "entity meta data" might be particularly interesting for you: https://docs.microsoft.com/en-us/azure/remote-rendering/concepts/entities#querying-metadata
So, in the fbx source file you can annotate entities in the scene hierarchy with additional data (pairs of name and integer/float/string values) which gets preserved during conversion and which can be queried at runtime.
Then, your client code can query that and display it as desired, e.g. as Unity text objects in the 3d scene.
I'm going to close this issue for now. Please don't hesitate to reopen or create a new ticket, if you have follow-up questions.
I am trying to extract the layers and store them in a mysql database so that they can be seen in a frontend UI. Is there a way to extract the layers after it has been converted either with a library in c# or node? I understand that there are a variety of programs which let you see the layers in a rendered image but I want to work with these layers in the backend.