Jump to content

REVIT to MAX to Unity - optimizing routine help


HawkPoint3D
 Share

Recommended Posts

I could use some advice on how to approach using geometry that was originated from REVIT that I would like to salvage for use in a UNITY virtual environment. Some of the native stuff in REVIT is too high in polys i.e. overhead doors 27k each!!, and bar joists etc. How can I get bar joists modeled for a low-poly environment? In MAX I just use renderable splines usually but I don't think that will work for UNITY?

My idea is to turn off those high-poly REVIT items and recreate them in MAX as low poly items. I will probably do all the materials in MAX also before going into UNITY as well.

I recently saw a UNITY project that was really well done. One of the things I noticed was that it had a familiar "AAA Gaming" textured environment. i.e. doors were nothing more than a flat plane but it had the door handles and hinges etc that were correctly lit for the scene.

How are they doing that? Do they start with a high-poly model with all the knobs etc modeled, then baking out the materials with the lighting? Then deleting those high poly items and just using the baked out maps on the simple surfaces? What's the process?

I really want to try an ARCH scene in UNITY to see how it fits my workflow. I don't want to waste time or resources though!

 

Any help greatly appreciated!

 

Dave

Link to comment
Share on other sites

Hi Dave, you can not use the geometry from Revit in unity without modifying it. you must optimize the geometry in 3ds max, you can check my work and it will give you some rough idea. you should have some rough idea how much poly you want to allot to every object. for example allotting a door 27k poly is just not practical and it will make your unity scene too slow. In my apartment interior scene the door is just a box with texture on it. I also have doors which are geometry but low poly, not more than 200 poly. there are different approaches to tackle these problems and it depends on how much time you have and how much efforts you wnt to put into. you can just model a lowpoly door and put it right in unity, you can just paste a photo on a box object, you can build a lowpoly object on top of your highpoly and bake textures (including normal maps). you also have to think in terms of what details will be visible in your scene. would a person notice the hinges of the door? the pipes under the sink? the bottom of a sofa? and things like that. how many faces one needs on a door knob? its not like a person stops and zoom in a door knob to check its details, a sphere with 12-18 subdivs is enough to look alright as a door knob.

baking highpolies on lowpolies is certainly the way to go but its a tedious process. you dont always need to do projection mapping either. for examples walls dont need to be high geometry nor the ceilings or floor. picture frames are something you can use in many projects so you can do projection mapping for picture frames and make diffuse/ao/normal maps for them, you can do the same for furniture. it requires time and effort but you will slowly build your library.

the best approach is your do some test with your model, import it unity, see its performance. then check which objects have high poly counts, start modifying them.

if you need any help let me know, ill try to guide you with what i know.

Link to comment
Share on other sites

How would you recommend modeling the terrain for this scene? I need it to be farily accurate for the developer so he knows what our regrading will be like. The other item of question is how would you handle the exposed bar joists in the open roof areas? Those things can be pretty poly heavy even if I use 3 sided polys for the geometry in max!

 

 

KEDCBLDGANDSITE_REVISED.jpg

KEDCBLDGANDSITE_REVISED1.jpg

Link to comment
Share on other sites

How would you recommend modeling the terrain for this scene? I need it to be farily accurate for the developer so he knows what our regrading will be like. The other item of question is how would you handle the exposed bar joists in the open roof areas? Those things can be pretty poly heavy even if I use 3 sided polys for the geometry in max!

there are two options for you to bring the terrain in unity,

1st is using a plugin for unity its called "Toms Terrain Tool" it allows you to import terrains from different softwares such as terrage, worldmachine etc.

2nd option is to model the terrain in 3ds max and import it in unity.

I think for you 2nd option is better since you do not need advance features of toms terrain tool. where did you generate the terrain? do you have the contour lines for the terrain in max? when i make terrains in max, i 1st generate a terrain with contour lines then i manually model a very lowpoly terrain on top of that.

as for the exposed joists, how many polys are we talking about here? and how many polys in each joist, i think unity can handle these joist even with 6 sided poly. just do some tests bring the model in unity with 6 sided polys and if its too heavy reduce it to 3. but i think 6 will work without giving any trouble.

Link to comment
Share on other sites

Thanks for the responses so far!

Regarding the site...I think I will export the mesh from Max into Unity and then create a native terrain in Unity that basically conforms to the shape of the imported MAX mesh, then delete the MAX mesh. I like working in each software's own native geometry when I can. It's more predictable :)

 

As far as those barjoists...they are each 1300 polys once in max. So, first of all, I will remodel a lowpoly version in MAX (I should be able to cut the polys in half at least) then I will only repopulate the actual model with half of the barjoist that was shown in the revit model. I mean, they are not going to build the structure off of this anyway! I can take some liberties!! :)

Would you guys texture this in max and bake the whole thing or wait and do it in Unity?

I have Flatiron and VRAY in my toolset so I could bake the lighting and textures in MAX..How much harder is it in Unity if I just start texturing from scratch in Unity?

Again I am trying to figure out the best workflow for projects such as these...

