LionSnake Modeler Help File

Getting Started

I tried to make the user interface as intuitive as possible. Everything you need is either on the toolbar or in the context menus, so if you can't see it in the toolbar, a right-click should get you what you want.

The Objects

There are several objects you can create and manipulate in the modeler:

Bones

Bones are used to specify and control the posing of the objects in your model. They are created in the Bone adding mode.

Older versions of LionSnake supported posing in a way that could not be made compatible with other modeling applications, and led to other difficulties as well.

As of this version there are no blend zones, which are generally used to make modeled skin and flesh appear to stretch with the motion of nearby areas. LionSnake is designed for editing subdivision surface hulls, which have a degree of blending by their nature. If I ever implement something like this, it will be via simulating the underlying behavior of soft body tissues to give a more realistic result.

Vertices, Edges, and Faces

Vertices, Edges, and Faces together form the geometry of the surface. Faces can have up to 32,767 sides, but cannot have holes or intersecting Edges, and I recommend convex Faces only.

You can add Vertices by the Vertex adding mode, the add mesh mode, the extrude operation, and the lathe operation. Vertices can be attached to the Bones, so that by moving the Bones the Vertices move, too.

Edges are stippled according to their effect on the model. Dotted lines represent smooth Edges, bordered by two Faces. Dashed lines represent sharp Edges, bordered by two Faces. Solid lines represent boundary Edges, having only one Face bordering on them. Sparsely dotted lines represent Edges having no Faces bordering on them. LionSnake will not allow more than two Faces to border on a given Edge.

Faces represent the surface of the model. You can create Faces in the add mesh mode and by using the extrude and lathe operations.

Textures and mapping points

Textures and mapping points are used to texture the Faces. You can texture a Face by right-clicking on it and selecting the Define texture option from the context menu, or you can apply a texture to all marked Faces by selecting Textures... from the main menu or the mesh view context menu.

The textures used in LionSnake are only place-holders for the textures that will be applied during rendering. This is because the target rendering package (POV-Ray) supports texturing features that are far too complicated to represent in the modeler.

Mapping points are used to specify the texture mapping for a given Face. You can define mapping points for a Face by right-clicking on it and selecting the Add uv-mapping option. A default set of mapping points is assigned to that Face. You can edit them in UV mapping mode.

Starting a New Project

When you start LionSnake, an empty model project will already be open. This is currently the only kind of project you can create. If you want to create another model project, select File->New->Model. A dialog box will come up allowing you to specify a mesh file and a material file to use as a starting point for the model. Presently the Alias/Wavefront .obj format is supported for the mesh file, and the .mtl format from the same company is supported for material definitions. If you want to start with an empty project, just click Create.

You can also import an Alias/Wavefront .obj file directly from the File menu; I can't guarantee that the import feature will find any .mtl files specified in the .obj file.

Loading an Old Project

Select File->Open... The standard file selection dialog box will appear, and from that you can select a file in the LionSnake .lsm format.

The Toolbar

