This work is about C++ namespaces.
This is not about C#, Java, nor any other language designed with alternative brevity.
using namespace shouldn’t exist outside of function-bodiesI didn’t think I had to write this post.
I thought everyone had naturally learnt, through frustration and agony, what to avoid when using namespaces. I thought all the C-with-classes folks had died, adapted, or ensconsed themselves in a fortress of code that was too important...
A quick syntax-based overview of C++20 Concepts, as they are in the standard (circa January 2020).
With the release of MSVC 16.3 (and some holiday time), I decided to convert my Eric Niebler-inspired templated SFINAE hocus-pocus approximation of concepts into actual concepts. But it’s so hard to find up-to-date docs on how the syntax is actually supposed to be. After some experiements (and reading), here are examples to get you started.
Let’s come up with a synthetic problem that SFINAE/Concepts can fix. So, we have a log function for numbers, I guess. We...
Sometimes you have things (often allocators) that have no members and you want them not to be given arbitrary size.
Let’s say, for the sake of argument, you’re writing a drop-in replacement of std::vector. You’ll quickly notice that if you’re to maintain a standards-compatible interface, you’ll need to provide support for custom allocators. More importantly, you’ll need to support the storage of instances of allocators, because these days allocators can be stateful. It’s more than likely you’ve never used a custom allocator, because no one does. Well, great news! Someone out there does. I guess that means you’re...
So I burnt out a bit towards the end of last year, just as I started this blog - perhaps because I did. Either way, it went dead. And that isn’t cool. But now I’m back, ready to continue working on shiny, voxelizing things. This post is going to basically be a bit of an algorithm/code dump. But that’s cool, because it’s hard to find this stuff explained online.
Finding a modern algorithm for AABB-triangle intersection wasn’t terribly difficult. All the major papers I have previously mentioned (in my only other blog post to date) reference...
This is the first post of my blog. There are many like it, but this one is mine.
This blog is mainly going to be documenting my journey in writing a voxel-based graphics engine (called shiny). This isn’t my first trip to the rodeo, but it is the first time I’ve done anything with voxels. My first goal is to replicate Cyril Crassin et al.’s thesis Gigavoxels, in DirectX 11. I currently have a Sparse Voxel Octree… viewer thing. It correctly displays a non-mip-mapped 3D texture (the bricks) by navigating an octree, stored in a buffer,...
This work is about C++ namespaces.
This is not about C#, Java, nor any other language designed with alternative brevity.
using namespace shouldn’t exist outside of function-bodiesI didn’t think I had to write this post.
I thought everyone had naturally learnt, through frustration and agony, what to avoid when using namespaces. I thought all the C-with-classes folks had died, adapted, or ensconsed themselves in a fortress of code that was too important...
A quick syntax-based overview of C++20 Concepts, as they are in the standard (circa January 2020).
With the release of MSVC 16.3 (and some holiday time), I decided to convert my Eric Niebler-inspired templated SFINAE hocus-pocus approximation of concepts into actual concepts. But it’s so hard to find up-to-date docs on how the syntax is actually supposed to be. After some experiements (and reading), here are examples to get you started.
Let’s come up with a synthetic problem that SFINAE/Concepts can fix. So, we have a log function for numbers, I guess. We...
Sometimes you have things (often allocators) that have no members and you want them not to be given arbitrary size.
Let’s say, for the sake of argument, you’re writing a drop-in replacement of std::vector. You’ll quickly notice that if you’re to maintain a standards-compatible interface, you’ll need to provide support for custom allocators. More importantly, you’ll need to support the storage of instances of allocators, because these days allocators can be stateful. It’s more than likely you’ve never used a custom allocator, because no one does. Well, great news! Someone out there does. I guess that means you’re...
So I burnt out a bit towards the end of last year, just as I started this blog - perhaps because I did. Either way, it went dead. And that isn’t cool. But now I’m back, ready to continue working on shiny, voxelizing things. This post is going to basically be a bit of an algorithm/code dump. But that’s cool, because it’s hard to find this stuff explained online.
Finding a modern algorithm for AABB-triangle intersection wasn’t terribly difficult. All the major papers I have previously mentioned (in my only other blog post to date) reference...
This is the first post of my blog. There are many like it, but this one is mine.
This blog is mainly going to be documenting my journey in writing a voxel-based graphics engine (called shiny). This isn’t my first trip to the rodeo, but it is the first time I’ve done anything with voxels. My first goal is to replicate Cyril Crassin et al.’s thesis Gigavoxels, in DirectX 11. I currently have a Sparse Voxel Octree… viewer thing. It correctly displays a non-mip-mapped 3D texture (the bricks) by navigating an octree, stored in a buffer,...