From 0c0ca403b5ee7fb68807c0451b87c971e3f9b43c Mon Sep 17 00:00:00 2001 From: aoowweenn Date: Sun, 5 Mar 2017 20:40:41 +0800 Subject: [PATCH] Convert to OpenGL space by three processes. --- code/MMDImporter.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/MMDImporter.cpp b/code/MMDImporter.cpp index 681608516..e55dc8d2f 100644 --- a/code/MMDImporter.cpp +++ b/code/MMDImporter.cpp @@ -218,10 +218,13 @@ void MMDImporter::CreateDataFromImport(const pmx::PmxModel* pModel, aiScene* pSc // Convert everything to OpenGL space MakeLeftHandedProcess convertProcess; - convertProcess.Execute( pScene); + convertProcess.Execute(pScene); - FlipWindingOrderProcess flipper; - flipper.Execute(pScene); + FlipUVsProcess uvFlipper; + uvFlipper.Execute(pScene); + + FlipWindingOrderProcess windingFlipper; + windingFlipper.Execute(pScene); } @@ -263,7 +266,7 @@ aiMesh* MMDImporter::CreateMesh(const pmx::PmxModel* pModel, const int indexStar const float* normal = v->normal; pMesh->mNormals[index].Set(normal[0], normal[1], normal[2]); pMesh->mTextureCoords[0][index].x = v->uv[0]; - pMesh->mTextureCoords[0][index].y = -v->uv[1]; + pMesh->mTextureCoords[0][index].y = v->uv[1]; for( int i = 1; i <= pModel->setting.uv; i++ ) { // TODO: wrong here? use quaternion transform? pMesh->mTextureCoords[i][index].x = v->uva[i][0]; @@ -297,9 +300,6 @@ aiMaterial* MMDImporter::CreateMaterial(const pmx::PmxMaterial* pMat, const pmx: mat->AddProperty(&texture_path, AI_MATKEY_TEXTURE(aiTextureType_DIFFUSE, 0)); int mapping_uvwsrc = 0; mat->AddProperty(&mapping_uvwsrc, 1, AI_MATKEY_UVWSRC(aiTextureType_DIFFUSE, 0)); - int mapping_mode = aiTextureMapMode_Mirror; - mat->AddProperty(&mapping_mode, 1, AI_MATKEY_MAPPINGMODE_U(aiTextureType_DIFFUSE, 0)); - mat->AddProperty(&mapping_mode, 1, AI_MATKEY_MAPPINGMODE_V(aiTextureType_DIFFUSE, 0)); return mat; }