mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 13:53:38 +02:00
Partial fix for textures in exports from 3D Studio Max.
This commit is contained in:
parent
41f73b5e9d
commit
a9df8a6b29
1 changed files with 10 additions and 2 deletions
|
@ -902,11 +902,12 @@ FBXGeometry extractFBXGeometry(const FBXNode& node, const QVariantHash& mapping)
|
||||||
foreach (const FBXNode& connection, child.children) {
|
foreach (const FBXNode& connection, child.children) {
|
||||||
if (connection.name == "C" || connection.name == "Connect") {
|
if (connection.name == "C" || connection.name == "Connect") {
|
||||||
if (connection.properties.at(0) == "OP") {
|
if (connection.properties.at(0) == "OP") {
|
||||||
if (connection.properties.at(3) == "DiffuseColor") {
|
QByteArray type = connection.properties.at(3).toByteArray().toLower();
|
||||||
|
if (type.contains("diffuse")) {
|
||||||
diffuseTextures.insert(connection.properties.at(2).toString(),
|
diffuseTextures.insert(connection.properties.at(2).toString(),
|
||||||
connection.properties.at(1).toString());
|
connection.properties.at(1).toString());
|
||||||
|
|
||||||
} else if (connection.properties.at(3) == "Bump") {
|
} else if (type.contains("bump")) {
|
||||||
bumpTextures.insert(connection.properties.at(2).toString(),
|
bumpTextures.insert(connection.properties.at(2).toString(),
|
||||||
connection.properties.at(1).toString());
|
connection.properties.at(1).toString());
|
||||||
}
|
}
|
||||||
|
@ -1035,6 +1036,13 @@ FBXGeometry extractFBXGeometry(const FBXNode& node, const QVariantHash& mapping)
|
||||||
QString diffuseTextureID = diffuseTextures.value(childID);
|
QString diffuseTextureID = diffuseTextures.value(childID);
|
||||||
if (!diffuseTextureID.isNull()) {
|
if (!diffuseTextureID.isNull()) {
|
||||||
part.diffuseFilename = textureFilenames.value(diffuseTextureID);
|
part.diffuseFilename = textureFilenames.value(diffuseTextureID);
|
||||||
|
|
||||||
|
// FBX files generated by 3DSMax have an intermediate texture parent, apparently
|
||||||
|
foreach (const QString& childTextureID, childMap.values(diffuseTextureID)) {
|
||||||
|
if (textureFilenames.contains(childTextureID)) {
|
||||||
|
part.diffuseFilename = textureFilenames.value(childTextureID);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
QString bumpTextureID = bumpTextures.value(childID);
|
QString bumpTextureID = bumpTextures.value(childID);
|
||||||
if (!bumpTextureID.isNull()) {
|
if (!bumpTextureID.isNull()) {
|
||||||
|
|
Loading…
Reference in a new issue