Voxel Plugin

@Dorian000 Wait for the next release (shouldn’t be long now) as I’ve improved a lot the organization, allowing for easy render replacement.
[/QUOTE]

Thanks Phyronnaz! Any estimates on next release? Great work on the plugin. Looking forward to the paid version too, I want to throw money at your for your good work. :wink:

Are the mesh and landscape importers in the current release? I’m not able to find them in the class list.

@Dorian000 They’re not

man, take the time you need to perfect this the most you can, I will wait and purchase. I am just tired of buying stuff from MP that I need to fix later. I will save up for this for sure.

i’m waiting for full feature release. when do you release it? i’d love to pay for that. let me know if you have any roadmap. thanks a lot for your great works

I tried the directions you gave Dorian for rendering the landscape in cubes, but can’t seem to get the edges to not be clipped. After doing step 2 shouldn’t the mesh already be in cubes or do I need to do the normal step as well? (I wasn’t clear on which part of the code I should change) Screenshot attached of what I’m seeing. Thanks in advance!

Hello everyone!

I’m happy to announce that voxel plugin™ is finally released:

2 versions are available, a free and a pro one, which can both be used commercially. Here’s a quick summary of the features:

https://i.imgur.com/HUy7xlP.jpg

  • Fully volumetric and entirely destructible terrain
  • Infinite worlds with seamless LODs
  • Ultra smooth edits: up to 50 times per second on a single chunk
  • VR Ready: everything is done in background threads, allowing for a constant 90fps
  • Up to 256 materials, with smooth transitions and texture support through Texture Arrays
  • Complete Blueprint interface
  • C++ World Generators to create your own worlds

https://i.imgur.com/8jPngt2.jpg

  • Easy to use custom graph system to create your own worlds
  • Multiplayer
  • Importers: import from meshes, heightmaps, landscapes, MagicaVox, 3D Coat and splines
  • Voxel Physics: enable physics on floating voxel blocks
  • Grass and Voxel Actors
  • Pro Support

There’s a 20% discount until 05.05.2018, so make sure to check out https://voxelplugin.com for more info!

@jonreyno The plugin now includes an experimental cubic renderer

Thats great man! Congratz! I didn’t have time yet to check any video, but I will support this and I hope it gets some attention from @Amanda.Bott putting some links at launcher and showing it during a stream.

Woo hoo, congrats on release!
Edit: tweeted this, just in case :slight_smile:

Would be great to see it on an EPIC stream. Fingers crossed!

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 :frowning:
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

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?

Thanks @NilsonLima @Thunder_Owl !

@Chosker

You can try MultiplayerDemo.h - Pastebin.com : 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:

https://i.imgur.com/hgh9Zep.png

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++.

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.

It might be with some caching optimizations, but I haven’t looked much into that yet, and the performance gain should be pretty low.

Texture arrays are required to have nearly unlimited textures, as shown in https://youtube.com/watch?v=HB1Vh_jrPAQ

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.

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

With more controlled edits and a slower sync rate, it should be able to handle a lot more players.

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.

[USER=“4812”]Daniel Skipper Games[/USER] 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!

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?

@hippowombat

No

Yes :slight_smile:

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:

Untitled.png

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).

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.

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.

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?

Exactly. You can also change the materials are runtime, like here:

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 :slight_smile:

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.