예제 #1
0
meshLoader::meshLoader(const char* filename)
{
	Assimp::Importer importer;
	const aiScene* scene=importer.ReadFile(filename, aiProcess_GenSmoothNormals | aiProcess_Triangulate | aiProcess_CalcTangentSpace | aiProcess_FlipUVs);
	if(scene->mFlags==AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode)
	{
		std::cout << "The file wasn't successfuly opened " << filename << std::endl;
		return; 
	}
	
	recursiveProcess(scene->mRootNode,scene);
}
예제 #2
0
/* Recursively processes the meshes of the model
 */
void OBJLoader::recursiveProcess(aiNode* node, const aiScene* scene) {
	//process
	for(std::size_t i=0; i<node->mNumMeshes;i++)
	{
		aiMesh* mesh = scene->mMeshes[node->mMeshes[i]];
		processMesh(mesh, scene);
	}

	//recursion
	for(std::size_t i=0; i<node->mNumChildren; i++)
	{
		recursiveProcess(node->mChildren[i], scene);
	}
}
예제 #3
0
OBJLoader::OBJLoader(const char* filename) {
	Assimp::Importer importer;
	//Initialize DevIL
	devilStartUp(); 
	
	const aiScene* scene=importer.ReadFile(filename, aiProcess_GenSmoothNormals|aiProcess_Triangulate|aiProcess_CalcTangentSpace|aiProcess_FlipUVs);

	if(scene->mFlags==AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) 
	{ 
      fprintf( stderr, "Couldn't load model, Error Importing Asset" );	   
	  return;
	} 

	recursiveProcess(scene->mRootNode, scene);
}