DMesh Documentation - Coordinate Systems


Handedness

DMesh uses a left handed coordinate system for mesh generation and viewing. Options to provide for a right handed (or other) system will be considered given sufficient interest. Please refer to the contact information page if you would like to make a comment in this regard.


A Note About UVW+ Coordinates

DMesh is heavily reliant on the use of a modified uvw+ coordinate system, with the uv components being somewhat simliar to an st or texture coordinate system, and with the w component varying in type. All information within D-Mesh is retained internally in this coordinate system, with valid values for uv generally ranging from 0.00 to 1.00 inclusive. (The w component is maintained internally, so only the uv portion need concern us here.)

These coordinates are subsequently converted to appropriate xyz values for exporting or mesh viewing. The exact conversion is heavily dependant on the type of the w component, but in general can be thought of in the following terms:

It is sufficient to understand these two uv components to attach muscles or create distortion surfaces. If you wish a little extra information regarding the resulting distortion surface, refer to the following W+ Distortions section.


W+ Distortions

Additional distortions to the base surface will be performed depending on the musculature definitions, bending and tension constraints, etc.The exact distortion is heavily dependant on whether the w component is a single value, a three-value, or a multi-valued space-time-gravity-tension-plus value. In general it follows these priciples:


A Note about Mesh Orientation

The default orientation for most models puts the back at u=0.00, the right side at u=0.25, and the front at u=0.50. Placing the 'front' of the model at u=0.50 is a preference of mine, since it leaves the most latitude in both directions without having to consider the wrap-around from 0.00 to1.00 or back. The front is also generally the part of the object most concerned with for modelling and rendering, and the area where there will likely be the most detail. On the other hand, if creating the back of something, place u=0.5 in the 'center' of the back.

In general, I attempt to place u=0.50 at the point where I expect there to be the most detail. In many cases, you will desire to place a muscle on either side of the center, (such as abdominals or cheeks,) and it seems easier to mentally add and subtract 0.125 from 0.50 than from some other value such as 0.25. In addition, this specific task is easily implemented using the muscle mirroring options, while attempting to mirror an object about position will require manual editing.

In addition, the uv clipping feature allows you to export a portion of the mesh by specifying a low and high value for either u or v. If the model is centered at 0.50, you can choose a clipping range such as 0.25 to 0.75, and generate only the front portion, while ignoring the back. If the model is centered at 0.00, there is no way that you could export starting at 0.75, move to 1.00, and then wrap back around to 0.25.

This orientation has the strange result that the exported model will have the front facing in the negative x direction. As far as D-Mesh is concered, the actual xyz facing of the model is completely irrelavant, but it may seem a strange orientation for other's. I will probably add an option so the user can specify the proper orientation for export, but for present, you will need to supply a rotatation within the renderer to provide the proper viewing direction.