UV Layout: don't convert line coordinates to 3d
Although shader uses 3D attribute, it fills missing components with vec4(0,0,0,1). This was changed in rBA563ea27eb1a8
This commit is contained in:
parent
ec558f2a91
commit
fdebdd681f
|
@ -3,7 +3,7 @@
|
|||
bl_info = {
|
||||
"name": "UV Layout",
|
||||
"author": "Campbell Barton, Matt Ebb",
|
||||
"version": (1, 1, 2),
|
||||
"version": (1, 1, 3),
|
||||
"blender": (3, 0, 0),
|
||||
"location": "Image-Window > UVs > Export UV Layout",
|
||||
"description": "Export the UV layout as a 2D graphic",
|
||||
|
@ -128,10 +128,10 @@ class ExportUVLayout(bpy.types.Operator):
|
|||
polygon_data = list(self.iter_polygon_data_to_draw(context, meshes))
|
||||
different_colors = set(color for _, color in polygon_data)
|
||||
if self.modified:
|
||||
depsgraph = context.evaluated_depsgraph_get()
|
||||
for obj in self.iter_objects_to_export(context):
|
||||
obj_eval = obj.evaluated_get(depsgraph)
|
||||
obj_eval.to_mesh_clear()
|
||||
depsgraph = context.evaluated_depsgraph_get()
|
||||
for obj in self.iter_objects_to_export(context):
|
||||
obj_eval = obj.evaluated_get(depsgraph)
|
||||
obj_eval.to_mesh_clear()
|
||||
|
||||
export = self.get_exporter()
|
||||
export(filepath, polygon_data, different_colors, self.size[0], self.size[1], self.opacity)
|
||||
|
|
|
@ -70,12 +70,14 @@ def draw_lines(face_data):
|
|||
for i in range(len(uvs)):
|
||||
start = uvs[i]
|
||||
end = uvs[(i+1) % len(uvs)]
|
||||
coords.append((start[0], start[1], 0.0))
|
||||
coords.append((end[0], end[1], 0.0))
|
||||
coords.append((start[0], start[1]))
|
||||
coords.append((end[0], end[1]))
|
||||
|
||||
# Use '2D_UNIFORM_COLOR' if smooth lines are not required.
|
||||
# Use '2D_UNIFORM_COLOR' in the `batch_for_shader` so we don't need to
|
||||
# convert the coordinates to 3D as in the case of
|
||||
# '3D_POLYLINE_UNIFORM_COLOR'.
|
||||
batch = batch_for_shader(gpu.shader.from_builtin('2D_UNIFORM_COLOR'), 'LINES', {"pos" : coords})
|
||||
shader = gpu.shader.from_builtin('3D_POLYLINE_UNIFORM_COLOR')
|
||||
batch = batch_for_shader(shader, 'LINES', {"pos" : coords})
|
||||
shader.bind()
|
||||
shader.uniform_float("viewportSize", gpu.state.viewport_get()[2:])
|
||||
shader.uniform_float("lineWidth", 0.5)
|
||||
|
|
Loading…
Reference in New Issue