Announcement

Collapse
No announcement yet.

Runtime Mesh Component

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

    Migrated my project from 4.15 to 4.17.1 and there are many errors. Many of which are already listed in the pull request on the github repo for this. I was able to work through most of them except this one -

    1>D:\GameDesign\UE_4.17\Engine\Source\Runtime\CoreUObject\Public\UObject/Class.h(655): error C2280: 'FRuntimeMeshComponentPrePhysicsTickFunction &FRuntimeMeshComponentPrePhysicsTickFunction:perator =(const FRuntimeMeshComponentPrePhysicsTickFunction &)': attempting to reference a deleted function
    1>D:\GameDesign\KoreShanty-4.17\Plugins\RuntimeMeshComponent_v2.0\Source\RuntimeMeshComponent\Public\RuntimeMeshComponent.h(69): note: compiler has generated 'FRuntimeMeshComponentPrePhysicsTickFunction:perator =' here
    1>D:\GameDesign\UE_4.17\Engine\Source\Runtime\CoreUObject\Public\UObject/Class.h(990): note: see reference to function template instantiation 'bool CopyOrNot<CPPSTRUCT>(CPPSTRUCT *,const CPPSTRUCT *,int32)' being compiled

    Any ideas how I can fix this?

    Comment


      Hey Koderz,

      any news on V3? Eagerly waiting to get an updated version into my hands

      Comment


        And any news about colliders on mobile without recompiling sources?

        Comment


          Hello everyone! I am indeed still around here, and haven't forgotten about the RMC.

          First up, I'm going to try to actually push the 4.17 update this weekend (yeah, absurdly late) and going to go ahead and get it ready for 4.18 since I see it has branched so I can push the 4.18 update the day it comes out. I will go ahead and pick up async collision in v2 (the current version) and a couple other minor features/bug fixes.

          Now, for those of you awaiting v3. To be completely honest, it's not likely to be done for probably 6-8 weeks. The reason for this is I'm on the absolute tail end of my classes, so senior projects and stuff make for little time when combined with full time work. So while I will try to progress on it over the next 5 weeks (my remaining time) I can't guarantee anything. I will say though at the end of those 5 weeks I gain 2 days a week back in free time so my first priority after classes is getting v3 finally done. Not sure if that will be in time for 4.18 release, it depends on the release date of 4.18 but hopefully it won't be long after.

          So I can prioritize things, I'm curious to know what features you're most interested in?
          Runtime Mesh Component - The best way to render procedural/runtime created meshes! - Version 4.1 out now!

          Come talk about anything RMC or Procedural Mesh Related in our Discord!

          Comment


            Now for part 2... Catching up on questions... Be warned, this will be a giant post! I'm sure some of you have either given up on whatever caused you to ask these questions, or have found ways around them or the actual answer but I'll answer anyways for anyone in the future.

            Originally posted by Dustums View Post
            Actually, I spoke too soon about speaking too soon. It seems that if you use a Pixel Depth Offset in a shader, even a regular static mesh won't render in the Z Pre-Pass. However, RMC won't render in the Z Pre-Pass even with a simple shader that doesn't use PDO. RMCs do render in the Z Pre-Pass if using the Forward Renderer, but I need to use the Deferred Renderer for my project. Is there any way to get a RMC to render in the Z Pre-Pass with a Deferred Renderer? Am I missing something? I've even set "Early Z-pass" to "Opaque and Masked Meshes" under Project Settings-&gt;Rendering-&gt;Optimizations, but that didn't seem to help.


            I'll check into that. It should have been in depth prepass so not sure why it wasn't here.


            Originally posted by Mtimofeev View Post
            Another issue with simple collision here with UE 4.16.2 and the RMC from the marketplace. Basically the procedural meshes apparently have no collision or at least I every time I use the blueprint function "GetClosestPointOnCollision" for them I get the error "LogPhysics:Warning: GetDistanceToBody: Component (/Game/Maps/UEDPIE_0_evaluation.evaluation:PersistentLevel.Room_7.Floor) has no simple collision and cannot be queried for closest point."

            ...
            Originally posted by Mtimofeev View Post

            That's why I thought, that UseComplexAsSimpleCollision = true is a good idea. I thought the simple collision is supposed to be generated from the mesh collision in this case.

            Simple collision is never generated by the RMC. Unfortunately that's not a particulary simple thing to do, it takes something like convex decomposition which is nowhere near fast enough in non-trivial cases for a runtime generated setup. The engine for example uses V-HACD internally for generation in the editor if you want to know more.


            Originally posted by Tokodboy View Post
            Hy All

            I use the RuntimeMesh component in my construction script.

            I have a blueprint actor, which is dinamically add runtimemesh components and generate their sections.
            My question is:
            The contsruction script is always regenerate the RuntimeMesh component sections each time even so when the section datas and everything else is the same(not changed between 2 compiles)?

            The expected behavior is, if I don't change anything in the blueprint actor's variables then it shouldn't need to regenerate the runtimemesh component's sections.

            Only generate it when I edited the blueprint actor in the editor, but after I saved the level with the generated sections and reload the level then I want to use the saved state. The problem is when a level is loaded then the construction script is run and as I can see it regenerate the runtimemesh components too but the previously generation and the new is the same. In this case the runtime mesh component should be recognize that the generation result is the same and shouldn't be executed.

            Is there any solution for this?
            Loading a level take a lot of time.
            Originally posted by Tokodboy View Post

            I don't want to rebuild the world if everything is the same. It takes too many times. Now I am do this as You suggest.

            The procedural mesh component work differently. If I build 50.000 box meshes with the RMC, after saving the level file will be 50 MB and the level load time is 2 minutes. But if I use the Procedural mesh component to build 50.000 box meshes the level file will be 480 MB and the load time is only 20 seconds.

            My bottleneck is the level load time. The 2 minutes is too much. I think is not necessary to rebuild the whole RTM if the new RTM is totally same. I simply want to load the last generated state and not rebuild that.

            There is any solution for it?

            As I can see the Procedural mesh working differently in this case.

            Thanks: Viktor


            The construction script is the culprit here, the RMC has nothing to do with it. That's just how the construction script behaves, so not sure why you'd ever get different behavior between the two assuming the same setup. Feel free to show what you're actually doing and I'll try to take a look.



            Originally posted by DonFrag View Post
            How can you make mesh with portions (or submesh) that can use a different material?
            Im trying to modify spine runtime for ue4 that uses rmc and i would like to define some portions of the sprite-mesh that can use a different material(like a lamp with emmisive)
            Assumming you mean what I think you mean, this is done by making separate mesh sections and assigning the corresponding material to the correct slot id for that section.


            Originally posted by wilberolive View Post
            [MENTION=141752]Koderz[/MENTION] - Uh oh, now we need a 4.17 marketplace update.

            Will this be a quick and easy update or should be expect a long delay (1+ month) like previous version updates? Just trying to plan things for my project, that's all.
            So you pretty much found the answer for this, haha. I definitely didn't expect to not have the time to update it but it should be up soon and I'm hoping to be preprepared for 4.18.



            Originally posted by shunwang View Post
            Hi guys, anyone tryed new runtime cooking feature on mobile under 4.17? In my PhysX plugin settings its on but mesh didnt get collider on Android. Maybe there is something else that I should do in the code?
            Thanks!
            I believe the RMC needs to reference the new plugin that enables runtime cooking IIRC, will see about it, but don't have a way to test for android right now.




            Originally posted by Moddingear View Post
            Hey.
            After some testings, it looks like RuntimeMeshComponent's collisions don't support welding simulated bodies, when attaching components.
            Can you confirm that ?

            Btw, awesome plugin, I'm loving it, keep up the good work, my game wouldn't be possible without it.

            EDIT : I have tested more, and here are my results :
            Type being tested (Object 1 is simulating physics, Object 2 is attached) Object 1 behavior Object 2 behavior
            Static Mesh / Static mesh (Control run) Can move freely, Object2 changes the collision and the COM of the Object Follows Object 1 and is locked in place
            Static Mesh / RuntimeMesh Can move freely, collides with Object 2, COM is not affected by Object 2 Stays in place and doesn't move
            RuntimeMesh / Static mesh Is pushed by Object 2 if it collides, can move freely, Object 2 affects the COM and the collision of Object 1 Follows Object 1, at the risk of pushing it indefinitely
            RuntimeMesh / RuntimeMesh Can move freely, collides with Object 2, COM isn't affected by Object 2 Stays in place and doesn't move







            Type being tested (Both are simulating physics) Object 1 behavior Object 2 behavior
            StaticMesh / StaticMesh (Control run) Can move freely, doesn't collide with Object 2, COM and collisions are affected by Object 2 Moves with Object 1
            RuntimeMesh / StaticMesh Can move freely, collides with Object 2, COM and collisions aren't affected by Object 2 Still simulates physics, is affected by Object 1 and moves in Object 1 space
            StaticMesh / RuntimeMesh Can move freely, collides with Object 2, COM and collisions aren't affected by Object 2 Still simulates physics, doesn't move with Object 1









            Note that all of these were tested using the same techniques, I can provide the actors being used if necessary.
            Object 1 was already here, it starts to simulate physics when Object 2 is spawned and attached directly after spawning, with WeldSimulatedComponents set to true.

            This is a blocker for me, I'd really like to have this fixed, and I can pay you to motivate you if needed.

            If this is still a problem for you, feel free to contact me on the UE4 Discord: http://unrealslackers.org/

            I'm not really familiar with welding to be able to comment, so might be easier to see what's going on if you're able to share your project (or more accurately a recreation of the problem).
            At a fundamental level the RMC runs basically the same collision anything else does, except that most all objects have a simple collision shape which the RMC doesn't unless you provided one. Beyond that would have to sit down and try it.

            PS. It's definitely not a lack of interest, just a lack of hours in the day unfortunately.




            Originally posted by Thumper View Post
            Migrated my project from 4.15 to 4.17.1 and there are many errors. Many of which are already listed in the pull request on the github repo for this. I was able to work through most of them except this one -

            1&gt;D:\GameDesign\UE_4.17\Engine\Source\Runtime\CoreUObject\Public\UObject/Class.h(655): error C2280: 'FRuntimeMeshComponentPrePhysicsTickFunction &amp;FRuntimeMeshComponentPrePhysicsTickFunction:perator =(const FRuntimeMeshComponentPrePhysicsTickFunction &amp': attempting to reference a deleted function
            1&gt;D:\GameDesign\KoreShanty-4.17\Plugins\RuntimeMeshComponent_v2.0\Source\RuntimeMeshComponent\Public\RuntimeMeshComponent.h(69): note: compiler has generated 'FRuntimeMeshComponentPrePhysicsTickFunction:perator =' here
            1&gt;D:\GameDesign\UE_4.17\Engine\Source\Runtime\CoreUObject\Public\UObject/Class.h(990): note: see reference to function template instantiation 'bool CopyOrNot&lt;CPPSTRUCT&gt;(CPPSTRUCT *,const CPPSTRUCT *,int32)' being compiled

            Any ideas how I can fix this?


            About to try to get it cleaned up and updated onto 4.17 and 4.18, so if you haven't already fixed this let me know.


            Originally posted by shunwang View Post
            And any news about colliders on mobile without recompiling sources?
            Not quite sure what you mean.
            Runtime Mesh Component - The best way to render procedural/runtime created meshes! - Version 4.1 out now!

            Come talk about anything RMC or Procedural Mesh Related in our Discord!

            Comment


              Koderz - Yay, you're not dead!

              Comment


                Originally posted by Chupacabra View Post
                I'm having an issue using the slicing system in the latest marketplace version of RuntimeMeshComponent and I'm not entirely sure how to debug what's going on:

                -I'm taking a static mesh (a wall, it's pretty much just a scaled cube), then in BeginPlay I'm using "Copy Runtime Mesh from Static Component"
                -I'm then slicing it down the middle with "Create Other Half" enabled and "Create New Section" selected.
                -When I make the slice I get this error in the log: "RuntimeMeshLog:Error: Section is not of legacy type."
                -The resulting slice seems to have worked for the newly created section, but nothing happens to the original Mesh Component

                Pre Slice: (Red line is where I make the slice)
                [ATTACH=CONFIG]120045[/ATTACH]

                Post Slice: (I've moved the pieces apart to illustrate the problem, the purple slice is the newly create mesh)
                [ATTACH=CONFIG]120046[/ATTACH]

                I'm using the exact same blueprint logic that I used for using the inbuilt procedural mesh slicing, which visually works as expected but results in a lot of weird collision issues (hence why I'm looking to switch over to your plugin).

                Any ideas what I'm doing wrong?
                Was this ever resolved? I just switched over from Procedural Mesh Components to RT Components and I have the same problem. Slicing creates new slices as expected, but the original mesh is unchanged...

                I also only swapped out the basic ingredients and have run into this issue.

                Comment


                  Originally posted by Koderz View Post
                  So I can prioritize things, I'm curious to know what features you're most interested in?
                  Glad to hear that RMC is still in development!
                  Looking forward to the 4.17 release.

                  As for me, i'd love to see more Mesh creation utilities available in blueprint (cylinder, sphere, capsule etc.).
                  Also it would be super helpful to be able to get the index data for a raycast against a face. My current workaround is a bit hacky (each face (or quad) as its own section).

                  Comment


                    Hi Koderz, I have an issue with runtime mesh component, I have posted a thread in content creation here : Issue with creating a mesh in run time in UE4 using data from .obj and RuntimeMeshComponent - Unreal Engine Forums. Could you take a look ? If you can provide some comments and insight into the issue that would be great.
                    Hello Folks, I am trying to create meshes from point clouds at run time, I can do the pre-processing and create a textured mesh with uvs etc. mapped and create .obj

                    Comment


                      Hi Koderz, excellent work I am currently using your plugin to develop my procedural buildings.

                      I noticed that generating tangents is very slow. I'm having trouble generating tangents myself in my own proc meshes. Is there a way to trick the material into using the derivative of a given normal to compute the tangent on the shader? Essentially, I want to still have correct looking normal maps without having to run the calculate tangent function.

                      Comment


                        Originally posted by Skifree View Post

                        Was this ever resolved? I just switched over from Procedural Mesh Components to RT Components and I have the same problem. Slicing creates new slices as expected, but the original mesh is unchanged...

                        I also only swapped out the basic ingredients and have run into this issue.
                        This is the one remaining thing I want to look into before I push the 4.17 release. I hope to get to this tomorrow/Sunday.


                        Originally posted by a_prototype View Post
                        Glad to hear that RMC is still in development!
                        Looking forward to the 4.17 release.

                        As for me, i'd love to see more Mesh creation utilities available in blueprint (cylinder, sphere, capsule etc.).
                        Also it would be super helpful to be able to get the index data for a raycast against a face. My current workaround is a bit hacky (each face (or quad) as its own section).
                        I'll try to add additional utilities at some point, but I'm more focused on the core features for now. I'm up for submissions for utilities for things like this.
                        As for being able to get the face index of a raycast... It's untested but it should be in the github version, as I believe I added the necessary supporting code for that last weekend.
                        A section per quad is definitely beyond hacky as that's a draw call per quad.




                        Originally posted by mflux View Post
                        Hi Koderz, excellent work I am currently using your plugin to develop my procedural buildings.

                        I noticed that generating tangents is very slow. I'm having trouble generating tangents myself in my own proc meshes. Is there a way to trick the material into using the derivative of a given normal to compute the tangent on the shader? Essentially, I want to still have correct looking normal maps without having to run the calculate tangent function.

                        Yeah, that function is horridly slow. Simply because it's doing common vertex detection the brute force, and therefor exceedingly slow way. It's basically a O(n^2) solution so it grows exponentially slower the larger the mesh. I have a new version in RMCv3. I might try to backport it to v2 until v3 is out.
                        Runtime Mesh Component - The best way to render procedural/runtime created meshes! - Version 4.1 out now!

                        Come talk about anything RMC or Procedural Mesh Related in our Discord!

                        Comment


                          Hey there.
                          Trying to use the RuntimeMesh with https://www.unrealengine.com/marketplace/outliner. This material uses CustomDepth (Render CustomDepth Pass / CustomDepth Stencil Value) to create the outline. It is working with the RuntimeMesh as long as the RuntimeMesh is not fully Occluded (The ProceduralMeshComponent has issues as well, behaves even weirder than RuntimeMesh).

                          Screenshots out of Editor, not playing.
                          Blue Outline = StaticMeshComponent
                          Green Outline = RuntimeMeshComponent

                          Partially Occluded:
                          Click image for larger version  Name:	PartiallyOccluded.png Views:	1 Size:	51.3 KB ID:	1360011

                          Occluded but RuntimeMesh (Actor) still selected:
                          Click image for larger version  Name:	OccludedSelcted.png Views:	1 Size:	31.3 KB ID:	1360012

                          Occluded, RuntimeMesh not selected:
                          Click image for larger version  Name:	OccludedNotSelected.png Views:	1 Size:	29.6 KB ID:	1360013


                          Maybe this is related to the issue of Dustums:

                          Originally posted by Dustums View Post
                          Hi everyone. I've been using Runtime Mesh Components for some time, and something has changed in my build (not sure when it changed). I have custom panels created with RMC, but they are not rendering in the Z PrePass (I'm pretty sure they used to, back in the 4.14 days?) I'm on 4.16 now, and using RenderDoc, I can see that they no longer are part of the depth pre-pass, and thus I'm getting a lot of overdraw, which is killing my performance. I have "Render in Main Pass" checked. Any ideas what could be wrong? Anything I should check? This is a VR app, so performance is crucial.
                          You can also check this by using the render options with the editor viewport:
                          Click image for larger version

