Announcement

Collapse
No announcement yet.

voxel plugin™

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

    looks nice!
    I was wondering about the performance so I got the Free version for trying. sadly the Free version doesn't come with any importers so I can't make any direct comparison
    is there anything I can do in this sense to compare and evaluate? I'm afraid manually sculpting a voxel terrain won't serve as comparison with a landscape

    reading through the thread it appears this is/was slower than a Landscape. any info on that?

    btw I'm wondering if a fully 'static' voxel terrain is any faster than one where the shapes can be modified in-game

    also can you provide some info on the Texture Arrays version? I know what they are in general but it's unclear what kind of benefits we'd get from them - speculation goes that it would give a performance boost but as for how much it really remains as speculation
    Follow me on Twitter!
    Developer of Elium - Prison Escape

    Comment


      So far I've really liked the 3 hours i've spent with your plug in (free version). I read on your website that multiplayer runs smooth up to 15 players, my question is this: is that the most you could test on it or was 15 the point at which it started to run bad?
      From the video, it looks like everyone was making massive edits at the same time, if the edits were smaller and more controlled (impact explosions, bullet holes, things of that nature) do you think that would increase the player count?

      Comment


        Thanks NilsonLima Thunder_Owl !

        Chosker

        I was wondering about the performance so I got the Free version for trying. sadly the Free version doesn't come with any importers so I can't make any direct comparison
        is there anything I can do in this sense to compare and evaluate? I'm afraid manually sculpting a voxel terrain won't serve as comparison with a landscape
        You can try https://pastebin.com/uhUZnvxj : to use it, put it in the Source folder of a C++ project and add Voxel as a dependency.

        It's a simple voxel graph creating a basic world:





        This should allow you to test the performance. If needed I can also package that generator into a plugin build, for instance if you're not using C++.

        reading through the thread it appears this is/was slower than a Landscape. any info on that?
        While the impact on the game thread is minimal, it is quite CPU heavy in backgrounds thread. This is necessary due to the volumetric nature of the terrain: for instance, where an heightmap based terrain would have 10x10 chunks, the plugin needs 10x10x10 chunks for the same surface.

        btw I'm wondering if a fully 'static' voxel terrain is any faster than one where the shapes can be modified in-game
        It might be with some caching optimizations, but I haven't looked much into that yet, and the performance gain should be pretty low.

        also can you provide some info on the Texture Arrays version? I know what they are in general but it's unclear what kind of benefits we'd get from them - speculation goes that it would give a performance boost but as for how much it really remains as speculation
        Texture arrays are required to have nearly unlimited textures, as shown in

        Doing this without texture arrays would limit us to 16 textures, and would be extremely slow as all of the samplers would have to be computed. Getting the texture arrays build is really easy, just need to download a 3.5GB zip, no compiling required.
        Website: https://voxelplugin.com
        Discord: https://discord.gg/58ZqEbg
        Twitter: https://twitter.com/phyronnaz

        Comment


          brian.boettger 15 is the number of people I was able to gather for the test

          With more controlled edits and a slower sync rate, it should be able to handle a lot more players.
          Website: https://voxelplugin.com
          Discord: https://discord.gg/58ZqEbg
          Twitter: https://twitter.com/phyronnaz

          Comment


            Hi,
            I didn't notice anyway of doing this so I figured I'd ask here, what would you recommend as the best practice for implementing physical material settings per texture area e.g. for footstep sounds and surface frictions?
            Thanks.

            Comment


              Daniel Skipper Games Interesting question!

              One way of doing it would be to check the voxel material under the player every frame, and set the sound based on that. I'm not sure for the physics, but there should be a way to achieve it using that.

              To do it you could do something like that:



              Let me know if this answers your question, or if you have other questions!
              Website: https://voxelplugin.com
              Discord: https://discord.gg/58ZqEbg
              Twitter: https://twitter.com/phyronnaz

              Comment


                Thanks so much for this amazing utility! I had a couple questions:

                Sorry if this has already been asked, but does the landscape foliage material node work with this system? If not, is there similar functionality that I can utilize, so that I could control things like grass spawning along the landscape based on slope, to match slope blending in the landscape material? Also, are there options for configurable "biomes" with separate materials, etc?

                Comment


                  hippowombat

                  does the landscape foliage material node work with this system
                  No

                  If not, is there similar functionality that I can utilize, so that I could control things like grass spawning along the landscape based on slope, to match slope blending in the landscape material
                  Yes

                  Voxel Material

                  In a Voxel Graph (or in a C++ Voxel World Generator), you set the Voxel Material for every position in the world. A Voxel Material is composed of the following:

                  Click image for larger version

