Announcement

Collapse
No announcement yet.

❀ DoN's Dynamic Mesh Effects ❀

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

    Thank you Bino, also, do you know if the decals work on Procedural/Runtime MeshComponents?

    Comment


      Originally posted by rohanbabuam View Post
      Thank you Bino, also, do you know if the decals work on Procedural/Runtime MeshComponents?
      Never tried it myself. But if the material is setup as per the documentation I think it would work.Good luck

      Comment


        Hey all,

        Assuming this plugin has been forgotten. Hopefully VSZ is ok.

        I have this working in 4.25 preview 7 but you'll need to make code changes.

        In DonMeshPainterComponent.cpp you'll need to change const TArray<uint8>* uncompressed; to TArray<uint8, TSizedDefaultAllocator<64>> uncompressed;
        Anywhere uncompressed is used you'll need to change "->" to a "."

        There was another change I needed to do for 4.24 but I don't remember. It was pretty simple.

        Still doesn't work with meshes with multiple materials but I'm just going to bake those mesh to use a single material. Probably better for VR performance anyway. The new polygon editing tools in 4.25 make that super easy.

        Anyway hope this helps someone.

        Comment


          I got the plugin working on the release version of UE 4.25, and it does work on Procedural and Runtime Mesh Components. My issue is that it only works on tethered VR. Once I deploy to my Quest and test it, I get a framerate dip, and none of the painting is applied. I'm curious if anyone else experienced this issue on mobile VR.

          Comment


            Originally posted by Decca View Post
            I got the plugin working on the release version of UE 4.25, and it does work on Procedural and Runtime Mesh Components. My issue is that it only works on tethered VR. Once I deploy to my Quest and test it, I get a framerate dip, and none of the painting is applied. I'm curious if anyone else experienced this issue on mobile VR.
            Nope unfortunately don't have a Quest to test. But please share any findings as I'm hoping to port to it.

            Comment


              Originally posted by Decca View Post
              I got the plugin working on the release version of UE 4.25, and it does work on Procedural and Runtime Mesh Components. My issue is that it only works on tethered VR. Once I deploy to my Quest and test it, I get a framerate dip, and none of the painting is applied. I'm curious if anyone else experienced this issue on mobile VR.
              Did you have any luck working this out? I was doing an optimization pass on my assets and found that my master material containing the Don Mesh nodes was bringing in a 2K texture for every model using it. I had little scene static meshes taking up a lot of memory. I ensure only meshes that need this node use it and may even reduce the size of the texture the DonMesh node uses.

              Comment


                Anyone else finding a frame lag issue with the 4.25 version? Applying paint stroke lags for half a second before returning to normal. Opacity and world offset are being modified, using uv0 on a skeletal mesh.. Second Uv layer was added but I'm not sure what is causing the half sec freeze.. Any ideas anyone?

                Comment


                  DmP Plugin Status - 4.25, 4.24 updated, Support backlog being looked into

                  First of thanks to everyone for your patience. I've been away on an extended hiatus from work and still transitioning back.

                  Latest versions of the plugin were uploaded recently and all pending questions/reviews on the marketplace page have been acknowledged with a reply.

                  If you still have anything you need help with please write back and I'll look into

                  - Venu

                  Steam Early Access: Drunk On Nectar - The Nature Simulator

                  UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                  Comment


                    Originally posted by thelazylion View Post
                    Anyone else finding a frame lag issue with the 4.25 version? Applying paint stroke lags for half a second before returning to normal. Opacity and world offset are being modified, using uv0 on a skeletal mesh.. Second Uv layer was added but I'm not sure what is causing the half sec freeze.. Any ideas anyone?
                    Hey, can you confirm the following:

                    1. Is this an existing project that you ported from a previous engine version where it was working without this issue?

                    2. Are you seeing this issue with the 4.25 sample project and/or with the 4.25 packaged demo as well?

                    3. Is your character using a master material for all its materials without explicitly disabling paint on unwanted layers? So far this is the most common cause of most performance issues.

                    Do let me know!

                    - Venu
                    Last edited by VSZ; 07-26-2020, 09:49 AM. Reason: Added link to sample project and packaged demo

                    Steam Early Access: Drunk On Nectar - The Nature Simulator

                    UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                    Comment


                      Originally posted by VSZ View Post

                      Hey, can you confirm the following:

                      1. Is this an existing project that you ported from a previous engine version where it was working without this issue?

                      2. Are you seeing this issue with the 4.25 sample project and/or with the 4.25 packaged demo as well?

                      3. Is your character using a master material for all its materials without explicitly disabling paint on unwanted layers? So far this is the most common cause of most performance issues.

                      Do let me know!

                      - Venu
                      thanks for the prompt reply.. it is using a new project with most of our code migrated over for the move. But generally most things are the same. Except our models are changed, we are now using cc3 imported models.. so they have a lot of their materials separated on their body.. (nails, eyes x2, head, arms, legs, body, cornea x2).. they are all needed to lerp to a dmg texture. Is there a way to spread out the paints between them asynchronously or something?
                      But I believe our older project also had a high amount of paint applies per hit too (even with cloth layers, my older previous post here was an example), but nonsuch lag.
                      I might upload footage soon of before n after..

                      And I'll check back after looking at that sample project you linked..
                      thanks again
                      Last edited by thelazylion; 07-26-2020, 04:08 PM.

                      Comment


                        Originally posted by thelazylion View Post
                        nails, eyes x2, head, arms, legs, body, cornea x2
                        Usecase & workflow:
                        That's indeed a lot more materials than I'd envisioned for the plugin. Unless explicitly disabled for paint, every material of your character (including attached props) will contribute to performance cost (per stroke) and additional texture memory (as a render target). If you cannot disable certain materials I would at least override the UV templates for those instances to use a lower resolution template as they probably don't need a 1024 (or higher if you bumped up the res) resolution. See this article for changing the resolution of UV templates.

                        Performance across versions:
                        Definitely interested in learning about your previous results to confirm any performance degradation across versions.

                        Which engine version was your previous testing conducted from?

                        One interesting thing you can is to open DonMeshPainterGlobalActor.h and toggle the flag DON_BUGFIX_FOR_MORPH_TARGETS_POSCAPTURE_ENABLED
                        which switches between two different implementations specifically for character painting. This flag was originally introduced in 4.22 but disabled in subsequent versions.

                        Let me know!

                        Steam Early Access: Drunk On Nectar - The Nature Simulator

                        UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                        Comment


                          Originally posted by VSZ View Post

                          Usecase & workflow:
                          That's indeed a lot more materials than I'd envisioned for the plugin. Unless explicitly disabled for paint, every material of your character (including attached props) will contribute to performance cost (per stroke) and additional texture memory (as a render target). If you cannot disable certain materials I would at least override the UV templates for those instances to use a lower resolution template as they probably don't need a 1024 (or higher if you bumped up the res) resolution. See this article for changing the resolution of UV templates.

                          Performance across versions:
                          Definitely interested in learning about your previous results to confirm any performance degradation across versions.

                          Which engine version was your previous testing conducted from?

                          One interesting thing you can is to open DonMeshPainterGlobalActor.h and toggle the flag DON_BUGFIX_FOR_MORPH_TARGETS_POSCAPTURE_ENABLED
                          which switches between two different implementations specifically for character painting. This flag was originally introduced in 4.22 but disabled in subsequent versions.

                          Let me know!
                          Our Characters are using a lot of runtime morphs on them, so possibly that could be causing something, since I believe our last build was either 4.21 or 4.22.. so that update in 4.22 might have caused it.. I will get back to you after modifying the .h file and am done recompiling with the results..
                          Also I believe I used to use UV1, however in this version we've been testing using UV0, although our models do have a second UV layer.
                          Thanks again for helping out.. The flesh destruction was a fun feature of our demo back during announcement, it would be a shame to lose out on it, n have to go back to using limited count sphere masks.

                          Edit: (Sorry but, I cant seem to understand what to modify about the line you mentioned. Can you elaborate kindly?)
                          ~thanks again.

                          Here is the vid post from the old build..
                          https://forums.unrealengine.com/unre...19#post1655419

                          I can post a demonstration on the lag in the
                          4.25 version soon
                          Last edited by thelazylion; 07-27-2020, 02:24 AM.

                          Comment



                            Originally posted by thelazylion View Post
                            Also I believe I used to use UV1, however in this version we've been testing using UV0, although our models do have a second UV layer.
                            Thanks again for helping out.
                            For quicker investigation it would be ideal we could compare like with like. I'd really like to know about the comparison between your previous results and current, but ideally with the same material layout and workflow. If it's not too much of a hassle I suggest providing test results of your previous engine version, but with your latest material setup incorporated into it.

                            That will provide testing parity and prove conclusively whether we are dealing with a version to version degradation or a need for workflow optimization / finetuning.

                            Alternatively if you can just modify the 4.25 sample project to mirror your setup and reproduce the issue there, do send that over to the support mail and I will be able to investigate the issue more easily.


                            Originally posted by thelazylion View Post
                            Sorry but, I cant seem to understand what to modify about the line you mentioned. Can you elaborate kindly?)
                            1. If you haven't done so already, copy the plugin over from the Engine/Marketplace/Plugins/DonMeshPainting folder over to your Project/Plugins folder (create a Plugins dir if necessary)
                            2. Open the file DonMeshPainterGlobalActor.h in the Visual Studio solution for your project
                            3. Search for DON_BUGFIX_FOR_MORPH_TARGETS_POSCAPTURE_ENABLED and set the flag from 0 (current value) to 1.
                            4. Recompile and test your usecase.

                            Let me know!

                            - Venu

                            Steam Early Access: Drunk On Nectar - The Nature Simulator

                            UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                            Comment


                              Originally posted by VSZ View Post


                              For quicker investigation it would be ideal we could compare like with like. I'd really like to know about the comparison between your previous results and current, but ideally with the same material layout and workflow. If it's not too much of a hassle I suggest providing test results of your previous engine version, but with your latest material setup incorporated into it.

                              That will provide testing parity and prove conclusively whether we are dealing with a version to version degradation or a need for workflow optimization / finetuning.

                              Alternatively if you can just modify the 4.25 sample project to mirror your setup and reproduce the issue there, do send that over to the support mail and I will be able to investigate the issue more easily.




                              1. If you haven't done so already, copy the plugin over from the Engine/Marketplace/Plugins/DonMeshPainting folder over to your Project/Plugins folder (create a Plugins dir if necessary)
                              2. Open the file DonMeshPainterGlobalActor.h in the Visual Studio solution for your project
                              3. Search for DON_BUGFIX_FOR_MORPH_TARGETS_POSCAPTURE_ENABLED and set the flag from 0 (current value) to 1.
                              4. Recompile and test your usecase.

                              Let me know!

                              - Venu
                              Thanks for the explanation. It was declared in the cpp not h file.. I switched it on, and tried again, I think it worked. There's still a little bit of performance drop but that seems related to the heavy materials we're lerping.. I'll run some more tests, but this is playable now. Thank you.

                              I'll work on the other things you've mentioned to see if I can get it smooth like the previous version we had going.. might just be the higher res textures and material count.
                              Last edited by thelazylion; 07-27-2020, 01:53 PM.

                              Comment


                                @ thelazylion - That is great to hear!

                                Ideally this flag should be turned on by default (to support morph targets), but it was disabled during a recent migration to mitigate suspected stability issues. So do be on the look out for any odd bugs emanating from this.

                                Further optimization ideas:

                                1) Be sure to lower the texture resolution for the eyes and other tiny body parts. Personally I'd leave out the Eyes entirely if possible but if you really need to depict damage there try using a very low resolution render target template for such materials.

                                2) If you are using decals try switching to the default circular brush instead; I believe you are already using damage textures so you will still have fair amount of visual control. The rendering cost of decals v/s default brush is exactly the same, but the painting cost of the decal workflow is significantly greater so for fast paced gameplay scenarios I'd avoid decals if possible.

                                3) Try combining materials with similar shaders into a single material slot if this is feasible. Apart from texture memory (/resolution) the overhead of creating and maintaining render targets per material also contributes to the per stroke cost so you can save on that with lesser materials.

                                Steam Early Access: Drunk On Nectar - The Nature Simulator

                                UE4 Plugins: DoN’s Dynamic Mesh FX | DoN’s 3D Pathfinding

                                Comment

                                Working...
                                X