Link to comment
Share on other sites

i think youll find it difficult to sculpt unity terrain to your terrain but you dont lose anything in trying and also you can not cut holes in uni terrains.

1300 poly is high for one joist, you should post one of the joist and let us see how much it can be modified.

you have to texture the model in max, you can not texture it in unity. you can only bake lightmaps in unity using beast. so in case you choose max baking use uv channel 1 for main texture and 2 for totallightingmap. flat iron does that all itself. in fact you can select the whole model and specify the no. of maps you want to create and size and bake it all at once. its not as optimized as doing it all manually but gets you there fast.

if you decide to use beast you dont have to worry abt the uv for lightmaps, unity will handle it itself. just select the scene and bake lightmap. i personally do not like to use lightmapping in unity. even though its easy but the quality is not there and vray and 3ds max render to texture gives you more flexibility.

but hey you dont lose anything by trying to bake lightmaps with beast, just prepare your model, use uv1 for all textures (which youll use anyway) then set up lights in unity and try baking with beast. whole setup shouldnt take more than hour or two. if youre not happy then bake lightmaps in max.

Link to comment
Share on other sites

What am I missing here? I can't texture in Unity?

http://unity3d.com/unity/quality/materials If I have UV's I should be able to map textures in Unity, even though I probably wouldn't. MAX is very familiar for me in the modeling and texturing areas.

I will export out a max file with a native REVIT FBX barjoist in it and repost soon.

Edited by HawkPoint3D
added info
Link to comment
Share on other sites

A few years ago in 2010 I did a Unity 3D model of a dorm. It worked out great, but took a massive amount of work. The poly counts were through the roof. It was a Revit Model, then converted to max, then texture baked in Max. I had to convert all materials to Standard and I found a script on Scriptspot for the conversion. I did some small tests regarding the texture baking process, but once I had that down it worked great. I had to control the size of my baked maps though. I believe anything larger than 2000 pixels would automatically be compressed to a smaller pixel size. I didn't know what was going on at the time, but I was on here back then talking about all those things...

 

I should try messing with Unity again just to see how much it's changed. Once I finished that model, I wasn't to eager to get back into doing another one right away. It's still fun to walk through and we still show clients once in awhile. I hook up a PC Playstation controller to my machine and the user can navigate and stuff. I even have sounds in certain areas. Lot's of fun once it's working.

 

Those polygons though....really really awful coming from Revit, but Revit and max are two very different beasts. It would be great if in the near future there is an automated and intelligent conversion process for Construction files and Visualization files. Some way simple things like doors and windows can be converted...into low poly geometry.

 

Adam

Link to comment
Share on other sites

I noticed in REVIT 2013 when I exported to FBX format, there was a little flag box to check for LOD...Wonder what that does in the background :). I have pretty much come to the conclusion that everything from REVIT except walls, roofs, monolithic stairs, concrete surfaces, can stay, since a box is a box. Doors, windows, plumbing fixtures, furniture, electrical....etc, bye bye all should be done in max.:mad:

 

btw...saw this plugin developed recently for MAX from the folks that make lightwave scripts for architectural projects, http://www.futurarch.com

pretty kewl...but I bet you could generate a high poly model with it pretty easily!!

Link to comment
Share on other sites

when i said you cant texture in unity i meant you cant manipulate uvw map. you can increase no. of tiles and offset the tiles but thats abt all you can do without purchasing a plugin. so youre doing all your texturing in max and import the model in unity and you can manipulate the material in unity for its various settings such as specular or bump or reflection etc.

i checked the barjoists you posted. its fine i think, it depends on the distance. how far are they going to be from camera?

the corners of the bars in the middle are sticking out. you should break the vertices if you used splines to generate this geometry.

there is another cool feature in unity, which is you can build your own LOD objects, for a distance more than 3m you can use lowpoly version and for closer distance the highpoly. if all of your joists are same you can make a prefab and place them in unity that will save more draw calls.

Link to comment
Share on other sites

The best advice I can say is to not use Revit what so ever. Here's an example from my testing when I wrote my masters thesis on this subject:

 

A properly created single family home exterior using modular assets where possible: 2,761 tris, 6,648 verts.

The exact same home exterior imported from Revit: 26,676 tris and 23,118 verts.

 

Now if you are aware of real time optimization, you'll know that you need to keep your tris and verts down to make sure you can run the scene at more than 2 FPS.

Link to comment
Share on other sites

The best advice I can say is to not use Revit what so ever. Here's an example from my testing when I wrote my masters thesis on this subject:

 

A properly created single family home exterior using modular assets where possible: 2,761 tris, 6,648 verts.

The exact same home exterior imported from Revit: 26,676 tris and 23,118 verts.

 

Now if you are aware of real time optimization, you'll know that you need to keep your tris and verts down to make sure you can run the scene at more than 2 FPS.

i hope you meant not to use revit for visualization, other than visualization its pretty useful. doesnt revit come with any visualization plugin? i know archicad/graphisoft has a software that allows you to import archicad models and prepare a real time visualization if i remember it right it even has a lightmap solution.

