Every paper that I've seen up to date that uses voxels all seem to emphasize real-time voxelization so that it can be ran each frame. this is due to the fact that when an object rotates, the voxel structure can not keep AABBs (axis-aligned bounding boxes) without there being noticeable gaps between voxels, set aside the fact that these will need to snap to a grid if the scene is inside an octree (or some other data structure that is like an octree). Since I do not like the constant voxelization, especially since it can use resources that can be used for other tasks, I came up with a method (I have not tested this yet). The idea is that voxelization will only occur when an object is changed (vertexes moved or changed completely), which generally happens during animations and mesh deformations. The reason that meshes will be voxelized once is that a single matrix can represent the rotation of an object.
Vertices are stored in local space, no rotation or global position data affects this. when the vertices are passed to the GPU to be rendered, they are sent through a matrix to be transformed into world space (I'm not 100% confident that this is the case). My point here is that the rotation matrices can be applied to voxel rendering where the voxelization of an object is like the local vertices. The only twist is that voxels won't be transformed. This is because there can be voxels ranging from thousands to millions and will be a bad idea to do all these transformations on a single GPU thread. Instead of the voxels being transformed, the ray will be, therefore, saving a lot of time while keeping the voxels in an AABB format with no gaps while also reducing the amount of voxelization drastically.
If your wondering how these voxel representations will fit in a data structure that is on the scene level, or in other words, all the voxels in the scene are fit onto one tree, There are multiple possibilities that I have come up with. 1: BVH data structures (Bounding Volume Hierarchy). 2: Octree. just surround the rotated bounds of the voxels in an AABB bound that is a square and is snapped to the octree grid I guess.
Thoughts?