You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2026-01-07 19:53:17 +00:00
Fix the channels gltf importer uses for metallic and AO textures.
Khronos blender gltf exporter uses red channel for occlusion and blue channel for metallic, whereas the current behavior is the opposite. Fixes #10700.
This commit is contained in:
@@ -1216,7 +1216,7 @@ Error EditorSceneImporterGLTF::_parse_materials(GLTFState &state) {
|
||||
if (bct.has("index")) {
|
||||
Ref<Texture> t = _get_texture(state, bct["index"]);
|
||||
material->set_texture(SpatialMaterial::TEXTURE_METALLIC, t);
|
||||
material->set_metallic_texture_channel(SpatialMaterial::TEXTURE_CHANNEL_RED);
|
||||
material->set_metallic_texture_channel(SpatialMaterial::TEXTURE_CHANNEL_BLUE);
|
||||
material->set_texture(SpatialMaterial::TEXTURE_ROUGHNESS, t);
|
||||
material->set_roughness_texture_channel(SpatialMaterial::TEXTURE_CHANNEL_GREEN);
|
||||
if (!mr.has("metallicFactor")) {
|
||||
@@ -1243,6 +1243,7 @@ Error EditorSceneImporterGLTF::_parse_materials(GLTFState &state) {
|
||||
Dictionary bct = d["occlusionTexture"];
|
||||
if (bct.has("index")) {
|
||||
material->set_texture(SpatialMaterial::TEXTURE_AMBIENT_OCCLUSION, _get_texture(state, bct["index"]));
|
||||
material->set_ao_texture_channel(SpatialMaterial::TEXTURE_CHANNEL_RED);
|
||||
material->set_feature(SpatialMaterial::FEATURE_AMBIENT_OCCLUSION, true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user