Fix displacement compile

This commit is contained in:
unknown 2018-12-30 00:01:34 +01:00
parent e760a781fd
commit 6a5c9cc10a
3 changed files with 7 additions and 3 deletions

View file

@ -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

View file

@ -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)

View file

@ -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