Fix FBX winding for Nahida preview

This commit is contained in:
2026-04-11 18:45:49 +08:00
parent 443c56ed08
commit 8f71f99de4
4 changed files with 1131 additions and 90 deletions

View File

@@ -5,6 +5,7 @@
#include <XCEngine/Resources/Mesh/MeshImportSettings.h>
#include <XCEngine/Resources/Material/Material.h>
#include <XCEngine/Resources/Texture/Texture.h>
#include <XCEngine/Resources/Texture/TextureImportHeuristics.h>
#include <XCEngine/Resources/Texture/TextureLoader.h>
#include <XCEngine/Resources/Texture/TextureImportSettings.h>
#include <XCEngine/Core/Asset/ResourceManager.h>
@@ -93,7 +94,7 @@ Core::uint32 BuildPostProcessFlags(const MeshImportSettings& settings) {
if (settings.GetAxisConversion()) {
flags |= aiProcess_MakeLeftHanded;
flags |= aiProcess_FlipWindingOrder;
// The engine treats CCW as front-facing, so keep the imported winding unchanged.
}
if (settings.HasImportFlag(MeshImportFlags::FlipUVs)) {
@@ -174,11 +175,7 @@ Containers::String BuildSubResourcePath(const Containers::String& sourcePath,
}
TextureImportSettings BuildMaterialTextureImportSettings(const char* propertyName) {
TextureImportSettings settings;
(void)propertyName;
settings.SetSRGB(false);
settings.SetTargetFormat(TextureFormat::RGBA8_UNORM);
return settings;
return BuildTextureImportSettingsForMaterialProperty(propertyName);
}
std::string BuildTextureCacheKey(const std::string& pathKey, const TextureImportSettings& settings) {

View File

@@ -8,6 +8,7 @@
#include <XCEngine/Resources/Model/Model.h>
#include <XCEngine/Resources/Shader/Shader.h>
#include <XCEngine/Resources/Texture/Texture.h>
#include <XCEngine/Resources/Texture/TextureImportHeuristics.h>
#include <XCEngine/Resources/Texture/TextureImportSettings.h>
#include <XCEngine/Resources/Texture/TextureLoader.h>
@@ -185,7 +186,7 @@ Core::uint32 BuildPostProcessFlags(const MeshImportSettings& settings) {
if (settings.GetAxisConversion()) {
flags |= aiProcess_MakeLeftHanded;
flags |= aiProcess_FlipWindingOrder;
// The engine treats CCW as front-facing, so keep the imported winding unchanged.
}
if (settings.HasImportFlag(MeshImportFlags::FlipUVs)) {
@@ -214,11 +215,7 @@ Core::uint32 BuildPostProcessFlags(const MeshImportSettings& settings) {
}
TextureImportSettings BuildMaterialTextureImportSettings(const char* propertyName) {
TextureImportSettings settings;
(void)propertyName;
settings.SetSRGB(false);
settings.SetTargetFormat(TextureFormat::RGBA8_UNORM);
return settings;
return BuildTextureImportSettingsForMaterialProperty(propertyName);
}
std::string BuildTextureCacheKey(const std::string& pathKey, const TextureImportSettings& settings) {