next up previous contents
Next: Visualization of the Pectoral Motions Up: Modeling the Form and Appearance Previous: Texture-Mapped Models

Coupling the Dynamic and Display Models


The display models that we have described represent the external surface of the artificial fish's body and give the realistic appearance of a variety of fishes. On the other hand, the dynamic fish model described in Chapter gif, represents the underlying ``flesh'' that moves and deform over time to produce the locomotion of the fish. The geometric fish surfaces need to be coupled to the dynamic model so that they will move and deform in accordance with the biomechanical simulation. A straightforward way to achieve this task is to associate the control points of the geometric surface model (in this instance, NURBS surfaces) to the faces of the dynamic model.

The dynamic fish model consists of six segments which are denoted as tex2html_wrap_inline3018 , tex2html_wrap_inline3020 . tex2html_wrap_inline3022 corresponds to the fish's head and tex2html_wrap_inline3024 the fish's tail (see Fig. gif). Each tex2html_wrap_inline3018 has four quadrilateral faces ( tex2html_wrap_inline3022 and two of the faces of tex2html_wrap_inline3024 can be treated as quadrilaterals by double counting one of the vertices of the triangles). An intuitive method of associating the NURBS surface to these faces is to find, for each control point of the NURBS surface, a corresponding point on the quadrilateral faces. To this end, we subdivide each face into sixteen patches as shown in Fig. gif and define each face as a parametric bilinear surface with parameters tex2html_wrap_inline3032 and tex2html_wrap_inline3034 . Let us refer to the 3D vertices of the patches as `patch-nodes'. After the subdivision, each face has in total twenty-five patch-nodes (four of which are the original vertices that define the corners of the face). Given the values of s and t and the 3D coordinates of the four corners of the face, the coordinates of each patch-node P(s,t) can be easily calculated. The resulting number of patch-nodes covering half of the biomechanical fish model matches the number of control points of the corresponding NURBS surface.

Figure: The subdivision of the faces of the dynamic fish.

The procedure of obtaining the positions of the control points of the NURBS surfaces over time is as follows:

  1. Calculate the positions of all patch-nodes of the initial, undeformed dynamic fish model.
  2. Calculate a 3D local coordinate system (u, v, w) for each face. The u-axis is the normal of the surface and one of the edges of the face is the v-axis.
  3. Calculate the ``offset vectors'' pointing from each patch-node to its matching control point in the local coordinate system.
  4. For each display time step:
    1. Update the patch-node positions.
    2. Update the local coordinate systems for each face.
    3. Offset each patch-node by the corresponding offset vector in the appropriate local coordinate system to update the positions of the control points.
    4. Transform the coordinates of control points from the local coordinate systems to the world coordinate system.

Fig. gif shows the overlaying control point mesh and the underlying dynamic fish model. Fig. gif shows how the control point mesh deforms according to the shape of the dynamic fish. More importantly, our animations have also demonstrated that unnatural texture distortions due to surface deformation are very small and barely visible.


Figure: The geometric NURBS surface fish deforms with the dynamic fish.

next up previous contents
Next: Visualization of the Pectoral Motions Up: Modeling the Form and Appearance Previous: Texture-Mapped Models
Xiaoyuan TuJanuary 1996