Live data from Hacker News

Voxel Space (2017)

s-macke.github.io

41–50 of 74 posts

Re: Voxel Space (2017)

#41
post #13
post #7

[Edit] ah ok they clarify later as a performance enhancement. I think it was pretty integral to the algorithm, but ok. Wait why do they say painter's algorithm. Comanche and other such voxel terrain engines went front to back and never had overdraw.

Author here. Yes, it is integral. I chose this approach to first show how to draw it from back to front, because the code is easier to understand this way.

I think it's worth noting that you can tilt with this method, but not roll.

Great for a helicopter game, Less so for general flight sim.

That was a large part of how games were designed back in the day. Start with what you have the ability to do, find the game that matches what you can do.

Re: Voxel Space (2017)

#42
post #18

Earlier quoted context omitted.

No? Each pixel on a height map corresponds to a column of voxels of the specified height. You could represent the same height data with a fully general octree and it would look exactly the same.

It's kind of weird to call them "columns of voxels" when the columns can't have gaps and the "voxels" below the topmost are ignored completely. Which is to say, they're just columns...which is (definitionally) just a height map. In fact, an octree for this approach would be _meaningfully worse_ because finding "the topmost voxel" in each column is O(logn)—or maybe worse?—versus O(1) for a height map. With no benefits…

> It's kind of weird to call them "columns of voxels" when the columns can't have gaps

No, it's not weird. The columns don't have gaps because they are columns represented by a height map, which can't display arbitrary voxel geometry (unlike octrees), but that doesn't mean they can't display voxel geometry at all.

> Which is to say, they're just columns...which is (definitionally) just a height map.

Yes. A height map is representing voxel data without overhangs.

> In fact, an octree for this approach would be _meaningfully worse_

That's irrelevant. The fact remains that rendering the same height data using an octree would look exactly the same. If the latter displays voxel geometry, the former does too.

Re: Voxel Space (2017)

#43
post #42

Earlier quoted context omitted.

It's kind of weird to call them "columns of voxels" when the columns can't have gaps and the "voxels" below the topmost are ignored completely. Which is to say, they're just columns...which is (definitionally) just a height map. In fact, an octree for this approach would be _meaningfully worse_ because finding "the topmost voxel" in each column is O(logn)—or maybe worse?—versus O(1) for a height map. With no benefits…

> It's kind of weird to call them "columns of voxels" when the columns can't have gaps No, it's not weird. The columns don't have gaps because they are columns represented by a height map, which can't display arbitrary voxel geometry (unlike octrees), but that doesn't mean they can't display voxel geometry at all. > Which is to say, they're just columns...which is (definitionally) just a height map. Yes. A height map…

Your argument comes down to the meaning of "voxel", then. Voxels have volume, and they are represented with polygon faces. If you think that applies here, I guess more power to you.

Re: Voxel Space (2017)

#44
post #9

Technically this is not related to voxels ("volumetric pixels", so to say), which split the 3D space equally along all three axes. This is just a height map, a set of prisms, not entirely unlike a Doom map. Every prism has a regular fixed-size square base. For 1992, this was mind-boggling though.

Playing it on a decent PC in 2992 was mind blowing.

Re: Voxel Space (2017)

#45
post #44
post #9

Technically this is not related to voxels ("volumetric pixels", so to say), which split the 3D space equally along all three axes. This is just a height map, a set of prisms, not entirely unlike a Doom map. Every prism has a regular fixed-size square base. For 1992, this was mind-boggling though.

Playing it on a decent PC in 2992 was mind blowing.

I bet

Re: Voxel Space (2017)

#46
post #9

Technically this is not related to voxels ("volumetric pixels", so to say), which split the 3D space equally along all three axes. This is just a height map, a set of prisms, not entirely unlike a Doom map. Every prism has a regular fixed-size square base. For 1992, this was mind-boggling though.

Still, it was called voxel rendering back then. Not technically correct, sure, but it sounded as cool as it looked!

Re: Voxel Space (2017)

#50
post #41
post #13

Earlier quoted context omitted.

Author here. Yes, it is integral. I chose this approach to first show how to draw it from back to front, because the code is easier to understand this way.

I think it's worth noting that you can tilt with this method, but not roll. Great for a helicopter game, Less so for general flight sim. That was a large part of how games were designed back in the day. Start with what you have the ability to do, find the game that matches what you can do.

Notice the demo video from Comanche also shows roll.

Edit: To support roll, the renderer essentially rendered the voxel terrain into a frame buffer and then applied camera transformations that gave the appearance of a fully rotating viewpoint. The terrain itself was not being raycast through a true 3D voxel volume.

Post reply on HN