Beispiel #1
0
	void SceneImporter::loadScene(unsigned int entityId, const char* scenePath, std::string shader)
	{
		//Import Scene
		mScene = mImporter->ReadFile(scenePath,
			aiProcess_Triangulate |
			aiProcess_GenSmoothNormals |
			aiProcess_JoinIdenticalVertices |
			aiProcess_ImproveCacheLocality |
			aiProcess_CalcTangentSpace |
			aiProcess_OptimizeMeshes |
			aiProcess_OptimizeGraph);


		//Load each mesh
		for (unsigned int i = 0; i < mScene->mNumMeshes; ++i)
		{
			component::MeshComponent* meshComponent = mEntityWorld->getMeshWorld().add(entityId);
			assert(meshComponent);

			aiMesh* mesh = mScene->mMeshes[i];
			assert(mesh);
			aiMaterial* material = mScene->mMaterials[mesh->mMaterialIndex];
			assert(material);
			Material* newMaterial = new Material();
			newMaterial->shader = mShaderLoader->load(shader);

			loadVertexData(mesh, meshComponent->vertices, meshComponent->indices);

			if (mesh->HasTextureCoords(0))
			{
				loadTextureData(mesh, material, newMaterial);
			}

			if (!loadMaterialProperties(material, newMaterial))
			{
				std::cerr << "SceneImporter: Error loading material properties for: " << scenePath << std::endl;
			}

			meshComponent->material = newMaterial;
		}
	}
//WITH SHADERS=============================
void cModelLoader::init(const char* mdlFilename, GLuint programID, const char* textFilename){

	glGenVertexArrays(1, &vertexArrayID);
	glBindVertexArray(vertexArrayID);


	bool res = loadOBJ(mdlFilename, vertices, uvs, normals);

	

	loadVertexData(vertices);
	loadTexData(uvs);
	loadNormals(normals);
	//loadColourData();

	//"Models/Textures/checker.bmp"
	
	Texture = loadTexture(textFilename);
	
	TextureID = glGetUniformLocation(programID, "myTextureSampler");

	//loadTexData();
}