Nascent normals from model
parent
2767cc8e95
commit
4be5bed039
|
@ -106,6 +106,7 @@ void USDImporterImplTinyusdz::InternReadFile(
|
||||||
pScene->mMeshes[i] = new aiMesh();
|
pScene->mMeshes[i] = new aiMesh();
|
||||||
verticesForMesh(render_scene, pScene, i);
|
verticesForMesh(render_scene, pScene, i);
|
||||||
facesForMesh(render_scene, pScene, i);
|
facesForMesh(render_scene, pScene, i);
|
||||||
|
normalsForMesh(render_scene, pScene, i);
|
||||||
uvsForMesh(render_scene, pScene, i);
|
uvsForMesh(render_scene, pScene, i);
|
||||||
pScene->mRootNode->mMeshes[i] = static_cast<unsigned int>(i);
|
pScene->mRootNode->mMeshes[i] = static_cast<unsigned int>(i);
|
||||||
}
|
}
|
||||||
|
@ -142,6 +143,24 @@ void USDImporterImplTinyusdz::facesForMesh(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void USDImporterImplTinyusdz::normalsForMesh(
|
||||||
|
const tinyusdz::tydra::RenderScene &render_scene,
|
||||||
|
aiScene *pScene,
|
||||||
|
size_t meshIdx) {
|
||||||
|
pScene->mMeshes[meshIdx]->mNormals = new aiVector3D[pScene->mMeshes[meshIdx]->mNumVertices];
|
||||||
|
size_t faceVertIdxOffset = 0;
|
||||||
|
for (size_t faceIdx = 0; faceIdx < pScene->mMeshes[meshIdx]->mNumFaces; ++faceIdx) {
|
||||||
|
size_t vertIdx;
|
||||||
|
for (size_t j = 0; j < pScene->mMeshes[meshIdx]->mFaces[faceIdx].mNumIndices; ++j) {
|
||||||
|
vertIdx = pScene->mMeshes[meshIdx]->mFaces[faceIdx].mIndices[j];
|
||||||
|
pScene->mMeshes[meshIdx]->mNormals[vertIdx].x = render_scene.meshes[meshIdx].facevaryingNormals[faceVertIdxOffset + j][0];
|
||||||
|
pScene->mMeshes[meshIdx]->mNormals[vertIdx].y = render_scene.meshes[meshIdx].facevaryingNormals[faceVertIdxOffset + j][1];
|
||||||
|
pScene->mMeshes[meshIdx]->mNormals[vertIdx].z = render_scene.meshes[meshIdx].facevaryingNormals[faceVertIdxOffset + j][2];
|
||||||
|
}
|
||||||
|
faceVertIdxOffset += pScene->mMeshes[meshIdx]->mFaces[faceIdx].mNumIndices;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void USDImporterImplTinyusdz::uvsForMesh(
|
void USDImporterImplTinyusdz::uvsForMesh(
|
||||||
const tinyusdz::tydra::RenderScene &render_scene,
|
const tinyusdz::tydra::RenderScene &render_scene,
|
||||||
aiScene *pScene,
|
aiScene *pScene,
|
||||||
|
|
|
@ -73,6 +73,11 @@ public:
|
||||||
aiScene *pScene,
|
aiScene *pScene,
|
||||||
size_t meshIdx);
|
size_t meshIdx);
|
||||||
|
|
||||||
|
void normalsForMesh(
|
||||||
|
const tinyusdz::tydra::RenderScene &render_scene,
|
||||||
|
aiScene *pScene,
|
||||||
|
size_t meshIdx);
|
||||||
|
|
||||||
void uvsForMesh(
|
void uvsForMesh(
|
||||||
const tinyusdz::tydra::RenderScene &render_scene,
|
const tinyusdz::tydra::RenderScene &render_scene,
|
||||||
aiScene *pScene,
|
aiScene *pScene,
|
||||||
|
|
Loading…
Reference in New Issue