The Story:Since last week (Aug 6th) I've been working on a new tool for modelling in VR. It stems from the frustration that most VR modelling tools are too loose and freeform (
Tiltbrush,
Quill,
Medium...). They all seem to have taken the ease of motion in VR to heart and run with it to the extreme. The result is models that can't be used in any game situation without cleanup done in a regular old flat monitor modelling tool.
The other extreme is something like
Google Blocks, which can give nice low poly meshes that could fit right in to many current low poly styles. The tools it offers though lack many ways 3D modellers are used to interacting with meshes, quads and n-gons get triangulated the instant they become non planar, there's no edgeloop selection (because everything is triangulated), the poly splitting tools don't appear to work like any I've ever seen before and to top it all off if you extrude two faces that share a common edge, they're extruded individually instead of as a group, arrg!
Starting my own is something I've thought about since I got my Vive back in 2015, I just always thought that some big company with a full team of 9 to 5 workers would produce the tool I wanted faster and better than I could. But here we are, mid 2017, and VR modelling still lacks somewhat.
The Goal:
I'd like to take the low poly modelling process that I know from 3DSMax and take it into VR. I'd like to be able to start and finish an entire model inside one VR app, then export it straight to any game engine for immediate use. The primary focus is the mesh tools, once I'm happy with the mesh tools, further milestones will be UVs and texturing in the app too.
The Progress:Aug 03:
Vert / Edge / Face selection all in, vert welding, deleting & removing, extrusion, collapsing
Aug 05:
Tools palette, rudimentary mesh grabbing, welding extended to verts on borders
Aug 07:
Multi-selection, edgeloop and border selection
The Next Steps:- Capping borders and inserting edgeloops
- Grid snapping
- Selection scaling
- Mesh saving/loading
- Smoothing groups
- Colour palette picker instead of random
Replies
I was wondering If you intend to implement features for 2 hand interaction? Some examples:
Stretching/scaling any selection by grabbing it with 2 hands.
2 point face manipulation or even any selection, like you have one edge on one hand and a another edge on the the other hand and then you can freely manipulate the whole thing, move, rotate each edge, stretch. Might be really hard to pull off but could speed up modeling a lot versus single handed modeling.
I'm not sure on the two-handed manipulation front yet. Currently the left hand can grab the whole mesh, and the right is free to do any and all actions on it. I don't actually do it in any of the gifs I've made so far, but I regularly do it while testing. It's good for extruding, the new face or edge can stay where it is, while the rest of the model that's not the current focus can be pushed away from you.
I'm wary of adding the two-point face/edge manipulation you suggest because it's felt odd in some VR stuff I've used in the past. But thinking about how I build in Fantastic Contraption, I use two hands to scale up those sticks a lot and I quite like that.
So we'll see!
I need to have a think about scaling too. Blocks does it with a granular up/down on a button click and I don't know that I liked that.
Is that Unity you're using? If you're from a Max background have you thought about using Stingray for this? Considering the development of 'Max interactive'.
Mushidan, it definitely looks like a Unity tool.
I don't want to dissuade you but there is a relative newcomer to the VR modeling space: https://www.gravitysketch.com/vr/ It's definitely more traditional then the first run stuff and more powerful then blocks, but it's still very freeform, and expensive to boot.
From the stuff you're showing though, I think I'd feel more at home in what you're making. I'm really curious to see how you tackle UVs! Good luck!
@Autarkis Yep, sure is Unity!
@Lt_Commander I've known about gravity sketch for a long time but I've not tried it yet due to the pricetag. It certainly looks like it has a lot of great features and has more fine control over meshes than the other apps I listed. Maybe I should sink the $25 and actually look at it in detail!
Today's progress was getting border capping working. I had to fix a bug in border selection too so I couldn't get edgeloop insertion working. Tomorrow!
I'm also one of those guys who are looking for VR modeling tools with functionalities like what you're showing above. Can't wait to hear more.
I've tried Tiltbrush and Google Blocks. I think that the approach these tools are addressing is towards perfecting the user experience, not really the modeling functionalities. Since VR is a totally new medium, most of the modeling techniques we know for the traditional 2d screen + mouse might not be the best approach. We're still in the wild west of VR where new ideas keep popping here and there. Exciting times indeed.
Just to share, here is a screenshot of a model I created in Blocks (I just thought my GPU looked like a low-poly object).
I did it for 2 hours, and it was very tiring since my hands were always making gestures (resizing, dragging, rotating, pointing, etc). When the model starts becoming complex, the components become harder to select especially when close to each other. On the bright side, the creators of Blocks were able to introduce a lot of new ideas for the user interface.
Excited to hear more of what you're creating
When you're ready for user feedback, I suggest you reach out to Don Carson, a concept artist for video games and theme parks who is currently exploring VR and loving it! He's putting a lot of time into translating his drawings into charming 3D models with Google Blocks. It would be great to get him doing work with your tool and taking his feedback on how to make your tool even better.
Don's blog is pretty dense with good articles and amazing artwork:
http://themedenvironments.blogspot.com/?view=flipcard
The great news for today is that edgeloops and capping borders are in!
I got a bit busy with ~real~life~ so it took a few days more than I was hoping but to have it done is a great relief. Border capping can get a bit iffy if the border is concave, but it's pretty good for 'sensible' borders. With both the border capping and edgeloop inserting I feel like there's potential for polygons to be inverted accidentally, though it doesn't seem to happen yet. I'll be investigating ways to keep the normals pointing the right direction soon I guess.
I'm taking a few days off from this, when I start up again I'll be doing an optimisation pass on my code since frames can pretty quickly get to over 11ms. SteamVR is good at preventing stalls, but even a 12ms frame timing is visible as stuttering!
I know a lot of ways I can optimise all my current code so hopefully I'll get it back down to acceptable levels!
Until then, enjoy the little video I was recording when I discovered these issues:
I'd love to help test, or even review code if you want. Feel free to ping me directly here or on twitter. I'm also on GitHub.
Which version of Unity are you building this for?
I'm spending some time working on this optimisation stuff currently and it's a challenge!
It really blows my mind that from VR advertising to model creation we are still at such a low level of actual solutions. Makes one wish to timetravel back