Monday, June 30, 2014

Off-grid Copy

It seems June was Clipboard month. Just to close on that topic, there is one interesting thing we did with the clipboard I would like to introduce: Off-grid Copying. You may ask what is that, and more important, do we really want it.

Imagine you want to copy a piece of a scene you have done. Normally you would create a selection box and copy its voxel contents into the clipboard. The selection box can be resized, but so far, the selection boxes have been necessarily aligned to the world axes.  What if you could rotate the selection box?


It does bring up an interesting possibility. Now you can get any slice of an existing object, no longer you are constrained to the horizontal or vertical.

The following video shows this in action:



In this case we were just rotating a selection box. The really nice bit about this is, it does not have to be a box. It can be any arbitrary volumetric shape.

This opens up a new set of tricks. You could for instance make a statue. Then select the statue using a regular on-grid selection box and copy it into the clipboard. Now comes the trick: you could use the clipboard contents (the statue) as the selection scope. This would copy the voxels as usual, but their outside shape will still conform to the original statue.

Another way to see it, is you can perform boolean operations using the clipboard. What I like about the approach is it feels simple once you try it. You do not need to understand the "booleaness" of it all. Just like you can have circular or even free-shaped selections in Photoshop, you can have your selection take any form you need. Sweet!


16 comments:

  1. Awsome! Would it be possible to draw something in 3D with a mouse or pen tablet. or can you load in objects from a 3D editor like 3ds max or Blender?

    ReplyDelete
    Replies
    1. Yes, that winged cat statue for instance came from 3ds max.

      Delete
    2. Ah Thank you! Must have missed that. Love the work you been doing!

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. How about a rotatable grid? If one could rotate and resize the grid then building things "off-the-grid" would be sort of an obsolete idea. I take it you have thought about this and there are some problems with such approach?

    ReplyDelete
    Replies
    1. Well you would still be building off the main grid. There are no problems, although managing different grids could get confusing from the UI side of things.

      Delete
    2. What bothers me most in games like minecraft is that while it is very easy to build anything in the main grid, it's very hard to build anythign outside of it. This leads to towns that have all houses perfectly in a grid, which just isn't what any real town would look like. Building outside of grid should be as easy as building in the grid or else the end produce won't look realistic.

      Delete
  4. In many editors every copying operation has a multiplier built in, so after pasting the shape you can write (or click?), for example, 20x, and you have 20 copies. In the video you are repeating the operations manually - have you thought about implementing a multiplier for translation / rotation operations?

    ReplyDelete
    Replies
    1. Yes, I have considered using grammars for this. Repeating is one possible operation.

      Delete
  5. Not a question about the copy-pasting, but about physics: When does an object become a physics object? So when does it fall? Because you created floating objects, but in other videos, floating objects would fall. Do you toggle physics, or does physics only work on bits that were cut off?

    ReplyDelete
    Replies
    1. The demo used for capturing the video has physics disabled. I guess while you edit you do no want physics on... but sometimes it helps you delete stuff. I guess this would be up to the application using the engine.

      Delete
  6. From what i remember, he pressed a key to toggle physics on and off. Not sure if they only affected the specified group of voxels or if it was global but i suspect both options exist.

    You wouldn't want physics to break what you're working on right ? : )

    ReplyDelete
  7. Here is a thought, is it possible to code a brush to alter the procedural code within a specified volume? That way it allows world builders to drastically change the atmosphere/environment without relying on having to store massive volumes of voxel data.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. Hi Miguel.

    A little off topic, but I've been watching the 'games' page for a while now waiting for full details of the games. Still nothing. I would think that a little cross promotion would help you, help them, and help the consumer find access to your wonderful engine.
    It seems to me that the games are as follows:

    MYSTERY GAME 1
    It is too early to reveal what this game is or who is doing it.
    You will be pleasantly surprised.
    EQUALS = EVERQUEST NEXT

    MYSTERY GAME 2
    Behavioral, Economic and Computer Scientists collaborating with industry developers and artists on a fantasy adventure sandbox.
    EQUALS = TUG

    MYSTERY GAME 3
    Voxel Farm Inc. has started its own game to show the world what this engine can do. Only one thing is certain about it: No zombies!
    EQUALS = ????

    MYSTERY GAME 4
    A first time studio is developing an ambitious game with our tech.
    EQUALS = BLOCKSCAPE

    MYSTERY GAME 5
    A space survival third-person RPG.
    EQUALS = STARFORGE

    Correct me if I'm wrong.

    Cheers

    Doggy

    ReplyDelete
  10. Just finished reading your blog from beginning to end.

    Took me a while because I researched whenever you introduced an interesting new topic. I learned a lot(the concepts of grammars and L-Systems have been specially helpful), thanks for sharing.

    On Voxel Farm´s site it is mentioned you are working on a unity plugin.

    I enjoyed your more technical posts, do you intend to make technical post detailing the engine integration work?

    Do you have an idea of when will the plugin be available, and how much it will cost?

    Good Luck, I am looking forward to see what you came up with in the future.

    ReplyDelete