0100 HOURS:
First off, thank you to everyone who followed and commented on this project. The support means a lot to me, and to the other guys helping with this.
Today (yesterday, Thursday) was a combination of website redesign and writing for a prerelease video. None of us like HTML, so the website redesign ended about fifteen minutes later than it should have with much head shaking. That was actually much better than I had been expecting. We quickly moved on to writing for the prerelease video, which we wanted to have the terrain working and looking very shiny for. This quickly devolved into a hellish procedure of searching for minor bugs. In fact, there was only three bugs: a bad atomic lock on octree sector deletion, not updating the 3D list indices of terrain meshes, and the dual contouring algorithm having four flipped cases.
The last bit took the longest to track down, since I thought it was in the heightmap to voxel algorithm I was using. I cleaned up the algorithm and got some clean edges, but to my surprise, all the normals were still junk. I decided to go down the line further to the only other place normals were used, which was the Dual Contouring (yes, the one from Everquest Next. The dude who wrote it for Everquest Next has a very vague tutorial on how it works, a vague tutorial that works awesome). Now since nobody on the team can visualize isosurface data in their head, our terrain stores three 4-component normals per voxel (xyz-extrusion), packed into 28 bits. Assuming you know what Marching Cubes does, the Marching Cubes part of the Dual Contouring grabs the proper normal based on the edge the vertex is on. Problem was that some of the edges were flipped because the edges were defined circular. The result was that vertical surfaces would get a normal with a length of zero, which the mathy parts would then default to a normal pointing up.
tl;dr was spinning in a circle instead of going in a line
In the morning (today, Friday) we’ll be recording, editing, and hopefully adding content specifically for the video.
track that solved it all (irony): https://www.youtube.com/watch?v=IS_kaU8teSs
0 comments