20: 2012-03-03 (土) 13:22:09 iseki |
21: 2012-04-10 (火) 18:58:10 iseki |
| *** [[Technical Memo>./Memo]] [#sa4c33b0] | | *** [[Technical Memo>./Memo]] [#sa4c33b0] |
| #br | | #br |
| + | ** Finger Motion [#xe2d83ed] |
| + | |
| + | *** Mesh [#e6fb0fc5] |
| + | |
| + | - character/avatar_upper_body.llm + [[avatar_lad.xml>./avatar_lad.xml]] => Viewer |
| + | #br |
| + | - http://marupeke296.com/index.html |
| + | - http://wiki.secondlife.com/wiki/Avatar_Appearance |
| + | struct morph [] |
| + | { |
| + | char[64] morphName |
| + | S32 numVertices |
| + | struct vertices[ numVertices ] |
| + | { |
| + | U32 vertexIndex |
| + | LLVector3 coord |
| + | LLVector3 normal |
| + | LLVector3 binormal |
| + | LLVector2 texCoord |
| + | } |
| + | } |
| + | |
| + | char[64] "End Morphs" |
| + | #br |
| + | |
| + | - LLPolyMorphData -> LLPolyMeshSharedData -> LLPolyMesh -> LLPolyMorphData |
| + | - LLCharacter::updateVisualParams() -> LLPolyMorphTarget::apply() |
| + | #br |
| + | |
| + | *** llpolymorph.h [#gad26ccb] |
| + | - LLPolyMorphData |
| + | //----------------------------------------------------------------------------- |
| + | // LLPolyMorphData() |
| + | //----------------------------------------------------------------------------- |
| + | class LLPolyMorphData |
| + | { |
| + | public: |
| + | LLPolyMorphData(const std::string& morph_name); |
| + | ~LLPolyMorphData(); |
| + | |
| + | BOOL loadBinary(LLFILE* fp, LLPolyMeshSharedData *mesh); |
| + | const std::string& getName() { return mName; } |
| + | |
| + | public: |
| + | std::string mName; |
| + | // morphology |
| + | U32 mNumIndices; |
| + | U32* mVertexIndices; |
| + | U32 mCurrentIndex; |
| + | LLVector3* mCoords; |
| + | LLVector3* mNormals; |
| + | LLVector3* mBinormals; |
| + | LLVector2* mTexCoords; |
| + | F32 mTotalDistortion; // vertex distortion summed over entire morph |
| + | F32 mMaxDistortion; // maximum single vertex distortion in a given morph |
| + | LLVector3 mAvgDistortion; // average vertex distortion, to infer directionality of the morph |
| + | LLPolyMeshSharedData* mMesh; |
| + | }; |
| + | #br |
| + | |
| + | *** llpolyMesh.h [#b2e1b287] |
| + | **** LLPolyMesh [#o09cbc83] |
| + | -- LLPolyMeshSharedData *mSharedData |
| + | -- getMorphData(const std::string& morph_name) で mMorphData からメッシュデータを得る |
| + | #br |
| + | **** LLPolyMeshSharedData [#n149cc3d] |
| + | -- morphdata_list_t mMorphData; // LLPolyMorphData のリスト |
| + | -- loadMesh() でメッシュデータを読み込んで mMorphData リストに追加 |