Link to comment
Share on other sites

i hope you meant not to use revit for visualization, other than visualization its pretty useful. doesnt revit come with any visualization plugin? i know archicad/graphisoft has a software that allows you to import archicad models and prepare a real time visualization if i remember it right it even has a lightmap solution.

 

Yeah, I meant Revit isn't the best for going to game engines and should be avoided at all costs. Revit does have a few plug-ins, most notably Autodesk Showcase but, as with any real time app + Revit, anything more than a box with windows runs sluggisly on anything but the latest space computer. TwinMotion has something for Revit as well, but see the same issue as with Showcase.

 

Revit just sucks at real time, there are no two ways at splitting the issue. The draw culls and vert/tri counts don't lie as to why it's not the best tool to use. Why do you think any example that Autodesk or any other developer that shows off Revit and real time is always this super simple boxy house? If you throw any normal sized model at it, your computer coughs and chugs like a 12-pack a day smoker trying to run the Boston Marathon.

 

I'm barely even a fan of Revit for typical rendering in Max. I'm never keen on having to remodel 50-75% of a project when I could have done it the right way and be done with it.

Link to comment
Share on other sites

to convert any materials coming from Revit (Autodesk Materials), you can use the Autodesk Material Converter, it converts materials and maps to Arch&Design/V-Ray and from there to Standard. I made it with the intention to use it in VR programs like Unity. So only supported maps will remain. Of course this means you loose some quality, but it's as good as it can get with standard materials and supported maps.

Check it out at http://3dstudio.nl/producten/maxscripts/autodesk-material-converter (it's in english)

Link to comment
Share on other sites

Scott,

I agree that REVIT should never be used if at all possible for "Real-time" viz applications.

I make a living using REVIT for commercial building design and it is the premier software title for that process at least state side.

I have never experimented with just taking a couple of walls from REVIT and exporting to MAX, then recreating those same walls with native MAX and comparing the geometry counts. My belief is that a single 6 sided wall will still have 12 polys any way you cut it. you could shave off a few polys in max like get rid of the top and bottom polys, or in extreme cases...just use a single plane in max to represent both the inside and exterior sides of a wall. This can be a pain though when cutting in any additional detail when creating interior and exterior accruate spaces while making sure that you don't have any "lighting leaks" at rendering time. If one has to save every last poly though it all has to be thought out for sure!

Link to comment
Share on other sites

i havent used revit model in ages but i remember there used to be some issues with co planar faces, there were many threads here asking why there are black patches in rendering.

btw what kinda geometry does revit produce when there is a window or door in the wall? we all know max's own boolean is a pain to work with and many of us cut those holes manually.

Link to comment
Share on other sites

Sajid,

Here is what Autodesk describes in the FBX export description in REVIT 2013:

 

here is some information from the development team that worked on those improvements:

With “Use LOD” ON you will get a more facetted model, but a smaller file size. The reverse is true if LOD is OFF. If LOD is OFF, your model will be smoother and more true to ‘actual geometry’ but the file size will be much bigger (and exporting to FBX will take longer). You are correct: LOD means Level of Detail (but it does not refer to a view's detail level as defined in Revit). It applies to only showing what is deemed ‘essential’ at a certain zoom level, or detail level. Revit shows geometry in a faceted manner when zoomed out – and smoother when zoomed in.

When “Without Boundary Edge” is turned ON, you will not see the lines that appear wherever two surfaces come together. This provides a less ‘mesh’ like model once opened in 3DSMax and thus has a less ‘constructed’ look to it – appearing more as it would in real life.

 

Attached is a zip file with a simple wall with a door and window for you to see what is happening...but 224 polys for that simple bit of geometry is way outta line to me for a comparison to native max modeling! :) I can quickly see the co-planar faces!

REVIT_2_MAX_EXPORTS.zip

Link to comment
Share on other sites

Sketch-Up actually has some really nice tools for "baking" textures onto models. I had a high quality model of the office that I work at that I rendered orthographic elevations of using VRay. Then I took those renderings and a very simple and basic model that I quickly did in Sketch-Up and used these tools to upload a semi-realistic baked model for use in Google Earth.

 

The tool is called "Position Texture Tool":

http://support.google.com/sketchup/bin/answer.py?hl=en&answer=94883

 

These are the coordinates if you want to check out the result I got in GE:

36.349573,-94.124626

 

What would be great if there was a tool like Flatiron that would not only generate the baked textures and coordinates, but also create the simplified geometry with the proper unwrapped coordinates. Maybe some day!

Link to comment
Share on other sites

  • 3 months later...

hi guys, sorry to dig up a bit of an old thread. For the past week I have been trying to establish a workflow from Revit to Unity, with its textures (I have many large models, I really want to avoid slow rendering processes). I wanted to know if there was a way of doing it (be it another program, or a script) without having to render everything again. I've tried going through 3ds Max, but this seems to have massive problems with the geometries and doesn't export the textures. What would you suggest? I need a moral boost. Thanks!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...