/* */

Wednesday, 28 April 2010

Usb man - Precision Curve Placement


 I've re-approached the curve modeling workflow to achieve greater accuracy on the horizontal reference curve placement. In the previous example I just eyed them up which caused one or two problems in terms of fall-off when it came to building patches (there was a slight visible ridge around the ear section. 

For this example I have started off with a simple nurbs curve with 8 patches on the horizontal and 1 on the verticle. I then began to shape it out roughly to follow the contors of the reference image. At this stage the vertical lines in the mesh are irrelevant because I will be constructing my own. 

By adding horizontal isoparms, I can get closer to the final shape, the beauty of this technique is the curve will maintain continuity as I edit them - a huge advantage over polygonal modeling where each vertex has to be adjusted by hand. 

The two dots represent key areas in the mesh - the top one is where hat meets head which will ultimately be extracted so it can be lifted, and the second is where the head meets body and takes quite a dramatic change of direction. I may wish to add some sort of indentation here to form a ridge. As you will see the top of the model remains open at this point, the curves interpolation when I reconstruct the mesh will take care of this and achieve a perfectly rounded mesh.

   
 Now the horizontal isoparms are in the correct position to depict the surface I add the apperture that will facilitate the ear. At this point I will concentrate on the body shape and come back to it - the geometry is ready for a sperical shape to be attached to it because I have maintained it's eliptical properties. 
Once the isoparms are lined up and have allowed me sufficient geometry at key points I begin dividing the half loops into sufficient edit points to accomodate the ear (eight in total). 

Now its simply a case of joining the dots up working from the bottom up and stopping at the ear (I want to break tangency here to create an edge where ear meets hat).

 Previously I have used the Bi-rail tool to output nurbs patches that can then be converted into polygons with an arbitrated face count. In this example I have bypassed the nurbs patches and simply output the bi-rail as a polygon. Once all the poly faces had been created I checked and reversed the wrong facing normals and merged the vertices together (using a tolerance of 0.1). I then ran the Soften Edge  to smoothen the mesh out.

As it stands the mesh consists of 480 faces which is pretty low considering the smooth interpolation between the shapes. This technique is pretty standard - imagine the ear apperture is for a leg or arm, no problem the geometry is there to continue. The key area that allows the geometry to do this is the five sided join, this is where nurbs surface falls down because you cannot attach 5 patches together without performing a global stitch, which can be intensive on the computer and a bit unpredictable.    
left - Very important the normals are facing the correct way in order to achieve a smoothmesh when the vertices are bound together. Once they are facing correctly and merged together the normals can be smoothed to disguise the faceting furthermore. 

Tuesday, 27 April 2010

Polygone Conversion

Once the five edges have been attached together they can be converted to polygon using the Modify - conver Nurbs to Polygone. I kept the setting on Quads and changed the conversion to "per span # isoparms". This is the best way to convert the Nurbs because you have control over each patch the intensity of the output polygonal mesh. Very useful in this instance because the character requires a lot of geometry around the ears, but not as much around the bottom side of the hat. By changing the number of spans I can reduce the amount of edges the character will have - very useful for game design.


Close up of the mesh, here with the global stitch areas pointed out. Once the mesh was converted the vertices were merged to stitch the different poly planes together. Because the global stitch did such a good job achieving tangency, this was a simple operation that was achieved by selecting all the vertices and merging them with a tolerance of 0.1.

Nurbs Mesh

Here is the output mesh of a nurbs model I made whilst experimenting with this technique. I built the curve network as described earlier and Bi-railed them to create the surface. In this example there are five patches joined up - a big no-no for nurbs modeling. Nurbs patches have to consist of four sides and cannot join five edges together. The way to overcome this is to perform a global stitch to bring the edges together and importantly remain tangent and smooth.

Each patch 1 through 5 were separated from each other and then systematically attached, survace rebuilt to resore parameterisation and then the history deleted. Attaching the patches creates tangency between the two but can pull it further from the opposite neighbouring patch. Next task is to detach the patch so it can be joind on the other side (deleting history inbetween). I have created two MEL buttons that will perform the attach functions with one click and the detach functions with one click - speeding up the workflow.

Once the patches have been attached/detached twice (moving in a clockwise direction) they can have the global stitch applied. As you can see from above the stitch has pulled the edges together perfectly and will convert to polygone with little issue.

Bi-Rail

Filling in the geometry

Now the mesh has been created and divided into single sections I have used the Biral tool build the output nurbs geometry. At this point each patch is separate, but because created using a constant flowing shell that has tangency with its surrounding patches no seams will be visable and the model will appear to be one smooth surface.

Curve Structure

WireMesh

Started by constructing a mesh from nurbs curves that follow the profile of the models shape. Once the horizontal curves have been positioned, they can be connected vertically using an EP curve. In order to add extra edgeloops I have cut each curve where they intersect. Now if I want to add an extra edgeloop inbetween two existing loops I can rebuild the curve and enter the desired amount of spans to be input this divides the curve, and automatically inserts a knot in the optimum position to maintain tangency.


From above I can look down the wire model and adjust the vertices and edit points to achieve a nice falloff between contours. At this stage I still have a lot of control over how the mesh will finally appear and can really work at achieving a nice and smooth interpolation. Once I am happy with the positioning of the horizontal contours I can begin connecting with the EP curve tool holding down "V" key to snap to the edit points. The curve will appear with tangency automatically maintained so the curves are smooth and contigeous - perfect for what I am after.    

Geometry - USB Man

Creation of USB Man.

Front

Original Reference drawing for the USB man. First impression is if this object would be mass produced and machine made in order to achieve a smooth interpolation between interconnecting areas like where the ears and the top of the head meet, the feet and the arms.

Also would like to re-address the goggles and the mouth area. at the moment looks a little stagnant - not real scope for animation, so what I intend to do is develop these area's into something interesting.









Side



Side View of the same character, showing the ear being attached to the head and toe profile, and also a dome shape that protrudes from the back acting as a handle to assist pulling his head off.













Head Off


Character with hat lifted to reveal the usb part. Model would require some sort of ridge around the bottom part to secure his hat when it's in position.