I know enough about 3D graphics to understand the difference between polygons and voxels, but at the same time I know enough that I realize I don't actually understand how voxels work, how they actually get drawn in the end.
So a voxel is a point/cube in 3D space, akin to how a pixel is a point/square in 2D space. But how does the computer draw it on screen? How does the logic work to put the thing on screen?
For a polygon cube, it uses 8 points and 12 triangle polygons, passes the info to the GPU, and tells it to draw a triangle from A to B to C a bunch of times.
How would this work for a cube represented by a voxel? Does the voxel coordinates represent the center of the cube? Lets keep it simple and say it represents a corner, and the size represents the length of each edge. How does the computer process this info to draw your 1 voxel cube? Does it figure out where all the corners of the cube are and plays connect the dots? Or am I fundamentally misunderstanding this, cause whenever I try to think about it, it always feels like at some point it must do something similar to how polygons are drawn.
@alyx I always thought that the advantage of voxels is that you can approximate them when rendering - as pixels, small circles, whatever. If "voxel games" render them as exact cubes, that's cool retro aesthetic but it's missing the point of why voxels exist. IMHO.
@fuxoft
That's the thing that always confuses me, how are they rendered? Let's say I have 1 voxel on my screen, and let's say it occupies roughly a tenth of the screen. What would or could I see, and how is it drawn in the end? Would it be a cube that I could spin around? Would it be a sphere? If it were a 2d shape like a square or circle, would it behave like a sprite?
And for any approximation, how is the final step of drawing it to the screen different from having a 3D model of those approximations made from polygons?
@alyx
I'd say that if your object is represented by a single voxel, your scale is way off. Single voxel should be ignored as an unimportant noise. Voxels are used for objects with complex shapes (at least 100s of voxels per object), mainly when it's important to represent their volume.
@fuxoft
You missed the point of my question...
@fuxoft
Take this as feedback, and nothing else.
You would make a horrible teacher. In this thread, you were the only person that gave off the feeling that maybe you have worked with this or that you know the technology in depth, but at the same time you were the most unhelpful, to the point that it honest to god feels like you are intentionally skirting around the problem to be an ass.
You give off the impression of being a pretentious, condescending douchebag.
I tried to make the problem as simple and straightforward as possible. I used the example of 1 voxel because I want to understand what happens to the individual voxels.
You gave the most unhelpful and stupid answer. Obviously an aplication wouldn't have a single voxel on screen, just like you wouldn't have a model made up of a single triangle. But to understand now a complex model works, I first need to understand what happens to an individual polygon.
Then you mention "many, many, many ways to render voxels". That was what I was looking for, but you give 0 examples. That was what I was basically begging for, and you repeatedly missed the point. Give a few examples and explain what happens. That's what I managed to get from everyone else in this thread, and managed to better comprehend the problem I was searching a solution to.
But then you continue to be condescending when it was simply not necessary. I understand what voxels are used for. In my literal first post I state I understand how voxels are different than polygons, but I don't understand the final part of how they get drawn on screen. You ONLY went on tangents, and at no point did you touch my actual question.
Let me make myself VERY clear. At this point, I DO NOT WANT any more answers from you. This is ONLY for feedback purposes. You have been nothing but unhelpful and VERY annoying.
@fuxoft
I told you I don't want an answer from you anymore. This is to let you know you're now muted.
@alyx Hopefully other people will still find this conversation informative, concerning both voxels and you.
@alyx
Once more (whether you want it or not): Voxels are not something that's "drawn on screen". Voxels represent volume. A single voxel cannot do that very well. You can render voxels as polygons, cubes, points, circles or smiley faces. If you play a game with "cube graphics", those are not voxels in the original sense of the term. I tried explaining this to you and non ironically asked if I understand your question correctly. You got angry so I probably still don't.