richardbiely / Voxelmetric

An efficient voxel framework for Unity3d
GNU General Public License v3.0
158 stars 27 forks source link

commit 479 #49

Closed XeonG closed 7 years ago

XeonG commented 7 years ago

few bugs.. -uv's are a stretched to match the optimized polygon faces, so textures aren't tiling in a square to fit the block sizes they are meant to. -trees no longer generate, just 1 log block -diaghud is totally doesn't work -and it seems placing/breaking is also broken.. basically the default scenes to showcase voxelmetric looks a little broken right now.

I'm still using an older voxelmetric build, but some of the new additions look good to make a jump to the latest builds sometime ...just the broken uv's are pretty much the biggest issue holding me back from doing that :)

richardbiely commented 7 years ago

If you read the changle log you would see it is as indented. I just did not have time to write a new shader that deals with the issue ;) As for the rest, it is already fixed

XeonG commented 7 years ago

nah I didn't read all the commit logs.. just missed that..

so we'll need a custom shader for the texture version in future?

was this change some micro optimization then? doing the proper texture tiling via shader better than how it used to be done with uvs properly set? are you sure there won't be any negatives to this? like I dunno decals that are overlayed on a voxel block surface? those won't get messed up with this change will they? just a thought.

richardbiely commented 7 years ago

I would not call it a micro optimization. Rather a macro one. Neighbor faces are now merged together if they are of the same type. This saves a big amount of memory when building meshes.

There wont be a problem with decals and such. First of all, they are not even supported at the moment :) However, if they were, a block with a decal on it simply would not be merged with its neighbor. Not only the type has to match. Meta data have to match as well in order for faces to be merged together. E.g. right now they are not merged if blocks of the same type have different AO values.