Announcement

Collapse
No announcement yet.

Revit->3dsMax->Unreal Workflow

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Revit->3dsMax->Unreal Workflow

    Hey guys! Up to this point, a lot of the threads relating to Revit--Unreal pipeline are 2-3 years old. To get this thread extremely specific, I would like to talk within the environment of an architecture student (undergrad or grad) that is interested in using the engine to visualize their project through stills, movies or game modes.

    A little bit of background of my own history with UE4 and architecture related software:

    - our work is geometry-heavy. Project can contain millions of triangles, and it can be disheartening to export everything in separate "blocks" to put them back up in the engine
    - we work mostly with Rhinoceros 3D, sketchup and revit, because they offer quick visualization options for stills and other 2D graphics (plans, sections, perspectives,etc)
    - these programs do not export UV information natively, so the step of importing the geometry in 3dsmax or blender is absolutely necessary.
    - as architecture students, we are typically not completely knowledgeable with 3dsmax because it is not a standard architecture software for construction drawings. (lack of scale accuracy and other reasons)
    - we depend on forums to find a quick fix to our problems.


    With that said, these are my current steps to transfer my project in revit to unreal:

    1. isolate building in revit, export 3d view as fbx (initial file size 51MB)
    2. import fbx into 3dsmax, to conserve the scale of the building
    3. group similar elements (mullions, columns, walls) to reduce file size
    4. i dont know how to do this step add secondary UV channel for light mapping
    5. Export file as fbx from 3dsmax, smoothing groups, turbo smooth and preserving edge (?)
    6. Importing fbx into unreal engine (post 3dsmax file size 120MB), importing normals and unchecking the box to import materials and textures (less loading time)
    7. setting fbx collision setting to simple (per poly)
    8. Place fbx into level, set character start -> and walk through the project!


    Unfortunately, this took 4 months to figure out (a lot of wasteful fbx) and when I build the lighting, the UV are 99.9% overlapping. I know know that the reason is because I just have a default UV map. The problem is, there is no one on earth that has documented adding a second UV channel on a project efficiently. Because sure, I was able to add UV mapping, but it tripled the file size to 530MB. I have a very powerful computer (4.16Ghz and 32gb of RAM) but trying to load that into unreal just made it crash. EVERYTIME.
    So here's the deal:

    1. As architecture students, we dont have the time to export every thing separate because that slows down our workflow. You all have to remember that the use of the unreal engine is to provide critical supplemental 3d graphics to our reviewers, who have never seen our project before and never will (because it will never be physically built).
    2. We love textures! We spend a good chunk of time organizing a set of textures that speak to our project. Having a lot of overlapped UV textures (usually green or gray) just doesnt do it. Even if there was a blueprint to multi-place texture to everything, that would be helpful too.
    3. Architecture software is expensive, but general 3d modeling is mostly free (blender, unreal, unity, etc). If there's anybody in the architectural field (typically in the academic setting) that has access to software (rhino, revit,etc) please add to this thread in any way you can!

    Thanks for the input.

    Here's my youtube channel if you're wondering what I'm doing with unreal
    @charliesuzzo

    #2
    Do you really need 3ds max in between?

    To add a second UV set for light mapping, do the following:

    1) Select the object
    2) Click the "modifiers" tab (the second tab on the right hand side)
    3) Select the "Unwrap UVW" modifier to add it to the object
    4) Bump the UV coordinate index of this modifier up one to make a second set of coordinates
    5) Click the "polygons" sub-selection (red square button)
    6) Press ctrl-A to select all polygons
    7) Click "edit UV coordinates"
    8) Select "Mapping -> Flatten Mapping" and press OK
    9) Close the mapping editor again
    10) You're done!

    I put up a quick tutorial with screen shots for this:

    http://www.mindcontrol.org/creating-...pping-channel/


    However, when you import geometry into Unreal Editor, it can generate light mapping coordinates for you. That might be easier.
    Also note that, for production game use, you'll want to use these auto-generated coordinates as a starting set, and then stitch and move them around by hand to create a "better" mapping that makes more efficient use of texture space.
    For needs where you're not pushing a game console with limited resources to the max, though, this method is just fine!
    Last edited by jwatte; 04-24-2016, 06:14 PM.

    Comment


      #3
      4. i dont know how to do this step add secondary UV channel for light mapping

      I believe a lot of Max guys are using a script to quickly lightmap - try a search in the forum.

      Comment


        #4
        Originally posted by RI3DVIZ View Post
        4. i dont know how to do this step add secondary UV channel for light mapping

        I believe a lot of Max guys are using a script to quickly lightmap - try a search in the forum.
        yeah exactly, What you want to be using is steamroller, it's a free script for max.

        It is very rare that this does not do an good job for architectural meshes.

        Comment


          #5
          In my experience, TS Tools is the way to go in terms of transferring quickly a ton of separate meshes from 3ds max to UE4. It's what I've used to great success.

          Comment


            #6
            Originally posted by Ravneson View Post
            In my experience, TS Tools is the way to go in terms of transferring quickly a ton of separate meshes from 3ds max to UE4. It's what I've used to great success.
            I think this can be good for certain things, but for the actual house I prefer it not to be 0'd off before imported. That way if there is any structural changes to the house I can just import the new meshes and just slot them into position.

            There is a tool which is similar called greg's tool, which looks like your TS tools

            Comment


              #7
              Originally posted by jwatte View Post
              Do you really need 3ds max in between?

              To add a second UV set for light mapping, do the following:

              1) Select the object
              2) Click the "modifiers" tab (the second tab on the right hand side)
              3) Select the "Unwrap UVW" modifier to add it to the object
              4) Bump the UV coordinate index of this modifier up one to make a second set of coordinates
              5) Click the "polygons" sub-selection (red square button)
              6) Press ctrl-A to select all polygons
              7) Click "edit UV coordinates"
              8) Select "Mapping -> Flatten Mapping" and press OK
              9) Close the mapping editor again
              10) You're done!

              I put up a quick tutorial with screen shots for this:

              http://www.mindcontrol.org/creating-...pping-channel/


              However, when you import geometry into Unreal Editor, it can generate light mapping coordinates for you. That might be easier.
              Also note that, for production game use, you'll want to use these auto-generated coordinates as a starting set, and then stitch and move them around by hand to create a "better" mapping that makes more efficient use of texture space.
              For needs where you're not pushing a game console with limited resources to the max, though, this method is just fine!
              This puts things into a different light! Thank you for your time and guides!
              I test-ran this method by following this sequence:

              Click image for larger version

