modify normals calculation in skinning for morphing
This commit is contained in:
parent
26a0fb8c5a
commit
2f77c5b060
|
@ -22,6 +22,9 @@ def skin_pos(vert):
|
|||
vert.write_attrib('spos.xyz /= posUnpack;')
|
||||
|
||||
|
||||
def skin_nor(vert, prep):
|
||||
def skin_nor(vert, is_morph, prep):
|
||||
rpdat = arm.utils.get_rp()
|
||||
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))));')
|
||||
if(is_morph):
|
||||
vert.write_attrib(prep + 'wnormal = normalize(N * morphNor + 2.0 * cross(skinA.xyz, cross(skinA.xyz, morphNor) + skinA.w * morphNor)));')
|
||||
else:
|
||||
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))));')
|
||||
|
|
Loading…
Reference in New Issue