Export tangents in GLTF (#5900)
Previously tangents were not being exported. If they are present, they should also be properly exported. Co-authored-by: Kim Kulling <kimkulling@users.noreply.github.com>
This commit is contained in:
@@ -608,6 +608,7 @@ namespace glTF2 {
|
||||
{
|
||||
WriteAttrs(w, attrs, p.attributes.position, "POSITION");
|
||||
WriteAttrs(w, attrs, p.attributes.normal, "NORMAL");
|
||||
WriteAttrs(w, attrs, p.attributes.tangent, "TANGENT");
|
||||
WriteAttrs(w, attrs, p.attributes.texcoord, "TEXCOORD", true);
|
||||
WriteAttrs(w, attrs, p.attributes.color, "COLOR", true);
|
||||
WriteAttrs(w, attrs, p.attributes.joint, "JOINTS", true);
|
||||
|
||||
@@ -1215,6 +1215,20 @@ void glTF2Exporter::ExportMeshes() {
|
||||
p.attributes.normal.push_back(n);
|
||||
}
|
||||
|
||||
/******************** Tangents ********************/
|
||||
if (nullptr != aim->mTangents) {
|
||||
for (uint32_t i = 0; i < aim->mNumVertices; ++i) {
|
||||
aim->mTangents[i].NormalizeSafe();
|
||||
}
|
||||
Ref<Accessor> t = ExportData(
|
||||
*mAsset, meshId, b, aim->mNumVertices, aim->mTangents, AttribType::VEC3,
|
||||
AttribType::VEC3, ComponentType_FLOAT, BufferViewTarget_ARRAY_BUFFER
|
||||
);
|
||||
if (t) {
|
||||
p.attributes.tangent.push_back(t);
|
||||
}
|
||||
}
|
||||
|
||||
/************** Texture coordinates **************/
|
||||
for (int i = 0; i < AI_MAX_NUMBER_OF_TEXTURECOORDS; ++i) {
|
||||
if (!aim->HasTextureCoords(i)) {
|
||||
|
||||
Reference in New Issue
Block a user