Name:	001_revit geometry.JPG
Views:	1
Size:	272.9 KB
ID:	1105327 Geometry from revit
              Click image for larger version

Name:	002_revit geometry detail.JPG
Views:	1
Size:	77.6 KB
ID:	1105328 detail of geometry (glazing)
              Click image for larger version

Name:	003_revit export fbx prompt.JPG
Views:	1
Size:	48.7 KB
ID:	1105329 prompt export as fbx from revit (checked both LOD and boundary)
              Click image for larger version

Name:	004_fbx import into 3dsmax.JPG
Views:	1
Size:	125.5 KB
ID:	1105330 import dialogue in 3dsmax
              Click image for larger version

Name:	006_fbx import into 3dsmax.JPG
Views:	1
Size:	55.2 KB
ID:	1105331 in 3dsmax (605 objects)
              Click image for larger version

Name:	008_fbx uv editor.JPG
Views:	1
Size:	55.0 KB
ID:	1105332 when I tried to add a uv channel and flatten it, it was already flattened and all messed up.

              From your guide, I noticed that the teapot is one, editable mesh. Revit unfortunately is very messy, modeling in a "kit of parts modeling" making it hard to have clean meshes. Is there a fix to the uv maps or is it just a modeling issue at this point?

              Thanks for your input once again!

              Comment


                #8
                3ds Max has a "collapse selection" utility on the very far right. (Rightmost small tab, scroll down to "collapse", select all, press collapse button)
                This makes all things that are selected into a single mesh.
                You should then be able to do the "single mesh mapping" job.

                Given that all of this is scriptable (as is FBX export) you could build your own utility/script that does all this, if you're so inclined.
                (Some of those light mapping scripts above would probably be a good start)

                Comment


                  #9
                  Originally posted by jwatte View Post
                  3ds Max has a "collapse selection" utility on the very far right. (Rightmost small tab, scroll down to "collapse", select all, press collapse button)
                  This makes all things that are selected into a single mesh.
                  You should then be able to do the "single mesh mapping" job.

                  Given that all of this is scriptable (as is FBX export) you could build your own utility/script that does all this, if you're so inclined.
                  (Some of those light mapping scripts above would probably be a good start)
                  I was able to:
                  1. use steamroll to correctly flatten and add uv channels to the meshes.
                  2. Collapse similar items (all the columns, etc) into a single mesh
                  3. Exported a before and after collapse command, and the file size increased!!
                  I reduced the number of entities (from 3000+ to 124) and the file size is higher!

                  Click image for larger version

