diff --git a/blender/arm/exporter.py b/blender/arm/exporter.py index 3fa8393f..03fbf73a 100755 --- a/blender/arm/exporter.py +++ b/blender/arm/exporter.py @@ -1166,9 +1166,13 @@ class ArmoryExporter: # Scale for packed coords maxdim = max(bobject.data.arm_aabb[0], max(bobject.data.arm_aabb[1], bobject.data.arm_aabb[2])) - o['scale_pos'] = maxdim / 2 + if maxdim > 2: + o['scale_pos'] = maxdim / 2 + else: + o['scale_pos'] = 1.0 if has_armature: # Allow up to 2x bigger bounds for skinned mesh o['scale_pos'] *= 2.0 + scale_pos = o['scale_pos'] invscale_pos = (1 / scale_pos) * 32767 diff --git a/blender/arm/material/cycles.py b/blender/arm/material/cycles.py index e90737dd..1d42b38c 100644 --- a/blender/arm/material/cycles.py +++ b/blender/arm/material/cycles.py @@ -103,7 +103,7 @@ def parse_output(node, _con, _vert, _frag, _geom, _tesc, _tese, _parse_surface, else: curshader = vert out_disp = parse_displacement_input(node.inputs[2]) - curshader.write('float disp = {0};'.format(out_disp)) + curshader.write('vec3 disp = {0};'.format(out_disp)) def parse_group(node, socket): # Entering group index = socket_index(node, socket) diff --git a/blender/arm/material/make_depth.py b/blender/arm/material/make_depth.py index 18e69964..f61afc28 100644 --- a/blender/arm/material/make_depth.py +++ b/blender/arm/material/make_depth.py @@ -47,7 +47,7 @@ def make(context_id, rpasses, shadowmap=False): if is_disp: if rpdat.arm_rp_displacement == 'Vertex': vert.add_uniform('mat3 N', '_normalMatrix') - vert.write('vec3 wnormal = normalize(N * nor);') + vert.write('vec3 wnormal = normalize(N * vec3(nor.xy, pos.w));') cycles.parse(mat_state.nodes, con_depth, vert, frag, geom, tesc, tese, parse_surface=False, parse_opacity=parse_opacity) if con_depth.is_elem('tex'): vert.add_out('vec2 texCoord') ## vs only, remove out