Name:	BufferVisualization.png
Views:	130
Size:	51.3 KB
ID:	1360027

                          A related thread for ProcedualMesh: https://answers.unrealengine.com/que...325/index.html

                          Regards
                          Attached Files
                          Last edited by Rumbleball; 09-26-2017, 11:02 AM.
                          NodePrefabs | PluginBuilder | NotificationBackbone | WidgetBox | DebugWidget

                          Comment


                            Originally posted by Thumper View Post
                            Migrated my project from 4.15 to 4.17.1 and there are many errors. Many of which are already listed in the pull request on the github repo for this. I was able to work through most of them except this one -

                            1>D:\GameDesign\UE_4.17\Engine\Source\Runtime\CoreUObject\Public\UObject/Class.h(655): error C2280: 'FRuntimeMeshComponentPrePhysicsTickFunction &FRuntimeMeshComponentPrePhysicsTickFunction:perator =(const FRuntimeMeshComponentPrePhysicsTickFunction &)': attempting to reference a deleted function
                            1>D:\GameDesign\KoreShanty-4.17\Plugins\RuntimeMeshComponent_v2.0\Source\RuntimeMeshComponent\Public\RuntimeMeshComponent.h(69): note: compiler has generated 'FRuntimeMeshComponentPrePhysicsTickFunction:perator =' here
                            1>D:\GameDesign\UE_4.17\Engine\Source\Runtime\CoreUObject\Public\UObject/Class.h(990): note: see reference to function template instantiation 'bool CopyOrNot<CPPSTRUCT>(CPPSTRUCT *,const CPPSTRUCT *,int32)' being compiled

                            Any ideas how I can fix this?
                            Added
                            Code:
                            template<>
                            struct  TStructOpsTypeTraits<FRuntimeMeshComponentPrePhysicsTickFunction> : public TStructOpsTypeTraitsBase2<FRuntimeMeshComponentPrePhysicsTickFunction>
                            {
                                enum { WithCopy = false };
                            };
                            after

                            FRuntimeMeshComponentPrePhysicsTickFunction structure.

                            Managed to build without errors, but dunno, am not a programer.

                            Comment


                              Koderz - Did an update get submitted for 4.17 and we waiting on Epic again? 4.18 is about to land (my guess in next couple of weeks) and we don't have a 4.17 update yet. *sigh*

                              Comment


                                Hi, we're using the RuntimeMeshComponent, and I'm reading that there's a function for saving and loading it, but we can't for the lives of us find it. Could someone please point us in the right direction?

                                Comment

                                Working...
                                X