|
@@ -1,25 +1,18 @@
|
|
package h3d.shader;
|
|
package h3d.shader;
|
|
|
|
|
|
-class Skin extends hxsl.Shader {
|
|
|
|
|
|
+class Skin extends SkinBase {
|
|
|
|
|
|
static var SRC = {
|
|
static var SRC = {
|
|
|
|
|
|
@input var input : {
|
|
@input var input : {
|
|
var position : Vec3;
|
|
var position : Vec3;
|
|
var normal : Vec3;
|
|
var normal : Vec3;
|
|
- var tangent : Vec3;
|
|
|
|
var weights : Vec3;
|
|
var weights : Vec3;
|
|
var indexes : Bytes4;
|
|
var indexes : Bytes4;
|
|
};
|
|
};
|
|
|
|
|
|
- var relativePosition : Vec3;
|
|
|
|
- var transformedPosition : Vec3;
|
|
|
|
- var transformedNormal : Vec3;
|
|
|
|
var transformedTangent : Vec4;
|
|
var transformedTangent : Vec4;
|
|
|
|
|
|
- @const var MaxBones : Int;
|
|
|
|
- @ignore @param var bonesMatrixes : Array<Mat3x4,MaxBones>;
|
|
|
|
-
|
|
|
|
function vertex() {
|
|
function vertex() {
|
|
transformedPosition =
|
|
transformedPosition =
|
|
(relativePosition * bonesMatrixes[input.indexes.x]) * input.weights.x +
|
|
(relativePosition * bonesMatrixes[input.indexes.x]) * input.weights.x +
|
|
@@ -29,18 +22,8 @@ class Skin extends hxsl.Shader {
|
|
(input.normal * mat3(bonesMatrixes[input.indexes.x])) * input.weights.x +
|
|
(input.normal * mat3(bonesMatrixes[input.indexes.x])) * input.weights.x +
|
|
(input.normal * mat3(bonesMatrixes[input.indexes.y])) * input.weights.y +
|
|
(input.normal * mat3(bonesMatrixes[input.indexes.y])) * input.weights.y +
|
|
(input.normal * mat3(bonesMatrixes[input.indexes.z])) * input.weights.z);
|
|
(input.normal * mat3(bonesMatrixes[input.indexes.z])) * input.weights.z);
|
|
- transformedTangent = vec4(normalize(
|
|
|
|
- (input.tangent.xyz * mat3(bonesMatrixes[input.indexes.x])) * input.weights.x +
|
|
|
|
- (input.tangent.xyz * mat3(bonesMatrixes[input.indexes.y])) * input.weights.y +
|
|
|
|
- (input.tangent.xyz * mat3(bonesMatrixes[input.indexes.z])) * input.weights.z
|
|
|
|
- ), transformedTangent.w);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public function new() {
|
|
|
|
- super();
|
|
|
|
- MaxBones = 34;
|
|
|
|
- }
|
|
|
|
|
|
+ };
|
|
|
|
|
|
}
|
|
}
|