Node Wrangler: Add support for texturecan texture imports #104445

Merged
Brecht Van Lommel merged 2 commits from Walles/blender-addons:johan/no-directx-map-2 into blender-v3.5-release 2023-02-27 17:53:58 +01:00
3 changed files with 38 additions and 2 deletions

5
node_wrangler/README.md Normal file
View File

@ -0,0 +1,5 @@
# Running Tests
```
./util_test.py
```

View File

@ -153,9 +153,12 @@ def match_files_to_socket_names(files, sockets):
for sname in sockets:
for name, tag_list in names_to_tag_lists.items():
if sname[0] == "Normal" and "dx" in tag_list:
if sname[0] == "Normal":
# Blender wants GL normals, not DX (DirectX) ones:
# https://www.reddit.com/r/blender/comments/rbuaua/texture_contains_normaldx_and_normalgl_files/
if 'dx' in tag_list:
continue
if 'directx' in tag_list:
continue
matches = set(sname[1]).intersection(set(tag_list))

View File

@ -225,6 +225,34 @@ class TestPutFileNamesInSockets(unittest.TestCase):
},
)
def test_texturecan(self):
"""Texture from: https://www.texturecan.com/details/67/"""
files = [
MockFile("metal_0010_ao_1k.jpg"),
MockFile("metal_0010_color_1k.jpg"),
MockFile("metal_0010_height_1k.png"),
MockFile("metal_0010_metallic_1k.jpg"),
MockFile("metal_0010_normal_directx_1k.png"),
MockFile("metal_0010_normal_opengl_1k.png"),
MockFile("metal_0010_roughness_1k.jpg"),
]
sockets = sockets_fixture()
match_files_to_socket_names(files, sockets)
assert_sockets(
self,
sockets,
{
"Ambient Occlusion": "metal_0010_ao_1k.jpg",
"Base Color": "metal_0010_color_1k.jpg",
"Displacement": "metal_0010_height_1k.png",
"Metallic": "metal_0010_metallic_1k.jpg",
"Normal": "metal_0010_normal_opengl_1k.png",
"Roughness": "metal_0010_roughness_1k.jpg",
},
)
if __name__ == "__main__":
unittest.main(verbosity=2)