日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

aimesh node重启_ASSIMP的数据结构

發(fā)布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aimesh node重启_ASSIMP的数据结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

數(shù)據(jù)結(jié)構(gòu)是對文件的描述,也是我們想要獲取的最終產(chǎn)物,一般來說我們會用這個結(jié)果映射到我們自己的模型里面去(這樣做是為了降低對這個項目的依賴,如果你的模型都用別人的,還搞毛啊)

1.aiScene :根節(jié)點

struct aiScene

{

unsigned int mFlags; // 一個狀態(tài)段

C_STRUCT aiNode* mRootNode; // 根節(jié)點

// 網(wǎng)格

unsigned int mNumMeshes;

C_STRUCT aiMesh** mMeshes;

//材質(zhì)

unsigned int mNumMaterials;

C_STRUCT aiMaterial** mMaterials;

//動畫

unsigned int mNumAnimations;

C_STRUCT aiAnimation** mAnimations;

//紋理

unsigned int mNumTextures;

C_STRUCT aiTexture** mTextures;

//光源

unsigned int mNumLights;

C_STRUCT aiLight** mLights;

//攝像機

unsigned int mNumCameras;

C_STRUCT aiCamera** mCameras;

};

這結(jié)構(gòu)太簡潔了。

2.aiNode :

struct aiNode

{

C_STRUCT aiString mName; // 名字

C_STRUCT aiMatrix4x4 mTransformation; // 父的相對變換

C_STRUCT aiNode* mParent; // 父節(jié)點

// 孩紙節(jié)點

unsigned int mNumChildren;

C_STRUCT aiNode** mChildren;

// 網(wǎng)格

unsigned int mNumMeshes;

unsigned int* mMeshes;

};

3.aiMesh :網(wǎng)格

struct aiMesh

{

unsigned int mPrimitiveTypes;

unsigned int mNumVertices; // 頂點數(shù)

unsigned int mNumFaces; // 面數(shù)

C_STRUCT aiVector3D* mVertices; // 頂點集合

C_STRUCT aiVector3D* mNormals; // 法向量集合

C_STRUCT aiVector3D* mTangents; // 切線集合

C_STRUCT aiVector3D* mBitangents; //雙向切線集合

C_STRUCT aiColor4D* mColors[AI_MAX_NUMBER_OF_COLOR_SETS]; // 頂點顏色集合

C_STRUCT aiVector3D* mTextureCoords[AI_MAX_NUMBER_OF_TEXTURECOORDS]; // 頂點的紋理坐標(biāo)(u,v)

unsigned int mNumUVComponents[AI_MAX_NUMBER_OF_TEXTURECOORDS];//??

C_STRUCT aiFace* mFaces; //面的集合

unsigned int mMaterialIndex; // 材質(zhì)索引

C_STRUCT aiString mName; //名字

// 骨頭

unsigned int mNumBones;

C_STRUCT aiBone** mBones;

//動畫(這一組參數(shù)還未被使用)

unsigned int mNumAnimMeshes;

C_STRUCT aiAnimMesh** mAnimMeshes;

};

4.aiMaterial :材質(zhì)是一個模板數(shù)據(jù)結(jié)構(gòu),材質(zhì)本身就是N多屬性

5.aiTexture :

struct aiTexture

{

unsigned int mWidth;

unsigned int mHeight;

char achFormatHint[4]; //這個的紋理文件的類型['dds\\0', 'pcx\\0', 'jpg\\0']

C_STRUCT aiTexel* pcData; //紋理的內(nèi)容

};

struct aiTexel

{

unsigned char b,g,r,a; // 四元數(shù)描述某個像素的顏色和透明度

}

6.aiAnimation :動畫

struct aiAnimation

{

C_STRUCT aiString mName;

double mDuration;

double mTicksPerSecond;

//節(jié)點動畫集合,骨骼動畫屬于節(jié)點動畫

unsigned int mNumChannels;

C_STRUCT aiNodeAnim** mChannels;

//網(wǎng)格動畫集合

unsigned int mNumMeshChannels;

C_STRUCT aiMeshAnim** mMeshChannels;

};

6.1?aiNodeAnim :節(jié)點動畫

struct aiNodeAnim

{

C_STRUCT aiString mNodeName;

//位置的軌跡

unsigned int mNumPositionKeys;

C_STRUCT aiVectorKey* mPositionKeys;

//旋轉(zhuǎn)的軌跡

unsigned int mNumRotationKeys;

C_STRUCT aiQuatKey* mRotationKeys;

//縮放的軌跡

unsigned int mNumScalingKeys;

C_STRUCT aiVectorKey* mScalingKeys;

C_ENUM aiAnimBehaviour mPreState;

C_ENUM aiAnimBehaviour mPostState;

};

struct aiVectorKey //頂點幀

{

double mTime; // 時間

C_STRUCT aiVector3D mValue; // 值

};

struct aiQuatKey // 四元數(shù)幀

{

double mTime; // 時間

C_STRUCT aiQuaternion mValue; //值

};

6.2?aiMeshAnim :網(wǎng)格動畫

struct aiMeshAnim

{

C_STRUCT aiString mName;

//所有移動的點都會有一個網(wǎng)格幀

unsigned int mNumKeys;

C_STRUCT aiMeshKey* mKeys;

};

struct aiMeshKey // 網(wǎng)格幀

{

double mTime; // 時間

unsigned int mValue; // 值 (這個值沒有理解啊)

};

7.aiLight :光源

struct aiLight

{

C_STRUCT aiString mName;

C_ENUM aiLightSourceType mType; // 光源類型 4種

C_STRUCT aiVector3D mPosition; // 位置

C_STRUCT aiVector3D mDirection; // 方向

// 衰減因子,衰減=1/(att0+ ATT1* D+ ATT2* D* D),D是距離

float mAttenuationConstant; // att0

float mAttenuationLinear; // ATT1

float mAttenuationQuadratic; // ATT2

C_STRUCT aiColor3D mColorDiffuse; // 漫反射光的顏色

C_STRUCT aiColor3D mColorSpecular; // 鏡面光的顏色

C_STRUCT aiColor3D mColorAmbient; // 環(huán)境光的顏色

// 當(dāng)光源類型為aiLightSource_SPOT(聚光燈)的時候有效

float mAngleInnerCone; // 內(nèi)角弧度

float mAngleOuterCone; // 外角弧度

};

enum aiLightSourceType // 光源的類型

{

aiLightSource_UNDEFINED = 0x0, // 全局光

aiLightSource_DIRECTIONAL = 0x1, // 定向光源,光源的位置無限遠

aiLightSource_POINT = 0x2, // 點光源

aiLightSource_SPOT = 0x3, // 聚光燈類似的光

};

8.aiCamera :攝像機

struct aiCamera

{

C_STRUCT aiString mName; // 名字

C_STRUCT aiVector3D mPosition; // 相機的位置,默認值0|0|0

C_STRUCT aiVector3D mUp; // 相機的上方,默認值0| 1 | 0

C_STRUCT aiVector3D mLookAt; // 視點方向,默認值0|0|1

float mHorizontalFOV; // 半水平視角的幅度 默認值1/4PI

float mClipPlaneNear; // 近視截體平面,默認值 0.1f.

float mClipPlaneFar; // 遠視截體平面,默認值是1000.f..

float mAspect; // 屏幕的寬高比,這個需要獲取

};

分享到:

2012-12-28 02:29

瀏覽 2694

評論

總結(jié)

以上是生活随笔為你收集整理的aimesh node重启_ASSIMP的数据结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。