|
@@ -192,11 +192,13 @@ class Skin extends MultiMaterial {
|
|
skinShader.MaxBones = maxBones;
|
|
skinShader.MaxBones = maxBones;
|
|
for( m in materials )
|
|
for( m in materials )
|
|
if( m != null ) {
|
|
if( m != null ) {
|
|
- if( m.normalMap != null )
|
|
|
|
|
|
+ var s = m.mainPass.getShader(h3d.shader.SkinTangent);
|
|
|
|
+ if ( s != null )
|
|
|
|
+ m.mainPass.removeShader(s);
|
|
|
|
+ if( m.normalMap != null ) {
|
|
@:privateAccess m.mainPass.addShaderAtIndex(skinShader, m.mainPass.getShaderIndex(m.normalShader) + 1);
|
|
@:privateAccess m.mainPass.addShaderAtIndex(skinShader, m.mainPass.getShaderIndex(m.normalShader) + 1);
|
|
- else {
|
|
|
|
- if ( m.mainPass.getShader(h3d.shader.SkinTangent) == null )
|
|
|
|
- m.mainPass.addShader(skinShader);
|
|
|
|
|
|
+ } else {
|
|
|
|
+ m.mainPass.addShader(skinShader);
|
|
}
|
|
}
|
|
if( skinData.splitJoints != null ) m.mainPass.dynamicParameters = true;
|
|
if( skinData.splitJoints != null ) m.mainPass.dynamicParameters = true;
|
|
}
|
|
}
|