Name:	009_fbx file size.JPG
Views:	1
Size:	18.2 KB
ID:	1105338 should i be worried?

                  I've purchased/downloaded the scripts mentioned above, it will take me a while to learn how to use them (i dont know how to script... yet)
                  Will any of them help reduce the file size to be loaded into unreal? (ive been loading with the combine meshes checked)

                  Comment


                    #10
                    I reduced the number of entities (from 3000+ to 124) and the file size is higher!
                    Yes! That's a draw-back, but as long as you don't actually run out of RAM in the machine (or graphics card) that's not a problem.
                    The reason is that, when you have 300 separate steel beams, each instance says "put an instance of that steel beam in this place," which just stores a reference to the original beam, plus its coordinate transform.
                    When you collapse all the objects to one, it replicates the vertices of that steel beam instance into a pre-transformed copy for each instance, making essentially one big, "custom formed" steel beam structure.
                    This ends up being more efficient for the rendering engine/hardware, so this is almost always actually a good thing. Except if you have to send files to a client over a slow network :-)

                    Comment


                      #11
                      Originally posted by jwatte View Post
                      Yes! That's a draw-back, but as long as you don't actually run out of RAM in the machine (or graphics card) that's not a problem.
                      The reason is that, when you have 300 separate steel beams, each instance says "put an instance of that steel beam in this place," which just stores a reference to the original beam, plus its coordinate transform.
                      When you collapse all the objects to one, it replicates the vertices of that steel beam instance into a pre-transformed copy for each instance, making essentially one big, "custom formed" steel beam structure.
                      This ends up being more efficient for the rendering engine/hardware, so this is almost always actually a good thing. Except if you have to send files to a client over a slow network :-)
                      Its my understanding that instancing of beams would be more efficient, not collapsing like objects into one mesh.
                      I'm also struggling to find a good revit workflow. I've popped in and out of the community multiple times over the past 2 years to see how its progressed. I don't have much time to experiment unfortunately. Seems that steamroller is something I should try.

                      Comment


                        #12
                        Originally posted by Imsopov View Post
                        I think this can be good for certain things, but for the actual house I prefer it not to be 0'd off before imported. That way if there is any structural changes to the house I can just import the new meshes and just slot them into position.

                        There is a tool which is similar called greg's tool, which looks like your TS tools
                        TS tools has a check box to determine if you want it 0'd or not.
                        James Gallagher

                        Architectural Technologist, P3Architecture Partnership

                        Comment


                          #13
                          I went through this whole process a couple years ago, trying to find a perfect workflow from Revit, and I can tell you there isn't one. You have to be quite dynamic when using a Revit workflow. Some objects you can pass through steamroller and right into UE4 in a couple minutes, other objects have to be remodeled and unwrapped by hand in 3ds max. Revit just isn't made to work well with UE4, 99% of the families you use will look horrible and anything curved or round is useless. It's fine to use the basic structures from Revit but any details should be remade in 3ds max (most Revit projects shouldn't have a lot of modeled details anyways).

                          I know it's not the solution you were looking for, but after a few years its the best solution I can find. There are some really great tools for 3ds max that will help the process like Steamroller, and TS_Tools mentioned above. Another good one that helped me with 3ds Max(coming from an CAD/Revit background) is PolylinePro, it allows you to model in 3ds max more like you would in Revit/Sketch-up.

                          I can try and help you with anything you need or any specific questions. Just ask away and I'll keep an eye on this thread.
                          James Gallagher

                          Architectural Technologist, P3Architecture Partnership

                          Comment


                            #14
                            Thanks for the input! I've finally managed a really easy workflow so far:

                            -> import fbx into 3dsmax
                            -> collapse similar items, reducing static mesh items to a manageable volume
                            -> import into unreal without combining meshes
                            -> force precomputed lighting to visualize without UV mapping errors
                            -> set complex collision as simple
                            -> place material
                            -> build and done!

                            Now of course forcing precomputer lighting gets rid of the need of having secondary UV, but for the final product that I was intending, this worked out just fine!

                            Comment


                              #15
                              This it the same thing that I am trying to do and I am also struggling with the UV maps. What do you mean by "force precomputed lighting to visualize without UV mapping errors?" I am trying to take my Revit models into 3ds, then into UE4. I am getting the errors when building lighting of Object has wrapping UVs, or Lightmap UV are overlapping. You can see in the screenshot what my model looks like after building. I'm assuming that crazy pattern is because of the lightmaps?
                              Click image for larger version

Name:	Screen Capture.jpg
Views:	1
Size:	46.1 KB
ID:	1108880

                              Comment

                              Working...
                              X