playform icon indicating copy to clipboard operation
playform copied to clipboard

Fix mesh seams

Open bfops opened this issue 10 years ago • 7 comments

There are gaps between different LODs. http://procworld.blogspot.ca/2013/07/emancipation-from-skirt.html

bfops avatar Jan 06 '15 22:01 bfops

Maybe no block should generate polys that cross its edges, and instead we should run seam fixing code between any two adjacent blocks, regardless of LOD.

bfops avatar Jun 14 '15 18:06 bfops

It would be useful to enforce the property that a voxel is Surface if any of its higher-LOD breakdowns are Surfaces. Right now, a voxel is (usually) Empty if all of its corners are on the same side of the surface, but it's possible that the surface enters and exits the voxel between corners in a way that's picked up by higher LOD versions. The problem is that when there are adjacent voxels of different LODs, they disagree on where corners exist, so they can disagree on where to draw polygons.

bfops avatar Jun 17 '15 14:06 bfops

Given ^that property, mesh extraction should be rewritten to connect any adjacent voxels regardless of LOD. Then we can support voxels that stay big because they just don't have any more detail. That lets us bump up our LOD a lot, because we won't be paying the cost in places where the detail doesn't exist.

bfops avatar Jun 18 '15 19:06 bfops

The server should support an extra request kinda like RequestSeamBetween(BlockPosition, LOD, BlockPosition, LOD)

bfops avatar Sep 28 '15 16:09 bfops

Wait until after #143

bfops avatar Oct 11 '15 17:10 bfops

I think this will be easier once #170 is done, since the edges between chunks have different behavior from the edges within chunks.

bfops avatar Jan 20 '16 13:01 bfops

I've started this in the fix-mesh-seams branch.

bfops avatar Feb 09 '16 20:02 bfops