Wow this is amazing! It's one thing to see a static representation but to see this being directly affected to the underlying skeleton is fantastic! Great work...very exciting to see advancements in the realm of voxels!
This is exactly what I've been looking for, I knew that simply bone weighing each Voxel was a feasible approach to animating them through GPGPU. Thank you very much for sharing.
Does it animate the voxels by an underlying, skinned polygon object, or is it just loading different keyframes like in those classic Quake 1+2 .mdl editors?
@noobenstein No, I haven't designed my octree data structure to be dynamic (alterable), but rather focused on the animation technique. Though it should work with a dynamic octree as well as it does with a static one.
One thing though to be honest... a lot of us "old school gamers" loved the old highly detailed "pixel art" of games.
Imagine something like this, but with fluid animation and in 3D. If it's too "boxy" at 128 pixel height, could you introduce blurring or smoothing? Old TV screens had blurring, naturally.
Hyper-realism isn't the best direction to go in. MineCraft is a good example of why hyper-realism isn't the most fun thing.
Very interesting! Never seen animated voxels like yours! Keep it up! Hopeflly this is going to be the greatest en biggest step in relatime 3D/rendering and interactive(Game)design!!
@marshviperXwins My voxel structure uses ~50bytes/voxel which is way too much. But state of the art voxel engines (which also store lots of visual data associated with their voxels (like color, texture coordinates..)), manage to compress the memory footprint of a voxel down to ~1bit/voxel. So it should be possible to compress bone weights, too. Multiply the size of one voxel by the total number of voxels (in this video ~3M).
Seemed to drop a lot of frames once textures were added to the scene. Is this because its now rendering across a larger mesh, therefore texture files are much larger? Or perhaps I'm getting confused, I've not done this kind of stuff in quite some time.
@TheExpertx4 The drop in frame rate comes from the shadow mapping which requires the whole voxel octree to be traversed twice (since it's rendered twice). Anyway, I've written the voxel renderer only for illustration purposes. The animation technique itself can be implemented with every kind of renderer. I'll cover that in the next vid - working on it.
@SappYoda Skinning would be done by painting the bone weights on the voxel model. So, if your voxel model has a high resolution (and therefore large surface) it might take long.
This can hopefully be implemented in today's 3D Packages like Maya/MAX/Motionbuilder. Otherwise I presume it's a pain in the ass to animate it. We graphic artists are quite lazy and learn about 2 programs max. ;)
I love those innovations every 2-3 years in rendering techniques. Nvidia/ATI New World Order has to come to an end someday.
@1776Phoenix1986 The octree is static and never altered. The animation is realized during the rendering phase, when you have to compute the voxel's final screen positions. The voxels simply are drawn at the correct (the transformed) position. For dynamic scenes, every dynamic object must be represented by its own octree, which can then easily be moved as a whole.
go work for bruce del?
Cavemanbennett 4 months ago 4
Wow this is amazing! It's one thing to see a static representation but to see this being directly affected to the underlying skeleton is fantastic! Great work...very exciting to see advancements in the realm of voxels!
TheLifeEnigma 4 months ago
There is like stepless LOD. That is very useful to gain all around optimization.
Very cool, I'm thinking that this might someday(atleast 5-10 years) challange polygons.
Amazing, this technology needs few more another breakthroughs for the most common problems.
RealationGames 4 months ago
thats minecraft HD, isnt it? :)
i think this model needs a little bit more resolution when each voxel is as big as a monitor pixel we will not need antialiasing any more
TheKiwiSniper 5 months ago
he sounds like Bruno
akjohnny 6 months ago
Amazing, keep up the good work!
Staudinka 6 months ago
Good job, impressive!
nicoprkl 7 months ago
This is exactly what I've been looking for, I knew that simply bone weighing each Voxel was a feasible approach to animating them through GPGPU. Thank you very much for sharing.
SteamyThePunk 7 months ago
Great stuff – this very much seems like the missing link for voxels.
Also, being able to tile a voxel "texture" over a deformed 3d grid to model ground and the like, will be very important, I think.
benjohn75 7 months ago
Thank you very much!
SarahC2 7 months ago
Does it animate the voxels by an underlying, skinned polygon object, or is it just loading different keyframes like in those classic Quake 1+2 .mdl editors?
omma911 7 months ago
@omma911 The voxels are directly influenced by the skeleton.
radulphi 7 months ago
@radulphi very impressive, thank you.
omma911 7 months ago
Looks interesting! I'm probably going to read your paper (and code) soon :)
LeTinctoire 7 months ago
There are so many skeptics for voxel technology just because they don't understand.
dingumfCallofDuty 7 months ago
you sound wet ...
MrElgigante 7 months ago
Although I suppose such techniques (128 high voxel characters), with pixel art, would be considered "too fun" for PHD paper. lol.
noobenstein 7 months ago
@noobenstein No, I haven't designed my octree data structure to be dynamic (alterable), but rather focused on the animation technique. Though it should work with a dynamic octree as well as it does with a static one.
radulphi 7 months ago 4
Could you modify the voxel image, in real-time? As a result of weapons?
For example, an enemy slashes him with a sword on his arm or something, and now the voxel image displays a wound, that animates properly?
As in, dynamically generated modifications. So the wound appears where it really was created instead of pre-made "wounds" like in some games.
noobenstein 7 months ago
Very impressive technology.
One thing though to be honest... a lot of us "old school gamers" loved the old highly detailed "pixel art" of games.
Imagine something like this, but with fluid animation and in 3D. If it's too "boxy" at 128 pixel height, could you introduce blurring or smoothing? Old TV screens had blurring, naturally.
Hyper-realism isn't the best direction to go in. MineCraft is a good example of why hyper-realism isn't the most fun thing.
noobenstein 7 months ago
Very interesting! Never seen animated voxels like yours! Keep it up! Hopeflly this is going to be the greatest en biggest step in relatime 3D/rendering and interactive(Game)design!!
IceXuick 8 months ago
Maybe someone already asked this, but how much memory does that voxel octree model consume on the GPU, including all of those per-voxel weights?
marshviperXwins 9 months ago
@marshviperXwins My voxel structure uses ~50bytes/voxel which is way too much. But state of the art voxel engines (which also store lots of visual data associated with their voxels (like color, texture coordinates..)), manage to compress the memory footprint of a voxel down to ~1bit/voxel. So it should be possible to compress bone weights, too. Multiply the size of one voxel by the total number of voxels (in this video ~3M).
radulphi 9 months ago 3
Voxels are indeed the future, but the methods are a bit difficult as of now, it would seem.
YourMotherx900and26 10 months ago
looks like point cloud is still superior
adj789 10 months ago
@adj789
voxels are a form of point cloud data
1776Phoenix1986 10 months ago
@1776Phoenix1986 did not know that
adj789 10 months ago
Seemed to drop a lot of frames once textures were added to the scene. Is this because its now rendering across a larger mesh, therefore texture files are much larger? Or perhaps I'm getting confused, I've not done this kind of stuff in quite some time.
TheExpertx4 10 months ago
@TheExpertx4 The drop in frame rate comes from the shadow mapping which requires the whole voxel octree to be traversed twice (since it's rendered twice). Anyway, I've written the voxel renderer only for illustration purposes. The animation technique itself can be implemented with every kind of renderer. I'll cover that in the next vid - working on it.
radulphi 10 months ago 5
@radulphi , I'm looking for the download link but I can't find it! Could you point me towards it please? xx
SarahC2 7 months ago
@SarahC2 I've updated the video description in all my videos. Hope it's easier to find now.
radulphi 7 months ago
I thought voxels were done just for terrain, like in Crysis. I guess I have been mistaken.
l33tpete 10 months ago
As someone who doesn't know too much about what this is, this is still really cool.
BlockJuice 10 months ago
This comment has received too many negative votes show
There is a ton of Saliva in your mouth holy fuck.
pikoo0o 10 months ago
@omma911 it can't be a pain to animate since it uses skeletal animation.
It may be a pain to skin though.
SappYoda 10 months ago
@SappYoda Skinning would be done by painting the bone weights on the voxel model. So, if your voxel model has a high resolution (and therefore large surface) it might take long.
radulphi 10 months ago
@SappYoda With the right tools it should be no different from painting weights on a polygon model.
Cogboynz 7 months ago
This can hopefully be implemented in today's 3D Packages like Maya/MAX/Motionbuilder. Otherwise I presume it's a pain in the ass to animate it. We graphic artists are quite lazy and learn about 2 programs max. ;)
I love those innovations every 2-3 years in rendering techniques. Nvidia/ATI New World Order has to come to an end someday.
omma911 10 months ago
How does the octree cope with animation and dynamic scenes, does it increase the computational cost of building the octree?
1776Phoenix1986 11 months ago
@1776Phoenix1986 The octree is static and never altered. The animation is realized during the rendering phase, when you have to compute the voxel's final screen positions. The voxels simply are drawn at the correct (the transformed) position. For dynamic scenes, every dynamic object must be represented by its own octree, which can then easily be moved as a whole.
radulphi 11 months ago 4
Nice
anothergol 11 months ago