I hope that I put everything you need into the toolbar. Match the tooltip for the button with the list below to see what each button does:

  • Create a new model: Click here to start a new model project.
  • Save the current project: Click here to save the project. Presently this always behaves as a Save as command.
  • Open an existing project: Click here to open a saved project.
  • Undo and Redo: Clicking these buttons will take you backwards and forwards through the entire series of edits that have been done since the model was loaded or created.
  • Copy the marked Vertices, Edges, or Faces: Allows copying of marked objects.
  • Delete the marked Vertices, Edges, or Faces: Allows deletion of marked objects.
  • Toggle display of Vertices: Allows you to hide Vertices.
  • Toggle display of Edges: Allows you to hide the Edges.
  • Toggle display of Faces: Allows you to hide the Faces.
  • Toggle display of subdivision preview: Allows you to see how the final mesh will appear.
  • Toggle display of Bones: Allows you to hide the Bones.
  • Toggle display of coordinate axes: Allows you to hide the coordinate axes.
  • View from left: Sets the view to see the model from the left.
  • View from right: Sets the view to see the model from the right.
  • View from above: Sets the view to see the model from above.
  • View from below: Sets the view to see the model from below.
  • View from front: Sets the view to see the model from the front.
  • View from back: Sets the view to see the model from the back.
  • Select mode: Select mode enables you to mark Vertices and perform most editing functions.
  • Pan view mode: Pan view mode enables you to drag the view around.
  • Zoom view mode: Zoom view mode enables you to zoom in and out under mouse control.
  • Rotate view mode: Rotate view mode enables you to rotate the view around the center of the screen.
  • Add Vertex mode: This mode is used for adding Vertices.
  • Add mesh mode: This mode is used for adding Edges and Faces.
  • Add Bones mode: This mode is used for adding Bones.
  • Properties: This calls up the properties dialog for the marked Vertices.
  • Lock the axes: Allows you to restrict dragging operations.

    The Hotkeys

    Key comboFunction
    AToggles display of the axes.
    CCopies the marked portion of the mesh, in place.
    Ctrl+CCalls up the copy context menu.
    EExtrudes the marked portion of the mesh, in place.
    Ctrl+ECalls up the extrusion context menu.
    MCall up the matrix transform dialog box
    OMoves the display center to the origin (also known as <0,0,0>).
    Ctrl+QExits the application.
    RCall up the rotate dialog box
    SCall up the scale dialog box
    TCall up the translate dialog box
    EnterCalls up the Properites dialog for the marked Vertices.
    DeleteDelete the marked or highlighted object(s).
    Page UpZoom in by 10%.
    Page DownZoom out by 10%.
    HomeZooms to fit the project on screen.
    F1Opens this file in your default Web browser.

    The Editing Views

    There are two editing views: Mesh view and uv-mapping view.

    Mesh view

    Mesh view is where you can create Vertices, Edges, Faces, Bones, and textures, and where you do most of the editing for your project.

    UV-mapping view

    UV-mapping view is where you edit the uv-mapping data in your project.


    Controlling the view

    At the present time there is only one view showing at any moment.

    Panning the view

    Click on the Pan view button on the toolbar. You can now drag the view around with the left mouse button. You can go back to selection mode by clicking with the right mouse button, or you can go to any of the other modes by clicking on that mode's button.

    Zooming the view

    Click on the Zoom view button on the toolbar. You can zoom the view by clicking with the left mouse button. Right-clicking will take you to select mode. Clicking on any of the other mode buttons will take you to that mode.

    Zoom in

    Pressing Page Up will zoom in the view by 10%.

    Zoom out

    Pressing Page Down will zoom out the view by 10%.

    Zoom to fit

    Pressing Home will zoom the view to fit the currently loaded project.

    Rotating the view

    Click on the Rotate view button on the toolbar to enter rotate mode. In rotate mode you can rotate the view by clicking with the left mouse button. Right-clicking will put you back into select mode. Clicking on any of the other mode buttons will take you to that mode.

    View along the Coordinate Axes

    The menu option View->From->Left will present a view from the left of the model.

    The menu option View->From->Right will present a view from the right of the model.

    The menu option View->From->Up will present a view from above the model.

    The menu option View->From->Down will present a view from below the model.

    The menu option View->From->Front will present a view from in front of the model.

    The menu option View->From->Back will present a view from behind the model.

    Jump to origin

    Pressing the letter O moves the viewpoint to the coordinates <0,0,0>.


    The Context Menus

    The context menus control the actions you'll be using most of the time. There are eleven of them presently defined:

    Copy context menu

    This context menu pops up when you press Ctrl + C or when you click the Copy button on the toolbar. Its function is to ask which of the five transform options to apply after copying the marked objects.

    Delete context menu

    This context menu pops up when you hit the Delete key or click the Delete button. Its function is to ask which of the three delete options you want to apply to the marked objects.

    Edge context menu

    This context menu pops up when you right-click on an Edge while that Edge is highlighted. It allows you to set the sharpness of the Edge, hide the Edge, or delete it.

    Extrude context menu

    This context menu pops up when you press Ctrl + E. Its function is to ask which of the five transform options to apply after extruding the marked objects.

    Face context menu

    This context menu pops up when you right-click on a Face while that Face is highlighted. It allows you to apply the default texture (if one is defined), edit the texturing of the Face, add, edit or remove uv-mapping data for the Face, hand hide the Face.

    Mapping view context menu

    This context menu pops up when you right-click on an empty place in the project in uv-mapping view. It allows you to return to mesh view.

    Mesh view context menu

    This context menu pops up when you right-click on an empty place in the project in mesh view. It contains several of the options from the Edit menu.

    Bone context menu

    This context menu pops up when you right-click on a Bone while that Bone is highlighted. It allows you to:

    UV map point context menu

    This context menu pops up when you right-click on a uv-mapping point. It allows you to edit the point's coordinates.

    Vertex context menu

    This context menu pops up when you right-click on a Vertex while that Vertex is highlighted. It allows you to toggle the marking of the Vertex, delete it, hide it, or or call up its properties dialog.


    Adding Bones

    You can enter this mode from the main window menu, from the context menu, or by clicking on the Add Bone button. In this mode, left-clicking places the root point for a Bone at the click point. Between entering and exiting this mode, all Bones created, except the first, will be dependent on the previous Bone.

    A right-click will take you back to select mode.

    Adding mesh

    You can select this from the main window menu, from the context menu, or by clicking on the Add mesh button. In mesh add mode, left-clicking starts a circuit of Edges. Everywhere you click, the current Edge will be finished and a new one started. All of the Vertices created will be placed in the plane that passes through the centerpoint of the view. If you click on an existing point, it will be added to the circuit without moving it, and the view plane will be moved forward or backward to include the existing point. Points which can be added in this way are highlighted as the mouse cursor passes over them.

    If you form a loop in the circuit, a Face will be built from those Edges. The Edges which will be affected by this are highlighted in purple. Upon completion of a Face, a new circuit will be started at the last Vertex clicked.

    A right-click while a circuit is in progress will finish the current circuit of Edges. The Vertex being dragged and the Edge that follows it will be destroyed.

    A right-click while no circuit is in progress will take you back to select mode.

    Adding Vertices

    You can enter this mode from the main window menu, from the context menu, or by clicking on the Add Vertices button. In this mode, left-clicking creates a Vertex. All Vertices will be placed in the plane that passes through the centerpoint of the view.

    Right-clicking at any time will put you back into select mode.

    Aligning Vertices

    To align a set of Vertices along one or more coordinate axes, select the Vertices you wish to modify and then call up the properties dialog. Enter a value into the coordinate(s) you wish to modify, and the marked Vertices will be placed accordingly when the dialog is closed.

    Attachment

    The attachment feature allows you to assign Vertices to a Bone, so that when the Bone is moved, the mesh moves with it. This is what makes models posable.

    To attach Vertices, mark them, and then call up the properties dialog box. There is a pull-down box titled Attachment, which allows you to assign the marked Vertices to one of the existing Bones.

    Any former attachment for a Vertex is forgotten when it is attached to a new Bone. You do not have to detach a Vertex in order to attach it to a different Bone.

    Note that the grid snapping for an attached Vertex is relative to the Bone. Currently the properties dialog for a Vertex shows its absolute location only.

    Axis locking

    You can lock one, two, or all three of the coordinate axes, so that any Vertices you drag will only move along the unlocked axes. You can lock the axes with either the toolbar buttons, the menu selections, or the X, Y, and Z keys.

    Locking just one axis restricts Vertex dragging to the plane formed by the two unlocked axes. If this plane is tilted at an angle to the forward view, the Vertices will appear to move as if there were no locking in place, but in fact they are being projected so that they remain in the plane and yet appear to move with the mouse.

    Locking two axes restricts draggin to the line that is parallel to the unlocked axis. The Vertices will move to the point along the unlocked axis that is as close to the mouse point as possible.

    Copying

    You can copy the currently marked portion of the mesh.

    You can either copy the marked portion of the mesh in place, or copy with one of the four transform types applied to the copy. The copied mesh objects are unmarked, and the copies are marked.

    If you select one of the four transform options as part of the copy, a dialog box will pop up, asking for the transform to apply. If you select Cancel from any of these dialog boxes, the copy does not happen.

    Copying affects all marked Vertices, all Edges with both ends marked, and all Faces whose corners are all marked. When a Face is copied its texturing and uv-mapping are copied with it. The uv-mapping is a copy, and not a mirroring of the same uv-map points; if you edit the uv-mapping of a copied Face, the other copy's uv-mapping is not affected.

    Detaching Vertices

    Mark the Vertices you want to detach, and call up the properties dialog box.

    In the dialog box, go to the Attachment pull-down box and set the value to -- not attached --. The marked Vertices will be detached.

    Editing Bones

    There are several ways to edit a Bone:

    Editing Vertices

    In select mode, there are several ways to move a Vertex:

    Exporting models

    Right now the LionSnake modeler exports standard .OBJ files for just about any 3d application, and script files that are usable by the Peristence of Vision Ray Tracer. Both types can be exported from the Export menu option under the Files menu.

    OBJ files will contain the Vertices, the Faces, and the uv-mapping data. The Faces will be grouped by texture if you have non-default textures applied to the model. Note that unlike Pov-Ray (and, therefore, LionSnake), some 3d applications expect all texture data to be in the range (0,0)-(1,1). Data falling out of this range will be moved into the range by whole integer amounts (the exact formula is x-floor(x), with the result that the values -.25, 1.75, and 100.75 will all be exported as .75).

    The OBJ file exporting is designed with Poser and DAZ|Studio in mind, hence the export uses only a limited subset of the OBJ file format.

    Pov-Ray script files are designed to work in conjuction with the Catmull-Clark Subdivision Surface Suite macros. To use exported POV-Ray files:

    Extrusion

    You can extrude the currently marked portion of the mesh.

    Extrusion works by copying the outer Edges of the marked region and creating a quadrilateral between each marked Edge and its copy. The Vertex and Edge markings are transferred to the copies. If you have selected one of the extrude and transform options, the transform will be applied to the new Vertices; if you select the extrude in place operation, the Edges are extruded, but the copies are left in place.

    If you select one of the four transform options as part of the extrusion, a dialog box will pop up, asking for the details of the transform to apply. If you select Cancel from any of these dialog boxes, the extrusion does not happen.

    Grid Snapping

    You can force Vertices and uv-mapping points to discrete points in space with grid snapping. Grid snapping forces the affected points to a multiple of the specified precision level.

    You can turn off grid snapping by setting the precision level to zero.

    You can assign different values to the precision settings for uv-mapping points and mesh Vertices. The default precision level for both is .001 (1/1000).

    Hiding mesh objects

    You can hide any object by right-clicking on it and selecting Hide from the context menu.

    You can hide the marked parts of the mesh by right-clicking in an empty space and selecting Hide marked from the context menu, or by selecting the same item from the View menu.

    Joining Faces

    You can merge two Faces that share an Edge by right-clicking on the Edge and selecting Join Faces from the context menu. You will not see this option if the two Faces already share another Edge.

    Lathe extrusion

    You can create a lathe object by marking a set of Vertices and then selecting Lathe from one of the menus. A dialog box will appear, asking you which axis should be the axis of rotation, and how many divisions to create. If you select OK, each marked Vertex will be extruded into a regular polygon, centered on the selected axis, and any marked Edges will be extruded as quadrilateral Faces.

    The Vertices do not have to be in the same plane for this to work. This can cause desired and/or undesired results.

    If any of the marked Edges already has a Face bordering on it, the operation will fail with an explanatory message.

    Marking

    Many of the editing functions operate on the marked objects only.

    In select mode, you can directly mark and unmark mesh objects by right-clicking on them and choosing Toggle selection from the context menu, or by left-clicking on the Vertex. You can toggle the selection of multiple obects by clicking and dragging with the left mouse button; a selection rectangle will appear, showing the area to be affected.

    If you click anywhere in the project space with the left mouse, all Vertex marking will be cleared. Holding down the Shift key when you click will inhibit this. Don't press the Ctrl key; this causes the marked Vertices to be dragged around.

    You can mark or unmark a continuous section by right-clicking on a mesh object and selecting Select continuous section from the context menu. The selection of the object that was right-clicked will be toggled, and every part of the mesh that is directly or indirectly attached to that object will be selected or deselected to match.

    The marking logic is determined by the last object that was directly marked or unmarked:

    Marked Vertices, Faces, and Edges have extra highlighting added to them (a forest green tinting around them).

    Matrix transformation of marked objects

    You can apply a transformation matrix of your own devising to the marked Vertices by selecting this operation from the window menu, selecting Transform->Matrix from the context menu, or by pressing the M key.

    A dialog box will appear, asking you for the matrix to apply.

    Merging Vertices

    While dragging a single Vertex you will notice other Vertices highlight as the mouse gets near enough to them. If you drop the dragged Vertex while another Vertex is thus highlighted, you will be offered the option of merging the two Vertices. If you agree, the Vertices will be merged. Any Edges that become redundant as a result of this will be merged, and if this causes more than two Faces to border on a single Edge, the extra Faces will be deleted.

    Ordering Bones

    If two or more Bones are located at the exact same spot, only one of them will highlight when you roll the mouse pointer over it. Select Push Back from the Bone context menu to force this Bone to the back of the other Bones that are in the same place. This operation has no effect on Bone parenting or any other property of the Bone; it merely pushes it back in the list so that other Bones can be accessed by the mouse.

    Rotating the marked objects

    You can rotate the marked Vertices by selecting this operation from the window menu, selecting Transform->Rotate from the context menu, or by pressing the R key.

    A dialog box will appear, asking you for the rotation angle around each coordinate axis. A value of zero specifies no rotation for that axis.

    All rotation is done relative to the origin, which is at <0,0,0>.

    Scaling the marked objects

    You can scale the marked Vertices by selecting this operation from the window menu, selecting Transform->Scale from the context menu, or by pressing the S key.

    A dialog box will appear, asking you for the amount to scale all of the Vertices. A value of one specifies no scaling for that coordinate.

    All scaling is done relative to the origin, which is at <0,0,0>.

    Sharpening and smoothing

    You can set the sharpness level of an Edge by right-clicking on it and selecting the Properties... item from the context menu.

    The sharpening feature affects behavior for surface subdivision.

    Showing hidden objects

    <>You can reveal objects that you have hidden by selecting View->Show hidden from the menu or by right-clicking in an empty space and selecting Show hidden from the context menu.

    Splitting the mesh

    You can split the mesh into a finer mesh. The model menu and the mesh view context menu allow you to split all of the marked Edges, and the Faces which border on those Edges. The Edge context menu and the Face context menu allow you to split that object and everything bordering on that object.

    The Faces that result from a divided Face inherit the texture of their parent Face, and any uv-mapping that is in the parent Face will be seamlessly applied to the children.

    The Vertices generated by splitting are not attached to any Bone. This may yield undesireable results.

    Subdividing the mesh

    You can also apply a single level of subdivision to the mesh. The model menu and the mesh view context menu allow you to subdivide all of the marked Edges, and the Faces which border on those Edges.

    This differs from splitting in that the new Vertices are calculated according to a modified Loop scheme. The original marked Vertices are also moved, so that the overall result is a smoother mesh than the original.

    The Vertices generated by splitting are not attached to any Bone. This may yield undesireable results.

    Subdivision Preview

    You can get a preview of the final mesh (that is, the approximate view of a large number of subdivisions) by clicking the appropriate button on the toolbar.

    The subdivision preview is done by taking the results of the first subdivision, calculating the final points for the first-level vertices, and then replacing each first-level face with a patch of n x n. You can set n by selecting Set refinement level from the View menu.

    Texture Mapping

    You can apply texture mapping to any Face by right-clicking on it and selecting Add uv-mapping from the context menu. A default set of mapping points will be added to the Face.

    Default texture mapping is derived from the neighboring mapped Faces using the same texture, when the Edges between are not sharp. If no neighboring Face can be used this way, then the Face's maps will be set to default values based on the orientation of the Face in the editing screen.

    If mapping is derived from a neighboring Face, the two Faces will share their mapping points.

    You can edit mapping for a Face by right-clicking the Face and selecting Edit uv-mapping from the context menu. You will then be taken to texture mapping view.

    When you are in texture mapping view, the texture mapping for all of the Faces that use the same texture are available for editing.

    You can leave texture mapping mode by selecting the menu option from the windows menu, or by selecting Mesh mode from the context menu.

    Textures

    You can texture a Face at any time by right-clicking on it. If you have done any texturing, the most recently-applied texture will appear in the context menu. You can also select another texture.

    You can also texture all of the marked Faces at once through the Textures... item on the main menu and the mesh view context menu. The same dialog box will come up.

    The texture dialog box allows you to add, modify, or delete textures. Textures can be either solid or based on a Windows Bitmap (.BMP) file (other file formats may be added in the future). If either dimension of the supplied picture is not a power of two, it will be stretched along that dimension to the nearest power of two. The results may not be appealing, so for best results use files that whose dimensions are already a power of two. Note that the dimensions do not need to be the same power of two; a 128x8 image is perfectly acceptable.

    Note that solid textures will have a default pattern applied to them, in case you want to add uv-mapping without the benefit of a bitmap for guiding your efforts.

    The aspect ratio of bitmaps will be scaled to 1:1.

    Translating the marked objects

    You can translate the marked Vertices by selecting this operation from the window menu, selecting Transform->Translate from the context menu, or by pressing the T key.

    A dialog box will appear, asking you for the amount to translate all of the Vertices. The value you specify will be added to the position of each marked Vertex.


    Issues