GPU Gems 3 Chapter 3 List 3.4的解释

GPU Gems 3 Chapter 3 List 3.4的解释

 

 1  for ( int  i = 0 ; i < numBS; i ++ )
 2  {
 3     uint  offset  =  bsPitch  *  bsOffsets.Load(i);
 4     float  weight  =  bsWeights.Load(i);
 5    dp  =  bsVertices.Load(offset  +   3 * vertexID + 0 );
 6    dn  =  bsVertices.Load(offset  +   3 * vertexID + 1 );
 7    dt  =  bsVertices.Load(offset  +   3 * vertexID + 2 );
 8 
 9    pos  +=  dp  *  weight;
10    normal  +=  dn  *  weight;
11    tangent  +=  dt  *  weight;
12  }
13 



Blend Shapes 放在一个固定的数组bsVertices中,
按照

S0V0, S0V1 ... S0VN, S1V0 ... SMVN
的形式存放.

numBS说明了有多少个BS被混合,也就是slots的大小;
bsPitch为SxV0 - SxVN的长度;
bsOffsets[i] 代表第i个slot使用了哪个BS.

你可能感兴趣的:(GPU Gems 3 Chapter 3 List 3.4的解释)