We've got the crystals so they can be jutting out from any of the 6 faces. I might also add 2 mutation bits for 4 rotations on each face.
Crystals
I've added one version of crystals. There's still some texturing stuff I want to figure out but they actually don't look half bad they way they are.
Voxel Engine Demo 4: Dynamic/Updating Objects and Special Collision Shapes
I've started doing the work to add voxels that can allocate and store information for themselves. I've also added support for voxels that have different sorts of collision geometry. Right now we only support Axis-Aligned Bounding Boxes for collision. You can also define custom geometry for each voxel that can be either static and placed in chunk buffer, or dynamic and get generated every frame. The lighting still works like before but the new blocks and shapes have not been implemented correctly. There are also still some bugs and weird behavior with the collision system.
Another Collision Testing Area
I've made fences and subsequently run into a lot of bugs with my collision system for the player. I've solved most of the major bugs but you can still get caught on edges between irregular blocks which will have to get fixed eventually. Not sure how to do that yet though...
They're Stairs Now
Stairs are now rendering correctly. Their collision information isn't being utilized yet though.
These Are Supposed To Be Stairs
I'm having some problems with getting some custom vertices into the vertex buffer. Also in the middle of added a way for blocks to allocate/store more information than simply the type. I've already implemented a memory arena to handle to the allocations and deallocations (hence the turquoise readout in the top left).
Converting 3D Coordinates Into Screen Space
Finally got my Matrix4 * Vec3 function working so that I can use my view and projection matrix to get a screen coordinate for a specific point in 3D space. This will be useful for dialogue boxes and clipping faces in front of the player when in 3rd person.
Some More Debug Readouts
I added some more debug readouts in the top left that I can easily enable and disable. Also changed the clear color to white for the time being so we can see which faces are actually being drawn. I've also gone and sped up the rendering a little bit more. We used to drop to about 24FPS is large open areas. Now we can always stay above 30 since our early out in the loop is when the block we are checking is solid. We get a consistent 60 inside cave-like areas which is good.
New Textures and Simple UI Buttons
I added a different texture pack to start from. Still not my own textures but it'll serve as a base point for a while as we slowly start making our own textures. Also added a way to easily add buttons to the UI. I went with a method proposed by Casey Muratori called "Immediate Mode GUI" (https://www.youtube.com/watch?v=Z1qyvQsjK5Y). It was surprisingly easy to implement.
Matrices Are Hard
This is what happens when you accidentally screw up your translation matrices