For the last month I’ve been working with Google to test Blocks, a new VR creation tool that enables anyone to 3D model low polygon objects without training. Like Tilt Brush, objects made with Blocks may seem simplistic at first, but the apps professional potential becomes glaringly obvious once it’s objects are rendered in software like Unity. To explain, I created this.
For those who don’t know, 3D objects are created out of flat faces called polygons. A box, for example, is made out of six polygons. In general, adding faces to an object usually smoothes it out, and so a sphere with 10,000 faces appears smoother than one with 30. Current VR tools don’t allow users to choose how these polygons are placed since they want everything to feel smooth, and so small details that really only require 100 polygons, end up containing 10,000. This is a computational mess, because once a piece surpasses 3 million polygons, the view within a headset usually becomes choppy.
As a VR artist, this has been a constant struggle. I always want to add leaves to my Tilt Brush forest scenes, but those extra million polygons aren’t worth it. And while I love the organic look of Tilt Brush trees, the ones that are far away don’t need to contain as much detail as the ones up close. This is why I’ve become obsessed with Google Blocks, because we can now mold shapes by precisely placing and modifying individual polygons with our hands, which was previously only possible on 2D screens.
In Blocks, one hand manipulates objects, and the other sports a pallet of six tools that do the following:
- Shape Tool: This comes with a set of primitives that can be placed and scaled non uniformly in either a free form or snapped grid mode.
- Freeform Tool: Similar to a Tilt Brush tool, although it uses a button based checkpoint system to allow for precise placement of polygons.
- Paint Brush: Used to paint whole objects, or just faces, although it only has a limited color pallet since each color is it’s own material. This will feel limiting at first, but it is a life saver when working in Unity.
- Grab Tool: Used to grab, group, duplicate, multi select, flip, and throw away objects.
- Modify Tool: Used to extrude faces, subdivide faces, and modify vertices, faces, or edges,
- Erase: To delete objects without having to throw them with the grab tool.
The trigger on the pallet hand can also be used to enable grid snapping to add a layer of precision to all of these tools except for the paint brush. The grid mode came in handy a lot while working on MAINFRAME, although sometimes it caused the position of an object to jump around when I’d only want it’s rotation to snap. However, the rest of the features work the way I’d expect them to, and have already improved a ton since I started playing with Blocks.
Once an object has been created, it can be published online to the same website as Tilt Brush sketches. But unlike Tilt Brush, anyone with Blocks who likes an object can then add it to a scene that’s already open. This means if someone’s building a house, they don’t necessarily have to make their own furniture, they could import work that other people uploaded. These objects can also be downloaded to a computer and imported into 3D programs like Unity. To me, this is where things get exciting. Below are examples of how far these models can be taken with rendering software. The top photos show the raw model as they appear in the Blocks web viewer, and the bottom are Unity renders that I put together in 30-minutes or less without modifying polygon count.
But what if you don’t know how to use Unity? Well, starting today, you can email me links to ANYTHING you create in Blocks, whether it’s a cupcake or mech-warrior, I will spend 30 minutes to an hour setting it up for you in Unity. I’ll add lighting, rendering techniques, other objects if you like, and then make it VR viewable. When I’m all done, I’ll send you…
- A desktop video with a voice over of me going through the process from start to finish in Unity so you know exactly how I achieved the final result.
- A VR viewable file of the model
- A shareable HD screenshot of it
- The Unity project files along with a download link to Unity so you can pick up where I left off.
- Written advice on how you can make your models more efficient for Unity.
- A chance to have your object featured in a VR project I’m working on.
- A notification if we decide we’d like to feature your work in a follow up article.
If you’re interested, publish your object to vr.google.com/objects, then email me the link to your model (or multiple if you want me to stitch together a scene), along with any creative direction you have, to [email protected]. Once I receive your work, I’ll schedule a time to work on your piece, and then update you on when I’m expecting to finish. I’ll be sharing more details about this initiative soon.
Beyond rendering these models in traditional programs, I’m excited to see future mash ups between Tilt Brush and Blocks. A user could make a whole library of objects, and then use Tilt Brush to piece it all together. While I was at Google, I frequently did this to test different lighting scenarios, but it also caused me to build my objects in Blocks differently. If I wanted to make a shrug, I’d only make the branches in Blocks, and then I painted the greens on with the splatter brush in Tilt.
Blocks has become an integral part of my VR art workflow, and I can’t wait to see it integrated with Tilt Brush more in the future, but it also has some growing up to do still. For some perspective, when Tilt Brush first launched a year ago, the environment was un-scaleable, lighting was fixed, most effect brushes caused frame drops, and importing or exporting anything just didn’t work. But now that team has made it to v12, and professional Tilt Brush artists are able to live off of just commissioned Tilt work. And yet, working with Blocks is still more intuitive than any high end 3D modeling package out there, so I’m optimistic about where this team is heading.
In the mean time, here’s my top list of things I’d like to see improved or added first.
- Ability to raise the smoothing angle of shaders in app to help hide the low poly esthetic when needed.
- larger environmental boundaries (similar to Oculus Medium’s issue)
- Ability to work in a blank environment without a floor. For the time being, you can use a debug command to hide the floor. Press ctrl + D , then type env Black.
- In app object re-naming feature to simplify exporting.
- A “vertices only” mode when using the modify tool because I often grab edges by accident.
What else would you like to see integrated? Lets us know below
Happy modeling!