glTF importer: manage escaped uri for texture files
This commit is contained in:
parent
a238b0325d
commit
5a937edabb
|
@ -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',
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue