Generate smooth normals

This commit is contained in:
daeunSong
2020-08-19 16:20:52 +09:00
parent a25bb571c8
commit 5e511ef621

View File

@@ -51,7 +51,7 @@ private:
{ {
// read file via ASSIMP // read file via ASSIMP
Assimp::Importer importer; Assimp::Importer importer;
const aiScene* scene = importer.ReadFile(path, aiProcess_Triangulate | aiProcess_FlipUVs | aiProcess_CalcTangentSpace); const aiScene* scene = importer.ReadFile(path, aiProcess_Triangulate | aiProcess_GenSmoothNormals | aiProcess_FlipUVs | aiProcess_CalcTangentSpace);
// check for errors // check for errors
if(!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) // if is Not Zero if(!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) // if is Not Zero
{ {
@@ -102,10 +102,13 @@ private:
vector.z = mesh->mVertices[i].z; vector.z = mesh->mVertices[i].z;
vertex.Position = vector; vertex.Position = vector;
// normals // normals
vector.x = mesh->mNormals[i].x; if (mesh->HasNormals())
vector.y = mesh->mNormals[i].y; {
vector.z = mesh->mNormals[i].z; vector.x = mesh->mNormals[i].x;
vertex.Normal = vector; vector.y = mesh->mNormals[i].y;
vector.z = mesh->mNormals[i].z;
vertex.Normal = vector;
}
// texture coordinates // texture coordinates
if(mesh->mTextureCoords[0]) // does the mesh contain texture coordinates? if(mesh->mTextureCoords[0]) // does the mesh contain texture coordinates?
{ {
@@ -137,7 +140,7 @@ private:
aiFace face = mesh->mFaces[i]; aiFace face = mesh->mFaces[i];
// retrieve all indices of the face and store them in the indices vector // retrieve all indices of the face and store them in the indices vector
for(unsigned int j = 0; j < face.mNumIndices; j++) for(unsigned int j = 0; j < face.mNumIndices; j++)
indices.push_back(face.mIndices[j]); indices.push_back(face.mIndices[j]);
} }
// process materials // process materials
aiMaterial* material = scene->mMaterials[mesh->mMaterialIndex]; aiMaterial* material = scene->mMaterials[mesh->mMaterialIndex];