0
\$\begingroup\$

First, let me clarify that I don't understand much about programming, neither about 3D modelling. And I couldn't think or find a better place to ask this, but I hope I don't make too many mistaken assumptions.

But I'm still quite ignorant about 3D modelling in general, I don't even know the difference between then and polygons, for example.

  • Pixels and Vectors:

So, from the little I think I know, pixels are limited amounts of information that tells the monitor how to light a certain number of LED's. So if they are resized, they lose quality. While a Vector is somewhat of a calculation of a certain shape and/or colour (I think), so even if they are resized, they won't lose graphical quality.

enter image description here

  • About Voxels/polygons:

So, from what I could understand about Voxels/Polygons is that they are more "closer" to Vectors than to pixels in the sense that they can be re-scaled, twisted and textured in any way you want without losing quality.

  • The Question:

So, taking into consideration what a pixel and a Voxel is, it would be possible to make Voxels work more (if not the same) as pixels?

What I mean is that, while Voxels are more or less the calculus of a three-dimensional shape in a space, there could be a way of making this three-dimensional shape be a limited amount of information? Or this is more closely related to Polygons?

My conception is that since these 3D information are not changeable, just like a pixel, you wouldn't need as much processing power to render these things. But you wouldn't be able to do much either, since they wouldn't be able to be interacted with like a voxel.

I don't know if I was clear enough, but let's just say that the idea is to fill a certain space with X number of pixels, but three-dimensional, without the use of 3D model programs.

Like a 3D jpeg image, but without the "filling".

  • The (possible) function:

Well, while you wouldn't be able to make day and night cycles, solids, fluids and whatsoever, it could be used in really niche applications where you really don't want to use a lot of processing power. Just like a flash game, so to speak.

Or Voxels are already just like this?

\$\endgroup\$
3
  • \$\begingroup\$ It sounds to me like you're just describing voxels, which are the 3D analogue of pixels - a set of values corresponding to points on an integer lattice. (Pixel standing for "picture element" while voxel stands for "volume element"). Can you clarify for us what kind of game you're trying to make, or what kind of effect you want to achieve, and where you need help from us in achieving it? \$\endgroup\$
    – DMGregory
    Dec 13, 2021 at 22:14
  • 3
    \$\begingroup\$ You may also be interested in "Are there viable alternatives to polygons for creating 3D worlds?" \$\endgroup\$
    – DMGregory
    Dec 13, 2021 at 22:15
  • 1
    \$\begingroup\$ Yes this is actually really useful where we use lidar point clouds, because they are naturally in "point form" and hard to translate into polygons. On the other hand, polygons are better for efficient rendering and storage space, not to mention surface properties and animation. \$\endgroup\$
    – Jay
    Dec 13, 2021 at 22:53

1 Answer 1

1
\$\begingroup\$

One useful way to create and utilize voxel data is to have the underlying data of an object simply be a list, array, vector, whatever, of numbers, colors, etc. From this voxel data, which is analogous to a 3d version of a 2d image, you can create a renderable mesh made of polygons using some algorithm like Marching Cubes or perhaps like Minecraft: loop over all the voxels, for each one check the adjacent voxels, and for every adjacent clear space add a quad (or two triangles) polygon with the color and/or texture of the corresponding voxel data. Either way, short of using raytracing (which is a simple concept to understand but can be pretty advanced to implement), you will likely store the data as voxels but create a mesh around this data made of polygons to render it.

To directly answer the question, voxels (when rendered as cubes) can behave exactly like pixels and act as a sort of 3d image. The voxel data is not necessarily the same as what gets rendered on the screen, however; think of it as more of a point cloud of numbers, that you have to wrap a mesh of your choice around. There are smooth ways to do this, like Astroneer's terrain, or more blocky, such as MagicaVoxel models and Minecraft terrain.

What you're describing is exactly how voxels already behave, but understand that short of raytracing you will have to use 3d Polygon rendering to display the data.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .