Jump to content

Tutorial: Voxelmancy Essentials


Morand

Recommended Posts

Tutorial: Voxelmancy Essentials

 

This tutorial was made for Landmark. I didn't make the tutorial or play the game but, since it's based on the same technology, we can assume that it will work pretty much the same.

It starts with the very basics and ends with some more advanced concepts.

 

Whether or not you have already tried Dual Universe, this tutorial should be able to help you to understand this awesome (but very difficult to master) technology which is the Voxel.

 

As a voxel beginner, I think I am not the only one who yelled at these crazy little voxels, "WTF happened?! I didn't ask you to do that!"

 

 

 

The Inner Space of Voxelmancy

Voxel Characteristics

First of all…and this might hurt your brain a bit…a voxel is NOT a shape. It’s not the 1x1x1 cube shape you add with the smallest ADD brush.

 

Actually, a voxel is a point. The different points (voxels) are connected to each other by lines (vectors). Those vectors form the outlines of the “cubes” that you see in the world when you use the ADD brush. (In other words, it takes many voxels to add enough vectors to make a shape.)

 

When you use the building tools to change the shape of the cubes you see in the world, what you’re actually doing is dragging one (or more) of those voxel points into a new location…and then all those connecting lines move too, thus changing the outline of the shapes you see.

 

There are only TWO voxel characteristics that matter to builders.

  • The position of the voxel
  • The material applied to that voxel’s cube space

Also, for the purposes of this document, there are only four terms that matter:

  • Voxel : The point in space that is the end point of one or more vectors.
  • Vector : Any line connecting two voxels together.
  • Shape : Any collection of vectors that outline an area thus creating a contained shape. (The default shapes are cubes, but voxels are easily moved around to create almost any shape. See below.)
  • Cube space: In game terms, the natural "cube space" around a voxel is the same volume of space used by the ADD brush when you place a 1x1x1 cube into the world. Voxels *usually* live within their cube space, but can also comfortably live outside of it. However, the voxel is *always* associated with that cube space.
 

 

 

What data is in a voxel?

Imagine a grid of dots. (Each dot is a voxel.)

121.png.8f76bde9a5f58eabf58f981e14aa4978.png

Now imagine that each of those dots is connected to its neighboring dots by lines (vectors).

122.png.e6275e9fb912852e948139bf819177f7.png

Now, stack that up so that it’s in three-space. Voila. You have a decent representation of the voxel points in their natural “healed” cube-like state.

123.png.89b218bce14e05a575da74c70ae291d2.png

NOTE: The positions of the voxels, in the rigid formation shown above, is the natural “healed” state of the voxels. The resulting shapes created by the vectors connecting them are what we normally see as “cubes” (and which, erroneously, we all have been calling voxels even though those shapes are actually composed of voxels instead.)


When you move one of the voxels, the vectors connected to it also move. Thus, you change the shape of any cube seen as soon as you move a voxel.

124.png.5b4454b14d436151af3de000667c1546.png

So just remember…everything is connected. You can’t move one thing without moving another. All the different welding, recopying, and smoothing tricks you may hear about are just different techniques to get these dots to end up in positions that make cool shapes.

Last but not least: Cube space. The world is gridded out into cube space. (NOTE: Cube space is the same size as the smallest ADD brush when in cube mode.) By default, voxels live along the edges/corners of these cube spaces and the resulting vectors connecting them look like cubes.

Normally, voxels need to stay within their cube space. However, there are building techniques that let a voxel wander out of its normal cube space. This is how shapes that are bigger than a cube are created. Voxels can also be smashed down into the center of that cube space, which allows the creation of smaller shapes as well. Roaming vectors let voxels wander WAY outside their normal cube space, but that gets pretty hairy to explain so we’ll discuss it some other time.

 

 

What Material is on the Voxel?

Material, in this case, is the material you chose from the Element Tray. (Example: Red Lumicite is a material. So is Hammered Gold or Raw Iron.) When a material is specified for a voxel, that changes its appearance in the world.

That’s it. There’s only two special cases that might not be immediately obvious:

  • Air. Yes, air is a material. Air voxels act *exactly* like regular voxels. They are just painted with a 100% transparent material, which is air.
  • Default terrain. Everything in the world that has notbeen changed by a player is designated as “default terrain”. It has less data than a user-changed voxel so that we can optimize the heck out of stuff that players haven’t changed.
    • The important characteristic about this default terrain is that it cannot be copied. (Its data structure is simpler and doesn’t have all the dots/vertices described earlier.)
    • The other important thing to remember is that HEALing a voxel returns it to this “default terrain” material. And that’s why you can do nifty stuff with healed earth.

These latter two special cases (Air and Default Terrain) cannot be directly selected with the selection tool. So the only way you can “grab” them is by also grabbing another nearby shape that’s painted with any of the other materials in the game.

Side Note: What is a Roaming Vector?

When we added Roaming Vectors to the game (6/26/2014), we increased the precision of lines and shapes quite a lot. This was done by “borrowing” nearby voxels and letting them “roam” outside of their normally allowed cube space. This means that nearby shapes sacrifice some of their own definition so that another shape can get one or more extra voxels added to it, thus providing more possible vectors, which enables that shape to have more detail.

 

 

Pasting Dominance

There is one thing to keep in mind as we go through the rest of this doc. Any item that you are pasting into the game is dominant. All the voxels within that copied area will keep their relative positions. This means that any shapes nearby are likely to change shape slightly as their voxels reconnect to these new voxels, and the vectors connecting them are changed.

This “dominance factor” can be very useful when fixing any warpage that occurs, because any current data is overwritten by a paste. That lets you “re-weld” voxels and vectors by pasting in small bits that are the desired shape.

 

 

Voxelmancy Techniques

Okay. Now let’s talk about the various building techniques the community is using.

Micro-shapes & Anti-shapes

NOTE: Players have been calling them microvoxels and antivoxels, but that makes this discussion harder to follow when talking about voxels in conjunction with these shapes, so we’ll refer to the microvoxels as micro-shapes, and antivoxels as anti-shapes. (Sorry for the switch.)

Both of these kinds of shapes are really just normal shapes that appear to be different. (It’s still useful to give them names for easy reference, but the point is…they’re still just normal shapes composed of voxels and vectors.)

When you smooth a regular shape down into a micro-shape, you’re essentially just taking all the voxels the cube was composed of and squashing them down toward each other so that the resulting shape is a very small cube.

Side note: Just to expand your mind, you’re also enlarging the air cubes around your brand new micro-shapes because you’re dragging those connected voxels away from the center of those shapes. Right? Everything is connected.

Still, it’s cool, right? That voxel *looks* smaller and that make it useful for lots of building stuff.

So what’s an Anti-shape? It’s exactly the same thing as a “micro-shape”. But its material is “air”. So it’s (currently) tricky to make, but it behaves in all other respects exactly as a smoothed-down (micro)shape. You just can’t see it or select it directly, because it’s made of air.

Why do micro-shapes warp other nearby shapes?

Remember how the voxels in a micro-shape are squished toward the center? Well, when you copy that micro-shape, you are really selecting the positions for the voxels that constitute that micro-shape.

When you copy that shape into place near another existing shape, the vectors of the existing shapes are forced to attach to the voxels in your micro-shape. The game knows that what you *want* is for the thing you copied to paste as true as it can, so it connects the vectors from other nearby shapes toward the voxels you smashed into the center of your shape and this can cause warpage on the neighboring shapes. Make sense? Again, everything is connected.

“Strings”

So now let’s paste several of those new micro-shapes in a row, one cube space apart from each other. What happens? They stretch into strings! So cool!

But no, that’s only what it looks like. What’s actually happening is that you pasted one micro-shape down (composed of a bunch of voxels and vectors) and then you copied another identical micro-shape in the cube space next to it. When you did that, the vectors from the previously pasted MV stretch out to connect to the voxels in the new one you pasted, and the resulting shape looks like a line. (Remember, the last shape pasted is dominant and everything else warps to it.)

There is a convoluted process that force the end points of the string to align to the normal voxel borders. This technique creates “Antivoxel strings” and is Example 4 in the section below.

 

 

Warping vs Non-Warping Shapes

 

There’s a bunch of techniques designed to create objects that don’t warp neighboring shapes, but ultimately, there is only ONE way to avoid warping.

 

That way is to ensure that the voxels in the shape you are pasting are aligned in such a way that they don’t cause the vectors of a neighboring voxel to move.

 

That’s it. Just don’t make the vectors move and your shapes won’t warp.

 

To make that seem simpler, here’s a few images. These images don’t show all the voxels. They show the shape instead and the normal “cube space” that the voxels for that shape live within.

 

Ex 1: Micro/Anti voxel

Regular “microvoxel” or “antivoxel”: This shape lives in the very center of its normal cube space. It will warp EVERYTHING IT TOUCHES because any neighboring voxel will extend its vectors out to reach the voxels in your micro-shape.

 

 125.png.7b3f482e908e51d963a60915ed1b5880.png

 

Ex 2: Microvoxel strings

Any “string” that is created by pasting two of these centered MVs together will still cause warpage everywhere it touches because the end points of that string are in the center of the cube spaces they represent.

 

126.png.6fff337eb72e42f1873ee349c3aed45e.png

 

Ex 3: Any shape with a “normal border” flat edge

This shape would not cause warpage *if* it is pasted onto something along its bottom side. (Example: If you pasted it onto a flat floor.)

It would cause warpage if it was situated next to any shape above, or to the left/right of the shape, because those neighboring vectors would be forced to extend outward to connect.

 

127.png.eaa79dcd36aec3235c16179d85731d1b.png

 

Ex 4: Antivoxel strings

This is the shape that many people call an “AV string”. This is a useful shape because it still looks like a thin bar, but its ends are exactly at the “normal” cube space border and is in the center of the shape. Because it’s situated properly, any normal cube connected to either end of this string will not cause warpage of the block it’s touching.

 

128.png.b9f4f4173a1c07266d08de86211bd41a.png

NOTE: Since the Smoothing tool change on 6/18/2014, it’s been possible to make these strings directly by making a column of 1x1 cubes and then smoothing it 3 or 4 times. Copy the middle smoothed “strings” that you see and the end points will match up to the cube space on the top and bottom.

 

So What’s a MegaShape?

Honestly, it’s just the exact opposite of a microvoxel or antivoxel. Players have been calling this a Megavoxel. (And again, for the purposes of this document, we’re going to start calling this a “Megashape” instead to avoid conflict with “voxel” conversations.)

Instead of crushing the voxels in your shape down toward the center, you’re stretching them outside the normal cube space borders of your voxel instead. (In other words, you’re making all the neighboring air voxels smaller so that your current voxel can seem bigger.)

That’s it.

But the shapes are still useful because they create the appearance of behavior that you normally can’t achieve.

So how on earth do you go about stretching the voxels of a shape outward? Answer: You don’t really. Instead, what you do is you crush in the voxels of a neighboring shape, thus dragging the voxels outward in the shape you want to enlarge. That’s why people create a megashape by pasting micro-shapes nearby. They are forcing the voxels to drag outward toward those micro-shapes.

 

 

Warpage in General

 

Isn’t it annoying that you can create a really cool shape, it looks totally awesome, but then it deforms the heck out of stuff when you paste it near anything?

 

Well, the truth is…you’re just *seeing* the warpage for the first time when you paste it in next to the new shape. That same warpage was occurring originally also. You just couldn’t see it because when you made the shape, it was surrounded by air. Those nearby air shapes *did* warp, but you couldn't see them.

 

Voxels always connect to other voxels via vectors. When one voxel gets dragged outward or inward, it tends to drag neighboring voxels along with it slightly to smooth out the “curve” of a voxel face as much as possible. And that’s just about it. But it’s happening on EVERY voxel all the time every time you smooth shapes or paste shapes or even when you remove shapes.

Side note: Why does removing a shape sometimes warp neighboring shapes? Because when you delete your current shape, you're replacing it with a perfect cube shape isntead ( painted with air material). This does exactly the same thing as if you had just pasted in a perfect cube voxel of any other material. If the voxel you replaced wasn’t a perfect cube, this can cause vectors to shift and the shape will change in that case.

 

 

Inlay Technique

The last major building technique to cover here is the “Inlay Technique”. This is probably the coolest trick that any builder can learn, as it allows you to do a ton of curvalicious detail that's not possible to do otherwise.

We won’t take the time to describe applications of this (there are many player tutorials), but here are some details of how the process works:

Step 1: Select any-sized area of non-air shapes as long as that area is only one cube space thick.
Step 2: Take any other area of any design and paste it once above your object from Step 1, and then once again below it.

This forces the “sandwiched” object to realign its vectors and voxel positions to match the object that was pasted above and below.

Why? Because the game is trying to preserve the data of the object that you are pasting. It’s NOT trying to preserve the shape you created in Step 1. Thus, the sandwiched object in Step 1 gets all its voxels realigned to match the object above and below and when you copy that slice out of the sandwich, you’ll see that it has been transformed accordingly.

Make sense?

 

Sources : Smokejumper, forums.daybreakgames.com

 

 

 

Link to comment
Share on other sites

mostly useful data, but I'm going to quibble.

 

A Voxel is not the corners. it is the space defined by the eight corners. It is far better to think of a voxel as a center point with 8 corner points.

The center point does not move relative to other voxels. each voxel is exactly the same distance from it's neighbors. 

Each voxel shares each corner point with the relevant adjacent voxels, so when you change the location of any corner point you effect the corner point of 7 other adjacent voxels.

 

There are air voxels. they have the same corners but no fill map.

visible voxels are filled with some texture/color map

Link to comment
Share on other sites

9 hours ago, Tordan said:

mostly useful data, but I'm going to quibble.

 

A Voxel is not the corners. it is the space defined by the eight corners. It is far better to think of a voxel as a center point with 8 corner points.

The center point does not move relative to other voxels. each voxel is exactly the same distance from it's neighbors. 

Each voxel shares each corner point with the relevant adjacent voxels, so when you change the location of any corner point you effect the corner point of 6 other adjacent voxels.

 

There are air voxels. they have the same corners but no fill map.

visible voxels are filled with some texture/color map

Yes, the corner points would be vertices.

 

Link to comment
Share on other sites

I miss Landmark.

 

A little context for that video.  In case anyone is wondering what a "Mr. Voxel" is.

 

Mr. Voxel was a machine built by players inside the game Landmark, that helped other players visualize and create unique voxel shapes that would require more advanced voxelmancy knowledge and many more steps otherwise.

 

It basically did what is suggested in this trello for DU.  https://trello.com/c/wXSJEWVx/35-building-tool-voxel-control-points-edit

 

It was pretty awesome what people accomplished in Landmark in terms of gaining control over the voxels.  And it was a lot of fun discovering new stuff.  But I do hope NQ just gives us a voxel editor.  It's so silly that we could have had full control over the voxels in Landmark all that time and instead we had to figure it out for ourselves. 

 

By the end in Landmark we were using huge vector libraries that looked like this to build shapes.

 

HqpSnAT.jpg

Link to comment
Share on other sites

8 hours ago, Atmosph3rik said:

I miss Landmark.

 

It was pretty awesome what people accomplished in Landmark in terms of gaining control over the voxels.  And it was a lot of fun discovering new stuff.  But I do hope NQ just gives us a voxel editor.  It's so silly that we could have had full control over the voxels in Landmark all that time and instead we had to figure it out for ourselves. 

 

 

I miss Landmark too.

I'm of mixed mind on this. while a voxel editor would be useful, I do sort of like being able to do unique stuff. This was my grid of vertices from landmark. Every point at 1/16th intervals. 

 

CmdyO0XVIAA7UCe.jpg

Link to comment
Share on other sites

17 hours ago, Nanoman said:

Why am I only seeing "CmdyO0XVIAA7UCe.jpg" instead of the actual picture? It's not the first time this happens either.

On slower internet connections it can take a while for them to pop in.... or you may have some sort of browser security active stopping them?

Link to comment
Share on other sites

  • 9 months later...
On 5/16/2018 at 7:37 PM, Atmosph3rik said:

It was pretty awesome what people accomplished in Landmark in terms of gaining control over the voxels.  And it was a lot of fun discovering new stuff.  But I do hope NQ just gives us a voxel editor.  It's so silly that we could have had full control over the voxels in Landmark all that time and instead we had to figure it out for ourselves. 

 

By the end in Landmark we were using huge vector libraries that looked like this to build shapes.

 

Important edit in front of this posting: I just learned more about the topic and need to relativize. When I looked at that "voxel library", I took it as some kind of "ingame construct" that lets you copy individual voxels to use somewhere else. But now I've found the "Voxel Element Library" on trello, which actually sounds very useful and is currently listed as "should make it to beta" - so all of my following concerns already are largely accounted for. Still I'd like to see an option to manipulate vertices (not me of course, please) individually, but that library would be a huge improvement already.

 

I hope for a voxel editor too, since that "voxel library", while surely being a great achievement, really looks awful for what it implies and makes building a virtual world almost harder than building the same thing in the real world. It basically is the opposite of what I am looking for when using a computer to get creative. When I have an idea, the computer shall aid me achieve it - not add artificial barriers, solely based on technology limitations and lack of development. For this developers should be the ones creating comfortable interfaces for humans to make the software do as desired/intended. If the human needs to run the code in their brain over and over again, because the developer failed to provide a proper tool, it invalidates the whole concept of computing, where you find software algorithms for repeated tasks like these.

 

I agree that, in my past too, there was a time when I was still "discovering computers" and considered myself soo witty while hacking one workaround for the lack of tools after another into my machine - but today I know this should not even be necessary, because the pleasure in creativity and construction neither least nor last scales with the use of proper, professional tools and should never become a dull chore. If it's the tool that makes it hard to create what you desire and the game designer can't find another way to "challenge the player", then (in my personal opinion!) the concept is just seriously flawed.

 

Another side to this is that yes, as already said, it makes the people capable of going through such a hassle, somewhat rare and special. But that is not what you want for "emergent gameplay" and a "player-built world", because everyone wants to get creative at some point and if the most basic shapes are this hard to achieve, then yes, you may have one very beautiful construct in a thousand, but it also means 999 others, that look like mashed potatoes, clutter the whole scenery :huh: On the other hand, a beautiful work of art does not just come for free with professional tools - the artists still need a sense for aesthetics - but then they could focus on this, instead of becoming some kind of hybrid between borderline OCD and what they originally wanted to do ;)

 

@Tordan

I can see why you've got mixed feelings about this, but I really think that proper tools just make the whole world more beautiful and enable many more artistic people to get creative. In my opinion this outweighs the glorified elitism for a small handful of so-called "voxelmancers" by far :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...