2
2
#define SKIN_H
3
3
4
4
#include "common.h"
5
-
5
+ //RoH & SM+
6
6
struct v_model_skinned_0
7
7
{
8
8
float4 P ; // POSITION; // (float,float,float,1) - quantized // short4
@@ -49,7 +49,7 @@ struct v_model_skinned_4 // 28 bytes
49
49
50
50
//////////////////////////////////////////////////////////////////////////////////////////
51
51
52
- float4 u_position (float4 v ) { return float4 (v .xyz * ( 12.f / 32768.f ) , 1.f ); } // -12..+12
52
+ float4 u_position (float4 v ) { return float4 (v .xyz , 1.f ); } // -12..+12 //--#SM+#--
53
53
54
54
//////////////////////////////////////////////////////////////////////////////////////////
55
55
//uniform float4 sbones_array [256-22] : register(vs,c22);
@@ -70,7 +70,7 @@ float3 skinning_dir (float3 dir, float4 m0, float4 m1, float4 m2)
70
70
}
71
71
float4 skinning_pos (float4 pos , float4 m0 , float4 m1 , float4 m2 )
72
72
{
73
- float4 P = float4 (pos . xyz * ( 12.f / 32768.f ), 1.f ); // -12..+12
73
+ float4 P = u_position (pos ); // -12..+12 //--#SM+#--
74
74
return float4
75
75
(
76
76
dot (m0 , P ),
@@ -89,11 +89,11 @@ v_model skinning_0 (v_model_skinned_0 v)
89
89
90
90
// skinning
91
91
v_model o ;
92
- o .P = float4 (v .P . xyz * ( 12.f / 32768.f ), 1.f ); // -12..+12
92
+ o .P = u_position (v .P ); // -12..+12 //--#SM+#--
93
93
o .N = unpack_normal (v .N );
94
94
o .T = unpack_normal (v .T );
95
95
o .B = unpack_normal (v .B );
96
- o .tc = v .tc * ( 16.f / 32768.f ); // -16..+16
96
+ o .tc = v .tc ; // -16..+16 //--#SM+#--
97
97
return o ;
98
98
}
99
99
v_model skinning_1 (v_model_skinned_1 v )
@@ -115,7 +115,7 @@ v_model skinning_1 (v_model_skinned_1 v)
115
115
o .N = skinning_dir (v .N .xyz , m0 ,m1 ,m2 );
116
116
o .T = skinning_dir (v .T .xyz , m0 ,m1 ,m2 );
117
117
o .B = skinning_dir (v .B .xyz , m0 ,m1 ,m2 );
118
- o .tc = v .tc * ( 16.f / 32768.f ) ; // -16..+16
118
+ o .tc = v .tc ; // -16..+16 //--#SM+#--
119
119
return o ;
120
120
}
121
121
v_model skinning_2 (v_model_skinned_2 v )
@@ -147,7 +147,7 @@ v_model skinning_2 (v_model_skinned_2 v)
147
147
o .N = skinning_dir (v .N .xyz , m0 ,m1 ,m2 );
148
148
o .T = skinning_dir (v .T .xyz , m0 ,m1 ,m2 );
149
149
o .B = skinning_dir (v .B .xyz , m0 ,m1 ,m2 );
150
- o .tc = v .tc .xy * ( 16.f / 32768.f ) ; // -16..+16
150
+ o .tc = v .tc .xy ; // -16..+16 //--#SM+#--
151
151
return o ;
152
152
}
153
153
v_model skinning_3 (v_model_skinned_3 v )
@@ -193,7 +193,7 @@ v_model skinning_3 (v_model_skinned_3 v)
193
193
o .N = skinning_dir (v .N .xyz , m0 ,m1 ,m2 );
194
194
o .T = skinning_dir (v .T .xyz , m0 ,m1 ,m2 );
195
195
o .B = skinning_dir (v .B .xyz , m0 ,m1 ,m2 );
196
- o .tc = v .tc .xy * ( 16.f / 32768.f ) ; // -16..+16
196
+ o .tc = v .tc .xy ; // -16..+16 //--#SM+#--
197
197
#ifdef SKIN_COLOR
198
198
o .rgb_tint = float3 (2 ,0 ,0 ) ;
199
199
if (id_0 == id_1 ) o .rgb_tint = float3 (1 ,2 ,0 );
@@ -244,9 +244,9 @@ v_model skinning_4 (v_model_skinned_4 v)
244
244
o .N = skinning_dir (v .N .xyz , m0 ,m1 ,m2 );
245
245
o .T = skinning_dir (v .T .xyz , m0 ,m1 ,m2 );
246
246
o .B = skinning_dir (v .B .xyz , m0 ,m1 ,m2 );
247
- o .tc = v .tc * ( 16.f / 32768.f ) ; // -16..+16
247
+ o .tc = v .tc ; // -16..+16 //--#SM+#--
248
248
249
249
return o ;
250
250
}
251
251
252
- #endif
252
+ #endif
0 commit comments