glTF importer: manage escaped uri for texture files

This commit is contained in:
Julien Duroure 2019-08-09 19:43:24 +02:00
parent a238b0325d
commit 5a937edabb
4 changed files with 8 additions and 8 deletions

View File

@ -15,7 +15,7 @@
bl_info = {
'name': 'glTF 2.0 format',
'author': 'Julien Duroure, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
"version": (0, 9, 45),
"version": (0, 9, 46),
'blender': (2, 80, 0),
'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0',

View File

@ -16,6 +16,7 @@ import bpy
import os
import tempfile
from os.path import dirname, join, isfile, basename
from urllib.parse import unquote
from ...io.imp.gltf2_io_binary import BinaryData
@ -40,8 +41,8 @@ class BlenderImage():
if idx != -1:
return False, None, None
if isfile(join(dirname(gltf.filename), pyimage.uri)):
return True, join(dirname(gltf.filename), pyimage.uri), basename(join(dirname(gltf.filename), pyimage.uri))
if isfile(join(dirname(gltf.filename), unquote(pyimage.uri))):
return True, join(dirname(gltf.filename), unquote(pyimage.uri)), basename(join(dirname(gltf.filename), unquote(pyimage.uri)))
else:
gltf.log.error("Missing file (index " + str(img_idx) + "): " + pyimage.uri)
return False, None, None

View File

@ -129,7 +129,6 @@ class BlenderPbr():
mapping.location = -1500, 500
mapping.vector_type = 'POINT'
if text_node.image is not None: # Sometimes images can't be retrieved (bad gltf file ...)
print("OK")
tex_transform = text_node.image['tex_transform'][str(pypbr.base_color_texture.index)]
mapping.translation[0] = texture_transform_gltf_to_blender(tex_transform)['offset'][0]
mapping.translation[1] = texture_transform_gltf_to_blender(tex_transform)['offset'][1]
@ -196,7 +195,6 @@ class BlenderPbr():
mapping.location = -1500, 500
mapping.vector_type = 'POINT'
if text_node.image is not None: # Sometimes images can't be retrieved (bad gltf file ...)
print("OK")
tex_transform = text_node.image['tex_transform'][str(pypbr.base_color_texture.index)]
mapping.translation[0] = texture_transform_gltf_to_blender(tex_transform)['offset'][0]
mapping.translation[1] = texture_transform_gltf_to_blender(tex_transform)['offset'][1]

View File

@ -15,6 +15,7 @@
import struct
import base64
from os.path import dirname, join, isfile, basename
from urllib.parse import unquote
class BinaryData():
@ -159,9 +160,9 @@ class BinaryData():
data = pyimage.uri[idx + len(sep):]
return base64.b64decode(data), image_name
if isfile(join(dirname(gltf.filename), pyimage.uri)):
with open(join(dirname(gltf.filename), pyimage.uri), 'rb') as f_:
return f_.read(), basename(join(dirname(gltf.filename), pyimage.uri))
if isfile(join(dirname(gltf.filename), unquote(pyimage.uri))):
with open(join(dirname(gltf.filename), unquote(pyimage.uri)), 'rb') as f_:
return f_.read(), basename(join(dirname(gltf.filename), unquote(pyimage.uri)))
else:
gltf.log.error("Missing file (index " + str(img_idx) + "): " + pyimage.uri)
return None, None