Announcement

Collapse
No announcement yet.

Runtime Mesh Component - Rendering high performance runtime generated meshes!

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

    Does it work with 4.18 from github and how do you stop it compiling with your project. Last time I tried it from github it caused my project compile times to double cause it wanted to compile the RMC plugin every time.

    Comment


      Is there any documentation on how to use the RMC with threads?

      Comment


        Originally posted by wilberolive View Post
        Does it work with 4.18 from github and how do you stop it compiling with your project. Last time I tried it from github it caused my project compile times to double cause it wanted to compile the RMC plugin every time.
        I don't know why you would need to recompile a plugin, that has already been compiled. And I haven't tested it yet, but so far, whenever Koderz updated the plugin for an UE release, it worked for me. I would assume this to be the same. There might not even be a need to update the code base, so you should just try it.

        Comment


          I just updated to 4.18 and got the latest github version of the RMC. It failed to compile, because there seems to be just a small error, probably just a typo or sudden API change I would guess.

          In RuntimeMeshComponentDetails.cpp, on line 28,
          Code:
          SelectedObjectsList = DetailBuilder.GetDetailsView().GetSelectedObjects();
          Should be changed to:
          Code:
          SelectedObjectsList = DetailBuilder.GetDetailsView()->GetSelectedObjects();
          In order to compile properly. For some reason the pointer returned by GetDetailsView() wasn't being dereferenced.

          Comment


            Originally posted by Zapheroc View Post
            I just updated to 4.18 and got the latest github version of the RMC. It failed to compile, because there seems to be just a small error, probably just a typo or sudden API change I would guess.

            In RuntimeMeshComponentDetails.cpp, on line 28,
            Code:
            SelectedObjectsList = DetailBuilder.GetDetailsView().GetSelectedObjects();
            Should be changed to:
            Code:
            SelectedObjectsList = DetailBuilder.GetDetailsView()->GetSelectedObjects();
            In order to compile properly. For some reason the pointer returned by GetDetailsView() wasn't being dereferenced.
            You inspired me to update from 4.16 to 4.18. Got it working fine.

            For anyone else wondering, just put the RMC in your project’s plugins folder. Then run a compile to let it compile the plugin. Finally, move the plugin to the engine plugins folder. This will then prevent the plugin being recompiled every time you rebuild.

            Comment


              Originally posted by BulleTime View Post
              Is there any documentation on how to use the RMC with threads?
              I have got RMC threaded, well the vertex generation part at least. I basically created a class extending FRunnable that handled the vertex generation of a subdivided plane and then when the thread finished I pass the indices and vertices over to the actual runtime mesh pointer and call CreateMeshSection and UpdateMeshSection with it. It scales very well, but for best performance you would want to pass all the vertices and indices in one batch and not section them. The only problem I'm facing right now with this implementation is figuring out what the indices should be for the vertices now that I'm passing it in as one batch. I put up a question on answerhub addressing this if you want to check it out:

              https://answers.unrealengine.com/que...eneration.html

              You should check out Rama's tutorial on multithreading, the implementation he outlined works very well for this use case.

              https://wiki.unrealengine.com/Multi-...Threads_in_UE4

              Comment


                I'm making a (free) plugin to generate shapes using RMC. My first shape, a circle, refuses to show up at all! Could you possibly tell me what I'm doing wrong:

                edit: I'm a moron.
                MeshShapes - Procedurally generated shapes in UE4 using RuntimeMeshComponent
                Last edited by duke22; 11-15-2017, 10:38 PM.
                George Rolfe.
                Technical Coordinator at Orbit Solutions Pty Ltd.

                Comment


                  Originally posted by duke22 View Post
                  I'm making a (free) plugin to generate shapes using RMC. My first shape, a circle, refuses to show up at all! Could you possibly tell me what I'm doing wrong:
                  Are you sure your code executes? Use breakpoints or Logs/PrintMessages.
                  Is your material != nullptr? Is your material double sided? If not try viewing your actor from a different. angle.
                  Are your circle outer vertice distances correct (radius)? If they are to close to the center you will see nothing. Use Debugfunctions to display the vertex positions to be sure (UKismetSystemLibrary:: DrawDebugSphere).

                  Test with URuntimeMeshLibrary::CreateBoxMesh (feed the resulting data into CreateMeshSection).

                  Comment


                    Originally posted by ujrkingdom View Post

                    I have got RMC threaded, well the vertex generation part at least. I basically created a class extending FRunnable that handled the vertex generation of a subdivided plane and then when the thread finished I pass the indices and vertices over to the actual runtime mesh pointer and call CreateMeshSection and UpdateMeshSection with it. It scales very well, but for best performance you would want to pass all the vertices and indices in one batch and not section them. The only problem I'm facing right now with this implementation is figuring out what the indices should be for the vertices now that I'm passing it in as one batch. I put up a question on answerhub addressing this if you want to check it out:

                    https://answers.unrealengine.com/que...eneration.html

                    You should check out Rama's tutorial on multithreading, the implementation he outlined works very well for this use case.

                    https://wiki.unrealengine.com/Multi-...Threads_in_UE4
                    Would you like to share some snipped how it is implemented? I'd like to do the same and learn threading in UE along way. =)

                    Comment


                      Originally posted by duke22 View Post
                      I'm making a (free) plugin to generate shapes using RMC. My first shape, a circle, refuses to show up at all! Could you possibly tell me what I'm doing wrong:
                      I'm looking into your code as I'm about to do the same for my project.. ty for sharing.

                      Comment


                        Unless i'm mistaken, 4.18.1 broke this plugin in a major way :\. I'm fixing it now.

                        edit: I'm mistaken, my project has gone bonkers.
                        Last edited by duke22; 11-20-2017, 01:37 AM.
                        George Rolfe.
                        Technical Coordinator at Orbit Solutions Pty Ltd.

                        Comment


                          Well the plugin does what I need it to do right now, except you can't edit parameters in any of the created actors. UE4 drives me up the wall sometimes. Everything is a component with an actor wrapper (that has the problems I mentioned) but if you're doing things programmatically this doesn't matter. You can create the following 2D shapes, will fill and stroke:
                          Circle
                          NGon
                          Rectangle
                          Square

                          There's also a generic polygon in the works but I haven't tested it thoroughly. I'm using this in an active project so it will get updated often. I'll give it it's own post when this parameter business is fixed.

                          https://github.com/GeorgeR/MeshShapes
                          George Rolfe.
                          Technical Coordinator at Orbit Solutions Pty Ltd.

                          Comment


                            Hey guys... just a question... i'm trying to use this plugin with tesselation (on the dynamicaly generated mesh) and it doesn't work
                            https://forums.unrealengine.com/deve...-m-doing-wrong

                            (unless i'm doing something stupid, which i'm sure i am)

                            It does work for when cooking this mesh... so i'm guessing it's a limitation of the runtime generated mesh (and the procedural too)

                            Any ideas?

                            Comment


                              Originally posted by HeavyBullets View Post
                              Hey guys... just a question... i'm trying to use this plugin with tesselation (on the dynamicaly generated mesh) and it doesn't work
                              https://forums.unrealengine.com/deve...-m-doing-wrong

                              (unless i'm doing something stupid, which i'm sure i am)

                              It does work for when cooking this mesh... so i'm guessing it's a limitation of the runtime generated mesh (and the procedural too)

                              Any ideas?
                              We are using it with tesselation in Editor and Standalone without issue. You sure your material is properly setup? Does your material work on StaticMeshes? You sure its the right material, maybe there is a similar one without tesselation? Ramp up your tesselation to higher values just to test it?

                              Comment


                                Yes... the material works well in static meshes... it even works well when i Cook the RuntimeMesh to a Static Mesh (which is really weird)
                                So i don't think it's an issue of how i'm creating my runtime mesh, because the cooked mesh would fail too (unless i'm mistaken)
                                In the post i attached, you can see that it's an issue of depth fighting

                                Comment

                                Working...
                                X