CryEngine5.5用代码读出模型的各个数据(顶点、UV、法线等)

版权声明:未经同意,不能用于商业用途,版权归本博主所有 https://blog.csdn.net/qq_16123279/article/details/82996870
IRenderNode** pTestRenderNode = nullptr;
uint32 count = gEnv->p3DEngine->GetObjectsByType(EERType::eERType_Brush, pTestRenderNode);
if (count != 0)
{
	IStatObj* pObj = pTestRenderNode[0]->GetEntityStatObj();
	IRenderMesh* pRM = pStatObj->GetRenderMesh();

	if (pRM)
	{
		IIndexedMesh* pIM = pRM->GetIndexedMesh();
		CMesh* pMesh = pIM->GetMesh();

		//读出模型信息
		Vec3* pVertices0 = pMesh->GetStreamPtr<Vec3>(CMesh::POSITIONS);
		vtx_idx* pIndices0 = pMesh->GetStreamPtr<vtx_idx>(CMesh::INDICES);
		SMeshTexCoord* pTexCoords0 = pMesh->GetStreamPtr<SMeshTexCoord>(CMesh::TEXCOORDS);
		SMeshTangents* pTangents = pMesh->GetStreamPtr<SMeshTangents>(CMesh::TANGENTS);
		SMeshColor* pColor0 = pMesh->GetStreamPtr<SMeshColor>(CMesh::COLORS_0);
		SMeshColor* pColor1 = pMesh->GetStreamPtr<SMeshColor>(CMesh::COLORS_1);
	}
}

获取的都是数据的首地址,所以只再知道数据的size就能一个个提取出来了,size一般直接从mesh对象就可以Get到

猜你喜欢

转载自blog.csdn.net/qq_16123279/article/details/82996870