Announcement

Collapse
No announcement yet.

[New Tool] Rama's Instanced Static Mesh Editor Feature (pull request)

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

    [New Tool] Rama's Instanced Static Mesh Editor Feature (pull request)

    Rama's Instanced Static Mesh Editor

    You Can Support Editor Integration!


    Dear Community,

    I've submitted my Instanced Static Mesh Editor Feature to Epic! You can support it if you would like it added to the engine!

    Watch my fps go from 9 back to 120 after I convert all the static mesh actors in the scene into one instanced static mesh with a single key press!

    The process can be reversed at any time to make further edits!

    ~~~

    Plugin Version

    You can try out the plugin version of my pull request any time!

    More Info
    https://forums.unrealengine.com/show...l=1#post243810


    ~~~

    Video 1

    This first video is the plugin version, where I demo the core usefulness.

    My fps goes from 9 back to 120 once I convert all the static mesh actors into an instanced static mesh.

    I then demonstrate going back in and editing a single instance and then restoring the whole structure to being an instanced static mesh actor again.

    Massive performance gains!



    ~~~

    Videos

    Video 2 ~ Editor Integration



    ~~~

    Video 3 ~ Blueprint Support!



    ~~~

    Full Description Here!
    https://forums.unrealengine.com/show...l=1#post244125

    ~~~

    GitHub Support

    You can support this pull request on Github here!
    https://github.com/EpicGames/UnrealEngine/pull/917

    Enjoy!

    Rama
    Last edited by Rama; 10-13-2015, 12:29 AM.
    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

    #2
    Nice work! Thanks for sharing Rama.

    Comment


      #3
      What can I say?.. Do want. In terms of preventing headaches, the scene cleanup aspect of this is almost as important to me as the performance gain. Unreal's outliner is god awful. Can't wait to get my hands on it.
      http://www.archetypestudios.net/

      Comment


        #4
        Freakin' awsome, good job Rama!

        Comment


          #5
          What a great addition EverNewJoy aka Rama
          Your devotion to the UE4 Community is unquestionable and outstanding
          Regards,
          Benjamin D. Smith

          Founder & CEO | Binary Sword Pty Ltd
          Currently working on: ODIN Tracker (UE4 Plugin)

          Comment


            #6
            Rama does it again!

            This feature will change lives. I was forced to used Instanced Static Meshes for repeatable Actors due to poor performance when Level Editing on my low spec workstation. I also use rudimentary Static to Instanced Static Mesh conversion process in GOLEM Construction. This feature will improve the GOLEM construction process Ten-fold.
            GOD of DREAMs: A Unique FTPS/RPG Sandbox MMO

            Comment


              #7
              Alright Rama! Very nice and definitely a needed feature. Man I needed this last month... lol. I created a BP literally last month that toggles between ChildActorComponents and using a separate InstancedStaticMeshComponent for every unique mesh to achieve the same effect. Great job!

              Comment


                #8
                This is a great feature, and I see the improvement in the editor right away FPS-wise, but for some reason building the project makes all the new instanced mesh actors dissappear from my game! Their shadows remain, but otherwise they're gone. Trying to figure out what I did wrong...

                Comment


                  #9
                  Is this for real? It sounds incredible! Bravo!
                  I'm an artist! Check out my work at https://cinebst.wixsite.com/cinebeastart and hit me up!

                  You can e-mail me at cinebst@gmail.com.

                  Comment


                    #10
                    This is really cool Rama, and very useful for sure.

                    However, it looks more like you are combining meshes into one and not really instancing them. If they were instanced then each one would still be its own separate actor in the world individually moved and rotated at will and not the single mesh in the end. I'm not trying to nitpick, but those would be 2 pretty different things going on there. Though they more or less achieve the same end result performance wise, just with different aspects exposed to the end user.

                    Or am I missing something on how it works?
                    Last edited by JohnJ; 03-11-2015, 10:31 PM.

                    Comment


                      #11
                      Originally posted by JohnJ View Post
                      Or am I missing something on how it works?
                      Yes :P

                      There is only one mesh, but its not all of them combined - its just the original 'box' or what ever static mesh you use.
                      Hence, if you want to use this feature, all the static meshes you combine must be exactly the same.
                      This takes all the matching meshes, get the world transform information for each and combines them all into one actor.
                      It can then tell the rendered to render the mesh X amount of times based on the transform info it got earlier.
                      Rule#21: Be polite, be professional, but have a plan to kill everyone you meet.

                      Comment


                        #12
                        Nice Rama, just a question, do you take care of octree partition when you do this or just replace everything with 1 mesh. I am asking you this because if you take care of octree, this can be super awesome, else there is room for optimization, because you will upload to video ram just whats visible instead a huge mesh.

                        Sure the ideal case to minimize states changes are to render once all. But that's not always possible. In that example you actually cheat a bit, because you use same material for all meshes

                        Edit: all I've wrote is ****, for a second I was thinking you are doing a mesh consolidation I did even think engine don't do auto instancing.
                        Last edited by TDoro; 03-19-2015, 01:51 PM.

                        Comment


                          #13
                          pure awesomeness

                          Comment


                            #14
                            Please help! I love the plugin, it's amazing, but while things look fine in the editor, when I package my project all the new instanced meshes disappear and aren't visible at all in the finished game. I am sure I'm doing something wrong, but for the life of me I can't figure out what. 4.7.2 and it's a C++ project, or rather a project that started out as a Blueprints one, but that I've added a couple of C++ classes to over time.

                            Comment


                              #15
                              Wow! This reminds me a bit of Farbrausch and their 64kb demos....
                              LEGENDS of EPICA [Twitter] [Facebook] [YouTube] [Vimeo]

                              Comment

                              Working...
                              X