Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dealing with autocad objects in Unity

I am new in Unity development and I have good experience in Autocad development. Is it possible to use 3d solids & 3d mesh terrains created in autocad and display it in the Unity interface and also get its properties (such as 3D solid color, dimensions, handles etc..)

like image 387
Doicare Avatar asked May 27 '16 11:05

Doicare


People also ask

Can you import CAD models into Unity?

To import 3D CAD data into Unity, you can use the following options: Prepare your CAD data into the formats natively supported by Unity and import it using Unity itself. Use the PiXYZ plugin (promoted by Unity due to their partnership agreement).

Can Unity use OBJ files?

Unity supports importing Meshes and animation from two different types of files: Exported 3D file formats, such as . fbx or . obj.

Can Unity import STEP files?

Importing STEP filesSTEP file import is only possible in the Unity Editor and not during Unity Play mode.


2 Answers

Unity supports .FBX, .dae (Collada), .3DS, .dxf and .obj files. If your Autocad can export to any of these then the answer is yes. It is possible but read below.

Objects produced in Autocad, SolidWorks or other similar software should not be imported to Unity directly by any means. Its too heavy for Unity. If you want to use your models from any of these software, export them to software such as Maya or Blender then clean the models up. Reduce the poly counts before importing into Unity.

Note that it will take time to clean the models up. You should spend that time making new models in Maya or Blender. If your goal is to make a game, then you need to learn either Maya or Blender. Autocad is not used for that. Since you are already using Autocad, I suggest you use Maya since the UIs are now made to look similar.

EDIT:

I see an answer below suggesting that it's totally fine to use Autocad models in Unity or model the objects in Autocad. It's not just about creating models. You have to do some work on the models to make it look good and even work properly with Unity's render engine. Here are many reasons not to use Autocad to model your game objects:

  • 1.UV mapping/unwrapping.

You have to unwrap the model's UV before importing the model into a game engine. Without this, it's hard to do texturing and you'll run into issues. Not to mention one of the biggest issue called "texture seams".

  • 2.Texturing the model.

Again, this is done inside programs like Maya and Blender not Autocad.

  • 3.Baking textures/Map

You need to bake maps most of the times when working with high detailed models. When generating materials from V-ray or any renderer in Maya with complex materials, you need to to bake the final result into may types of maps such as color, normal, alpha.... This also applies to light baking.

  • 4.Map Transfer

Initially, you model high poly then transfer the map to a low poly. You can't do this with Autocad. This is very import as it reduces the number of polys in your game.


Everything mentioned above are very important when it comes to game development but Autocad is not made to handle those.

Use the right tool for the job. Use Autocad for engineering and Maya or Blender for games, movies and art. It's as simple as that.

like image 95
Programmer Avatar answered Oct 19 '22 19:10

Programmer


To export from AutoCad, use the OBJ format, or FBX. The Unity "what files can I import" page is misleading because exported file formats differ with each new year and new versions of the exporting programs are often not compatible with Unity. It takes Unity devs a few years to get around to updating the import process, unfortunately.

In regards to optimizing your models, "cleaning them up" in Maya is a joke because Maya will also export "heavy" models depending on the format you use. There is a precedence for cleaning a model up, but AutoCad products are the best in the industry, and if you clean them up in a CAD program and then export in OBJ or FBX, it should be fine. Maya is also an AutoCad product, I'm just saying that you don't have to juggle a file around in different programs. If you use the OBJ or FBX export format and if your file is mostly a CG model, then it will work fine going straight from a CAD program into Unity, usually. CAD programs have utilities to clean up models, as do programs like Sketchup, DAZ3D and others. You don't need to triangulate faces, and usually OBJ will work great.

Your best option for importing to Unity is to use OBJ if possible, from any source program. Most models will sustain this if you don't have animations or "bones". If you export to OBJ and choose the option to NOT triangulate all the faces, and DO include the textures, you should be fine. If your model includes animations then you should use FBX format which will have a considerably higher file size cost.

In addition, it works better to drag-and-drop the .obj file, .mtl file and textures folder into the Unity Asset folder where you want it (better than trying the "import asset" native Unity feature).

Be advised that many of the formats that Unity claims to import on its "what files can I import" page are invalid based on the version of the exporting program. For example, DXF files must be an earlier version, not the most recent. Programs like Sketchup and .skp will only import into Unity if you use an earlier version, as far back as 2013, at this time, as of Unity 5.6.0f3.

Usually, if you are aware of these issues and you are willing to try a few methods of CG model exporting/importing, you will find success. Obviously, game devs keep using Unity because they value the engine enough to tolerate these kind of imperfections.

like image 24
Little BIt Avatar answered Oct 19 '22 17:10

Little BIt