Merge pull request #2101 from MoritzBrueckner/fix-skinning-normals

Fix normals export of skinned materials
This commit is contained in:
Lubos Lenco 2021-02-03 18:28:53 +01:00 committed by GitHub
commit f0d7effb7c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 1 additions and 3 deletions

View file

@ -37,7 +37,6 @@ def write_norpos(con_mesh: shader.ShaderContext, vert: shader.Shader, declare=Fa
prep = ''
if declare:
prep = 'vec3 '
vert.write_pre = True
is_bone = con_mesh.is_elem('bone')
if is_bone:
make_skin.skin_pos(vert)
@ -48,4 +47,3 @@ def write_norpos(con_mesh: shader.ShaderContext, vert: shader.Shader, declare=Fa
vert.write_attrib(prep + 'wnormal = normalize(N * vec3(nor.xy, pos.w));')
if con_mesh.is_elem('ipos'):
make_inst.inst_pos(con_mesh, vert)
vert.write_pre = False

View file

@ -17,4 +17,4 @@ def skin_pos(vert):
def skin_nor(vert, prep):
rpdat = arm.utils.get_rp()
vert.write(prep + 'wnormal = normalize(N * (vec3(nor.xy, pos.w) + 2.0 * cross(skinA.xyz, cross(skinA.xyz, vec3(nor.xy, pos.w)) + skinA.w * vec3(nor.xy, pos.w))));')
vert.write_attrib(prep + 'wnormal = normalize(N * (vec3(nor.xy, pos.w) + 2.0 * cross(skinA.xyz, cross(skinA.xyz, vec3(nor.xy, pos.w)) + skinA.w * vec3(nor.xy, pos.w))));')