VSaber - Demo Edition
Download the Demo
I’ve had this program tested on a 600 Mhz machine with a TNT2, and it ran fine. If you have any better than that, it should run perfectly. If the MFC version gives you trouble, the GLUT version may run slower but will probably work.
Once you have the program running, hold down the right mouse button and drag to rotate the object. Pressing and dragging the left mouse button uses the current “saber”. The default saber is a cutter which lets you slice into and automatically chop off pieces of your block. The buttons on the side lets you select which saber you want to use, each is designed to work as someone who has used programs like MS Paint would expect it to. And that’s most of it. There are also more advanced features in the menus. The best way to learn VSaber is to use it, it has been designed to be as intuitive as possible. Please remember however this is merely a demo.
The Following is a description of the tool, but to use it all you really need is what’s above.
Most modern 3d modeling systems have the user interact with the system by moving around control points which are then viewed as polygons or curved surfaces. These systems however are very non-intuitive, that is you cannot simply guess how to use it, you must be told in some form or another. This makes them hard to use, and not appropriate for general usage.
VSaber is a modeling tool which aims to be highly intuitive. It does this by simulating some object, which you can then carve into whatever shape you like, by using a mouse or stylus to select where and at what angle you which to carve (the mouse of course cannot have different angles and only cut straight through the object). This allows the user to interact with the model as if they were dealing with a real carve able object (a block of wood or marble for example). Because it is obvious how one carves such an object, the user needs no further training on how to use the program. The matter of rotation is handled simply by holding down the right mouse button while moving the mouse, this allows you to change the angle of the model.
VSaber represents all data as “voxels” or “volume elements”, which is essentially like a three dimensional bitmap. This allows for a simple format which most people can understand (as opposed to high order curved surfaces), and also for a possible future format which can be generally accepted than any single triangle or surface format. It also allows it to be easily added into with such features as converting triangles to voxels and such. More on this later.
VSaber is not merely a carving tool, the ability to interact with a model in this easy to use form allows for a few other equally intuitive features:
- Coloring the model is as easy as coloring a real model, simply select the color of paint you wish to use, and click or drag the left mouse button over the object to paint it. Paint will automatically adjust itself for the depth of the model at that point, so colours and lines will wrap over the object, just as if you’d use a real paint brush. In this way, coloring the model becomes as easy as using 2d painting tools such as MS Paint.
- Drawing 3d structures also becomes very easy, simply reverse the process so that instead of cutting away from an object, you are filling in points in space. This allows you to easily “draw” 3d objects in almost the same way you would draw a 2d diagram.
Currently VSaber uses it’s own “.vsb” format, which is a compressed format which contains information regarding both colour and fill data for each voxel. Because there are often strips of like data in voxel diagrams, it uses a very simple run length compressor, which gives very good results. Internally there is also the ability to generate voxel data from certain triangle based formats, and even certain MRI formats, but these have not been exposed to the interface.
The Tablet PC:
I actually got the idea for VSaber while hearing about the capabilities of the Tablet PC. Primarily that the stylus gave information regarding what angle it was being held at. It occurred to me that with that ability, you could create a virtual carving system which was far more intuitive and nature than anything involving a mouse. It would allow you to make curved cuts without having to change your camera view or use some strange curved surface interface, you simply angle the stylus differently. Using the Tablet PC, the VSaber interface becomes as easy to use as drawing diagrams on a piece of paper, however they are in full 3d. It has been the goal of multitudes of interactive programs to make 3d modeling as similar to 2d diagrams as possible, this I believe is the closest it can possibly come. If you have an object of a certain shape, merely draw it’s outline in the program and there you have it.
It is in this way that the Tablet PC not only gives you the control of an actual pen rather than a crude mouse, but also the angular information of a carving tool. The total package of Tablet PC and VSaber make a perfect pair for 3d model editing, and will I’m sure be a must for any design studio.
The current release of VSaber doesn’t take advantage of Microsoft’s Rich Ink API which gives you information regarding the stylus, to use this API I would need a Tablet PC to develop on. Also, the current rendering engine for VSaber is not optimized for certain Tablet PCs and may reduce the frame rate, this also is hard to get around without an actual system for testing.
The current implementation is written in C++ (using Visual C++ 6.0). The core is pure C++ (which can be generalized to OpenGL or DirectX), then there is an OpenGL rendering and interaction layer (OpenGL because I thought it would be easier to perform certain point based rendering techniques), and then I wrote a GLUT and an MFC user interface so you could compile for any platform, but the MFC version is a lot easier to use with all the options in menus and buttons and such (the GLUT version requires you referring to a chart of key mappings).
Hope you enjoy this program.
Please feel free to contact me with any questions.
Lewey Geselowitz – firstname.lastname@example.org