diff --git a/.gitignore b/.gitignore index 6e28ba25..28fd4fec 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ _build/ /src/*.tss */.vs/ +appdata_/ patches/ resources/ import/ @@ -52,6 +53,7 @@ gamedata/sounds/heart gamedata/sounds/interface gamedata/sounds/intro gamedata/sounds/monsters +gamedata/sounds/material gamedata/sounds/mp_actor gamedata/sounds/music gamedata/sounds/nature diff --git a/gamedata/shaders/r1/skin.h b/gamedata/shaders/r1/skin.h index 62368e09..4ca3abf5 100644 --- a/gamedata/shaders/r1/skin.h +++ b/gamedata/shaders/r1/skin.h @@ -49,7 +49,7 @@ struct v_model_skinned_4 // 28 bytes ////////////////////////////////////////////////////////////////////////////////////////// -float4 u_position (float4 v) { return float4(v.xyz*(12.f / 32768.f), 1.f); } // -12..+12 +float4 u_position (float4 v) { return float4(v.xyz, 1.f); } // -12..+12 ////////////////////////////////////////////////////////////////////////////////////////// //uniform float4 sbones_array [256-22] : register(vs,c22); @@ -85,7 +85,7 @@ v_model skinning_0 (v_model_skinned_0 v) o.norm = unpack_normal(v.N); o.T = unpack_normal(v.T); o.B = unpack_normal(v.B); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; #ifdef SKIN_COLOR o.rgb_tint = float3 (0,0,2); #endif @@ -105,7 +105,7 @@ v_model skinning_1 (v_model_skinned_1 v) o.norm = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; #ifdef SKIN_COLOR o.rgb_tint = float3 (0,2,0); #endif @@ -135,7 +135,7 @@ v_model skinning_2 (v_model_skinned_2 v) o.norm = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; #ifdef SKIN_COLOR o.rgb_tint = float3 (2,0,0) ; if (id_0==id_1) o.rgb_tint = float3(1,2,0); @@ -157,7 +157,7 @@ v_model skinning_2lq (v_model_skinned_2 v) o.norm = skinning_dir (v.N, m0,m1,m2 ); o.T = skinning_dir (v.T, m0,m1,m2 ); o.B = skinning_dir (v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; #ifdef SKIN_COLOR o.rgb_tint = float3 (0,2,0) ; #endif @@ -202,7 +202,7 @@ v_model skinning_3 (v_model_skinned_3 v) o.norm = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; #ifdef SKIN_COLOR o.rgb_tint = float3 (2,0,0) ; if (id_0==id_1) o.rgb_tint = float3(1,2,0); @@ -251,7 +251,7 @@ v_model skinning_4 (v_model_skinned_4 v) o.norm = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; #ifdef SKIN_COLOR o.rgb_tint = float3 (2,0,0) ; if (id_0==id_1) o.rgb_tint = float3(1,2,0); diff --git a/gamedata/shaders/r2/skin.h b/gamedata/shaders/r2/skin.h index c8224d5e..ea62882d 100644 --- a/gamedata/shaders/r2/skin.h +++ b/gamedata/shaders/r2/skin.h @@ -5,10 +5,10 @@ struct v_model_skinned_0 { - float4 P : POSITION; // (float,float,float,1) - quantized // short4 - float3 N : NORMAL; // normal // DWORD - float3 T : TANGENT; // tangent // DWORD - float3 B : BINORMAL; // binormal // DWORD + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float3 N : NORMAL; // normal // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD float2 tc : TEXCOORD0; // (u,v) // short2 }; struct v_model_skinned_1 // 24 bytes @@ -67,7 +67,7 @@ float3 skinning_dir (float3 dir, float3 m0, float3 m1, float3 m2) } float4 skinning_pos (float4 pos, float4 m0, float4 m1, float4 m2) { - float4 P = float4(pos.xyz*(12.f / 32768.f), 1.f); // -12..+12 + float4 P = float4(pos.xyz, 1.f); //--#SM+#-- return float4 ( dot (m0, P), @@ -81,11 +81,11 @@ v_model skinning_0 (v_model_skinned_0 v) { // skinning v_model o; - o.P = float4(v.P.xyz*(12.f / 32768.f), 1.f); // -12..+12 + o.P = float4(v.P.xyz, 1.f); //--#SM+#-- o.N = unpack_normal(v.N); o.T = unpack_normal(v.T); o.B = unpack_normal(v.B); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; //--#SM+#-- return o; } v_model skinning_1 (v_model_skinned_1 v) @@ -102,7 +102,7 @@ v_model skinning_1 (v_model_skinned_1 v) o.N = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; //--#SM+#-- return o; } v_model skinning_2 (v_model_skinned_2 v) @@ -129,7 +129,7 @@ v_model skinning_2 (v_model_skinned_2 v) o.N = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; //--#SM+#-- return o; } v_model skinning_3 (v_model_skinned_3 v) @@ -170,7 +170,7 @@ v_model skinning_3 (v_model_skinned_3 v) o.N = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; //--#SM+#-- #ifdef SKIN_COLOR o.rgb_tint = float3 (2,0,0) ; if (id_0==id_1) o.rgb_tint = float3(1,2,0); @@ -213,7 +213,7 @@ v_model skinning_4 (v_model_skinned_4 v) o.N = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; //--#SM+#-- return o; } diff --git a/gamedata/shaders/r3/model_scope_lense.ps b/gamedata/shaders/r3/model_scope_lense.ps new file mode 100644 index 00000000..b5299588 Binary files /dev/null and b/gamedata/shaders/r3/model_scope_lense.ps differ diff --git a/gamedata/shaders/r3/skin.h b/gamedata/shaders/r3/skin.h index c5da6812..985c1db3 100644 --- a/gamedata/shaders/r3/skin.h +++ b/gamedata/shaders/r3/skin.h @@ -2,54 +2,54 @@ #define SKIN_H #include "common.h" - +//RoH & SM+ struct v_model_skinned_0 { - int4 P : POSITION; // (float,float,float,1) - quantized // short4 - float3 N : NORMAL; // normal // DWORD - float3 T : TANGENT; // tangent // DWORD - float3 B : BINORMAL; // binormal // DWORD - int2 tc : TEXCOORD0;// (u,v) // short2 + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float3 N : NORMAL; // normal // DWORD + float3 T : TANGENT; // tangent // DWORD + float3 B : BINORMAL; // binormal // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 }; struct v_model_skinned_1 // 24 bytes { - int4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 P : POSITION; // (float,float,float,1) - quantized // short4 float4 N : NORMAL; // (nx,ny,nz,index) // DWORD float3 T : TANGENT; // tangent // DWORD float3 B : BINORMAL; // binormal // DWORD - int2 tc : TEXCOORD0;// (u,v) // short2 + float2 tc : TEXCOORD0; // (u,v) // short2 }; struct v_model_skinned_2 // 28 bytes { - int4 P : POSITION; // (float,float,float,1) - quantized // short4 - float4 N : NORMAL; // (nx,ny,nz,weight) // DWORD + float4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 N : NORMAL; // (nx,ny,nz,weight) // DWORD float3 T : TANGENT; // tangent // DWORD float3 B : BINORMAL; // binormal // DWORD - int4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 + float4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 }; struct v_model_skinned_3 // 28 bytes { - int4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 P : POSITION; // (float,float,float,1) - quantized // short4 float4 N : NORMAL; // (nx,ny,nz,weight0) // DWORD float4 T : TANGENT; // (tx,ty,tz,weight1) // DWORD float4 B : BINORMAL; // (bx,by,bz,m-index2) // DWORD - int4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 + float4 tc : TEXCOORD0; // (u,v, w=m-index0, z=m-index1) // short4 }; struct v_model_skinned_4 // 28 bytes { - int4 P : POSITION; // (float,float,float,1) - quantized // short4 + float4 P : POSITION; // (float,float,float,1) - quantized // short4 float4 N : NORMAL; // (nx,ny,nz,weight0) // DWORD float4 T : TANGENT; // (tx,ty,tz,weight1) // DWORD float4 B : BINORMAL; // (bx,by,bz,weight2) // DWORD - int2 tc : TEXCOORD0;// (u,v) // short2 - float4 ind : TEXCOORD1;// (x=m-index0, y=m-index1, z=m-index2, w=m-index3) // DWORD + float2 tc : TEXCOORD0; // (u,v) // short2 + float4 ind: TEXCOORD1; // (x=m-index0, y=m-index1, z=m-index2, w=m-index3) // DWORD }; ////////////////////////////////////////////////////////////////////////////////////////// -float4 u_position (float4 v) { return float4(v.xyz*(12.f / 32768.f), 1.f); } // -12..+12 +float4 u_position (float4 v) { return float4(v.xyz, 1.f); } // -12..+12 ////////////////////////////////////////////////////////////////////////////////////////// //uniform float4 sbones_array [256-22] : register(vs,c22); @@ -70,7 +70,7 @@ float3 skinning_dir (float3 dir, float3 m0, float3 m1, float3 m2) } float4 skinning_pos (float4 pos, float4 m0, float4 m1, float4 m2) { - float4 P = float4(pos.xyz*(12.f / 32768.f), 1.f); // -12..+12 + float4 P = u_position (pos); return float4 ( dot (m0, P), @@ -89,11 +89,11 @@ v_model skinning_0 (v_model_skinned_0 v) // skinning v_model o; - o.P = float4(v.P.xyz*(12.f / 32768.f), 1.f); // -12..+12 + o.P = u_position (v.P); o.N = unpack_normal(v.N); o.T = unpack_normal(v.T); o.B = unpack_normal(v.B); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; return o; } v_model skinning_1 (v_model_skinned_1 v) @@ -115,7 +115,7 @@ v_model skinning_1 (v_model_skinned_1 v) o.N = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; return o; } v_model skinning_2 (v_model_skinned_2 v) @@ -147,7 +147,7 @@ v_model skinning_2 (v_model_skinned_2 v) o.N = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; return o; } v_model skinning_3 (v_model_skinned_3 v) @@ -193,7 +193,7 @@ v_model skinning_3 (v_model_skinned_3 v) o.N = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; #ifdef SKIN_COLOR o.rgb_tint = float3 (2,0,0) ; if (id_0==id_1) o.rgb_tint = float3(1,2,0); @@ -245,7 +245,7 @@ v_model skinning_4 (v_model_skinned_4 v) o.N = skinning_dir(v.N, m0,m1,m2 ); o.T = skinning_dir(v.T, m0,m1,m2 ); o.B = skinning_dir(v.B, m0,m1,m2 ); - o.tc = v.tc *(16.f / 32768.f); // -16..+16 + o.tc = v.tc; return o; }