Name:	Untitled.png
Views:	1
Size:	13.6 KB
ID:	1459161

                  A and B are 2 materials indices, which are used in the UE material to select a color or a texture. The final material is Lerp(A, B, Alpha).

                  Voxel Actor is to choose the kind of Voxel Actors spawned at that position.

                  Grass vs Voxel Actors

                  I have 2 different foliage systems:
                  - Grass: no collision, using HISM
                  - Voxel Actors: spawned actors, triggered when floating

                  For example, in the following video, the grass is the cubes under the terrain, and the Voxel Actors are the cylinders:



                  Spawning rules

                  Grass and Voxel Actors are grouped in Grass Group and Voxel Actors Group. For each element of these groups, you can choose settings like max/min angle with the world up vector (not always global up vector, for a sphere world for instance).

                  Click image for larger version

Name:	Untitled.png
Views:	1
Size:	87.9 KB
ID:	1459162

                  You can then choose where to spawn these groups.

                  For grass, this is based on the material indices. You associate one or multiple material indices to a grass group, and that grass group will be spawned on voxels with those indices, with the density adjusted by the Alpha.

                  For Voxel Actors, this is based on the Voxel Actor property of a voxel material. Like the grass, you set one or multiple Voxel Actor ID to each group, and those group will be spawned on the voxels with these IDs.

                  Also, are there options for configurable "biomes" with separate materials, etc?
                  For now there aren't any specific nodes for biomes, but I definitively want to add some in the future. In the meantime, you can use the other nodes to create your own biomes.
                  Website: https://voxelplugin.com
                  Discord: https://discord.gg/58ZqEbg
                  Twitter: https://twitter.com/phyronnaz

                  Comment


                    Originally posted by Phyronnaz View Post
                    hippowombat Tons of awesome information
                    Okay so instead of having one master material with different sections controlling appearance/foliage density based on things like slope and height etc, you actually have options built into the voxel terrain editor to have whole materials applied based on slope/height, with foliage being assigned per material, if I'm understanding correctly? Really awesome if so, absolutely stellar system in place here.

                    One more follow up question here, and again I apologize if I missed this being answered, but how does it handle navigation? Would I be able to have an AI with a navmesh invoker write to a navmesh volume on the fly for bigger spaces, or is there something else that handles navigation with this system specifically?

                    Comment


                      Okay so instead of having one master material with different sections controlling appearance/foliage density based on things like slope and height etc, you actually have options built into the voxel terrain editor to have whole materials applied based on slope/height, with foliage being assigned per material, if I'm understanding correctly? Really awesome if so, absolutely stellar system in place here.
                      Exactly. You can also change the materials are runtime, like here:



                      One more follow up question here, and again I apologize if I missed this being answered, but how does it handle navigation? Would I be able to have an AI with a navmesh invoker write to a navmesh volume on the fly for bigger spaces, or is there something else that handles navigation with this system specifically?
                      For now navigation works through UE system: I'm just sending the meshes to it. This can be an issue if your AI is on a chunk with a higher LOD for example, however I don't think there's an easy way to have efficient pathfinding for a big world. That would be a plugin on its own

                      The navigation is broken in the published releases, however if you DM me on discord I can send you a version where it's fixed.
                      Website: https://voxelplugin.com
                      Discord: https://discord.gg/58ZqEbg
                      Twitter: https://twitter.com/phyronnaz

                      Comment


                        Originally posted by Phyronnaz View Post
                        More awesome info
                        That's all awesome info, I'll likely be picking this up on payday. See you on Discord! Thanks!

                        Comment


                          What vr plugin are you using with this plugin? You've stated that it's vr ready, but what are you actually using to test it?

                          I'm having some issues integrating with the VR Expansion Plugin (https://forums.unrealengine.com/deve...pansion-plugin). I'm using your Texture Array fork of UE 4.19 along with the latest VR Expansion Plugin (https://bitbucket.org/mordentral/vrexpansionplugin) and the latest example vr template (https://bitbucket.org/mordentral/vrexppluginexample). The template has a Content\VRExpansion\Vive\Vive_PawnCharacter.uasset that I attempted to attach a VoxelInvoker to, but UE crashed as soon as I compiled that asset. I'm not really sure what that is all about, but the VoxelInvoker works just fine for the template's Content\VRExpansion\Vive\FPS_VivePawnCharacter.uasset.

                          I've always had this issue integrating these two plugins. I've been fiddling with your voxel plugin since before you announced a released version and I was running into this same issue back then. I was hoping that upgrading my dependencies would magically fix things, but that wasn't the case. For the record, this issue existed for the vanilla UE 4.18 + Voxel plugin + Vr Expansion Plugin and with the Texture Array fork of UE 4.19 + Voxel Plugin + Vr Expansion Plugin. The issue has only ever happened when the VoxelInvoker is added to the Vive_PawnCharacter.uasset.

                          Comment


                            Phyronnaz

                            Hey, great to see this thing getting released!

                            I have one large issue, and a smaller one:

                            1) My character is falling through the floor at times because chunks unload before the higher density one is loaded. I'd much rather have temporary overlapping chunks than a hole. Would it be possible to add this a feature in a future release?

                            A workaround for me is to increase the "Chunks Fade Duration", but I don't like it because:
                            a) if I set it to a high value then visual artifacts may appear since the chunk will stay loaded for to long.
                            b) if the cpu will be under load this still doesn't guarantee that chunk will be loaded a time, so a hole may still appear and the player will fall through, which is unnacceptable.

                            So a checkbox like "Don't remove chunk until fully loaded" would be ideal becausae:
                            a) it would prevent character/physics objects falling through the floor
                            b) it would reduce visual artifacts of overlapping chunks since the visual artifact would happen only when the chunk would fail to load in time (which is an acceptable trade of if it prevent falling through the floor).


                            2) The smaller issue: I cloned the texture array free version accidentaly which gave me compiler errors because I don't have the texture array version: perhaps add a note to the "Installation" tutorial about which branch to use so that people won't think it's an issue with the plugin?

                            Comment


                              Roponator

                              My character is falling through the floor at times because chunks unload before the higher density one is loaded. I'd much rather have temporary overlapping chunks than a hole. Would it be possible to add this a feature in a future release?
                              That's already how it works: I wait for the new chunks to be loaded before deleting the old one. Moreover, I generate additional collisions chunks around the character, so it's nearly impossible for it to fall through.

                              I really don't understand why you are getting this issue. Even with Chunk Fade Duration = 0 and a slow world generator, I only have 1 frame long holes which are due to rendering latency.

                              The smaller issue: I cloned the texture array free version which gave me compiler errors because I don't have the texture array version: perhaps add a note to the "Installation" tutorial about which branch to use so that people won't think it's an issue with the plugin?
                              Fixed! https://voxel-plugin.readthedocs.io/...tallation.html
                              Website: https://voxelplugin.com
                              Discord: https://discord.gg/58ZqEbg
                              Twitter: https://twitter.com/phyronnaz

                              Comment


                                Just wanted to give a heads up. That issue that I found with the Voxel Plugin + Vr Expansion Plugin turned out to be an oversight on my part. It turns out that multiple VoxelInvoker components will crash UE if they are placed on the same actor. I've got no issues anymore.

                                Comment

                                Working...
                                X