Reference post for background information:
Goal of this project:
To create a voxel based water system that will give a decent feel of water simulation while not hogging resources. ( isnt that goal of everything? )
So the first thing to understand is what the current mindset is. I think the best option would be to create some way of defining ocean/source blocks from voxel shore water.
The dark blue would be your source blocks, and your light blue would be the voxel water filling in until it reaches full. Once the voxel shore water fills up it would become a source block. To save on resources we can limit how much one source block can spawn outward from an open face. This means you would need several source blocks to be able to get a wide area to fill up all the way and make more source blocks.
You might be asking, how do you plan on making this voxel based? The video from the previous topic in the design section showed an example of a cell based water system. If you understand the basics of art you can realize that everything we see is more or less a pixel and a pixel is simply a small block of color. You could use this understand to apply this to real world objects. Legos can look some serious shit if you build it big enough and you spend enough time with it. Why? because they are no different than the big portraits that we make they are pixel based ( assuming you understand the previously describe logic ). Using this knowledge we could apply the theory to our voxel system. If we were to break down each block into 8 sub parts we now have 8 pixels to display 3d water information with.
The dark blue would be your source block, and the light blue would be the voxel information of the water flowing out. As the water flows out the sub blocks would pop in and out as the water moved through that space. I can see several issues coming from this:
- Water travel would have to be processed by the CPU or GPU, this could cause a serious strain on the system if several source blocks were to be in play. How much? not sure at this point as this is very theory based at this point in time.
- We have an entire world to manage of upwards to 10milllion blocks. If we want to keep the premise of the game ( players can make what they wish ) while still providing a solid feeling ( high fps and responsiveness ) we are going to have to figure out a middle ground. This is not a water simulation game so we can not devote 100% CPU to rendering of it.