1 | <HTML> |
---|
2 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
---|
3 | <!-- Created on , 12 2006 by texi2html 1.64 --> |
---|
4 | <!-- |
---|
5 | Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author) |
---|
6 | Karl Berry <karl@freefriends.org> |
---|
7 | Olaf Bachmann <obachman@mathematik.uni-kl.de> |
---|
8 | and many others. |
---|
9 | Maintained by: Olaf Bachmann <obachman@mathematik.uni-kl.de> |
---|
10 | Send bugs and suggestions to <texi2html@mathematik.uni-kl.de> |
---|
11 | |
---|
12 | --> |
---|
13 | <HEAD> |
---|
14 | <TITLE>OGRE Manual v1.2.0 ('Dagon'): Combining Skeletal and Vertex Animation</TITLE> |
---|
15 | |
---|
16 | <META NAME="description" CONTENT="OGRE Manual v1.2.0 ('Dagon'): Combining Skeletal and Vertex Animation"> |
---|
17 | <META NAME="keywords" CONTENT="OGRE Manual v1.2.0 ('Dagon'): Combining Skeletal and Vertex Animation"> |
---|
18 | <META NAME="resource-type" CONTENT="document"> |
---|
19 | <META NAME="distribution" CONTENT="global"> |
---|
20 | <META NAME="Generator" CONTENT="texi2html 1.64"> |
---|
21 | <LINK TYPE="text/css" rel="stylesheet" href="../style.css"> |
---|
22 | </HEAD> |
---|
23 | |
---|
24 | <BODY LANG="" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"> |
---|
25 | |
---|
26 | <A NAME="SEC304"></A> |
---|
27 | <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
---|
28 | <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_72.html#SEC303"> < </A>]</TD> |
---|
29 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_70.html#SEC299"> Up </A>]</TD> |
---|
30 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_74.html#SEC307"> > </A>]</TD> |
---|
31 | <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD> |
---|
32 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_toc.html#SEC_Contents">Contents</A>]</TD> |
---|
33 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
---|
34 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_abt.html#SEC_About"> ? </A>]</TD> |
---|
35 | </TR></TABLE> |
---|
36 | <HR SIZE=1> |
---|
37 | <H3> 8.3.3 Combining Skeletal and Vertex Animation </H3> |
---|
38 | <!--docid::SEC304::--> |
---|
39 | Skeletal animation and vertex animation (of either subtype) can both be enabled on the same entity at the same time (See section <A HREF="manual_69.html#SEC298">8.2 Animation State</A>). The effect of this is that vertex animation is applied first to the base mesh, then skeletal animation is applied to the result. This allows you, for example, to facially animate a character using pose vertex animation, whilst performing the main movement animation using skeletal animation.<BR><BR> |
---|
40 | <P> |
---|
41 | |
---|
42 | Combining the two is, from a user perspective, as simple as just enabling both animations at the same time. When it comes to using this feature efficiently though, there are a few points to bear in mind: |
---|
43 | </P><P> |
---|
44 | |
---|
45 | <UL> |
---|
46 | <LI><A HREF="manual_73.html#SEC305">Combined Hardware Skinning</A> |
---|
47 | <LI><A HREF="manual_73.html#SEC306">Submesh Splits</A> |
---|
48 | </UL> |
---|
49 | <P> |
---|
50 | |
---|
51 | <A NAME="Combined Hardware Skinning"></A> |
---|
52 | <A NAME="SEC305"></A> |
---|
53 | <H2> Combined Hardware Skinning </H2> |
---|
54 | <!--docid::SEC305::--> |
---|
55 | For complex characters it is a very good idea to implement hardware skinning by including a technique in your materials which has a vertex program which can perform the kinds of animation you are using in hardware. See <A HREF="manual_18.html#SEC95">Skeletal Animation in Vertex Programs</A>, <A HREF="manual_18.html#SEC96">Morph Animation in Vertex Programs</A>, <A HREF="manual_18.html#SEC97">Pose Animation in Vertex Programs</A>. <BR><BR> |
---|
56 | <P> |
---|
57 | |
---|
58 | When combining animation types, your vertex programs must support both types of animation that the combined mesh needs, otherwise hardware skinning will be disabled. You should implement the animation in the same way that OGRE does, ie perform vertex animation first, then apply skeletal animation to the result of that. Remember that the implementation of morph animation passes 2 absolute snapshot buffers of the from & to keyframes, along with a single parametric, which you have to linearly interpolate, whilst pose animation passes the base vertex data plus 'n' pose offset buffers, and 'n' parametric weight values. <BR><BR> |
---|
59 | </P><P> |
---|
60 | |
---|
61 | <A NAME="Submesh Splits"></A> |
---|
62 | <A NAME="SEC306"></A> |
---|
63 | <H2> Submesh Splits </H2> |
---|
64 | <!--docid::SEC306::--> |
---|
65 | <P> |
---|
66 | |
---|
67 | If you only need to combine vertex and skeletal animation for a small part of your mesh, e.g. the face, you could split your mesh into 2 parts, one which needs the combination and one which does not, to reduce the calculation overhead. Note that it will also reduce vertex buffer usage since vertex keyframe / pose buffers will also be smaller. Note that if you use hardware skinning you should then implement 2 separate vertex programs, one which does only skeletal animation, and the other which does skeletal and vertex animation. |
---|
68 | </P><P> |
---|
69 | |
---|
70 | <A NAME="SceneNode Animation"></A> |
---|
71 | <HR SIZE=1> |
---|
72 | <TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> |
---|
73 | <TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_72.html#SEC303"> < </A>]</TD> |
---|
74 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_70.html#SEC299"> Up </A>]</TD> |
---|
75 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_74.html#SEC307"> > </A>]</TD> |
---|
76 | <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="index.html#SEC_Top">Top</A>]</TD> |
---|
77 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_toc.html#SEC_Contents">Contents</A>]</TD> |
---|
78 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> |
---|
79 | <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="manual_abt.html#SEC_About"> ? </A>]</TD> |
---|
80 | </TR></TABLE> |
---|
81 | <BR> |
---|
82 | <FONT SIZE="-1"> |
---|
83 | This document was generated |
---|
84 | by <I>Steve Streeting</I> on <I>, 12 2006</I> |
---|
85 | using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html |
---|
86 | "><I>texi2html</I></A> |
---|
87 | |
---|
88 | </BODY> |
---|
89 | </HTML> |
---|