Skip to content
Snippets Groups Projects
Commit f8cbbfdd authored by D-AIRY's avatar D-AIRY
Browse files

Merge branch 'branchX' of https://dev.ds-servers.com/sip/engine into branchX

parents 074a2345 69ca4f9a
Branches
Tags
No related merge requests found
Showing
with 29 additions and 14 deletions
......@@ -45,10 +45,15 @@ VSO_SceneCommon main(VSI_Geometry IN
// OUT.vPosition = float4(IN.vPosition, 1.0f);
OUT.vNormal = RotateVec(qRot, IN.vNormal);
OUT.vTangent = RotateVec(qRot, IN.vTangent);
OUT.vBinormal = RotateVec(qRot, IN.vBinormal);
// OUT.vNormal = IN.vNormal;
#else
OUT.vPosition = mul(float4(IN.vPosition, 1.0f), g_mW);
OUT.vNormal = mul(IN.vNormal, (float3x3)g_mW);
OUT.vNormal = /*normalize(*/mul(IN.vNormal, (float3x3)g_mW)/*)*/;
OUT.vTangent = /*normalize(*/mul(IN.vTangent, (float3x3)g_mW)/*)*/;
OUT.vBinormal = /*normalize(*/mul(IN.vBinormal, (float3x3)g_mW)/*)*/;
#endif
......
......@@ -26,9 +26,9 @@ XMaterial MainGBuffer(PSI_XMaterial IN)
#endif
#ifdef HAS_NORMALMAP
OUT.vNormal = MixNormalMicro(IN.vNormal,
Color2Normal(g_txNormals.Sample(g_sScene, IN.vTexUV).xyz) * g_xMaterialConstants.nm_weight
);
float3 vNormalMap = Color2Normal(g_txNormals.Sample(g_sScene, IN.vTexUV).xyz) * g_xMaterialConstants.nm_weight;
OUT.vNormal = MixNormalMicro(vNormalMap, IN.vTangent, IN.vBinormal, IN.vNormal);
//OUT.vNormal = normalize((IN.vNormal + float3(vNormalMap.xy,IN.vNormal.z)));
#else
OUT.vNormal = IN.vNormal;
#endif
......@@ -58,9 +58,8 @@ XMaterial MainIllimination(PSI_XMaterial IN)
OUT.vEmissiveColor = fColor.xyz * fColor.w * g_xMaterialConstants.em_multiplier;
#ifdef HAS_NORMALMAP
OUT.vNormal = MixNormalMicro(IN.vNormal,
Color2Normal(g_txNormals.Sample(g_sScene, IN.vTexUV).xyz) * g_xMaterialConstants.nm_weight
);
float3 vNormalMap = Color2Normal(g_txNormals.Sample(g_sScene, IN.vTexUV).xyz) * g_xMaterialConstants.nm_weight;
OUT.vNormal = MixNormalMicro(vNormalMap, IN.vTangent, IN.vBinormal, IN.vNormal);
#else
OUT.vNormal = IN.vNormal;
#endif
......
......@@ -84,7 +84,9 @@ XMaterial MainGBuffer(PSI_XMaterial IN)
OUT.fThickness = vParams.z;
OUT.fAO = vParams.w;
OUT.vNormal = MixNormalMicro(IN.vNormal, vNormal);
//OUT.vNormal = MixNormalMicro(IN.vNormal, vNormal);
OUT.vNormal = MixNormalMicro(vNormal, IN.vTangent, IN.vBinormal, IN.vNormal);
//OUT.vNormal = normalize((IN.vNormal + float3(vNormal.xy,IN.vNormal.z)));
OUT.f0 = 0.004;
......
......@@ -13,9 +13,9 @@ XMaterial MainTransparency(PSI_XMaterial IN)
#ifdef HAS_NORMALMAP
float3 vNormal = Color2Normal(g_txNormals.Sample(g_sScene, IN.vTexUV).xyz) * g_xMaterialConstants.nm_weight;
OUT.vNormal = MixNormalMicro(IN.vNormal, vNormal);
//OUT.vNormal = MixNormalMicro(IN.vNormal, vNormal);
// float2 vDuDv = vNormal.xy;
OUT.vNormal = MixNormalMicro(vNormal, IN.vTangent, IN.vBinormal, IN.vNormal);
#ifdef HAS_REFRACTION
// float2 vDuDv = OUT.vNormal.xy;
......@@ -84,9 +84,8 @@ XMaterial MainIllimination(PSI_XMaterial IN)
OUT.vEmissiveColor = fColor.xyz;
#ifdef HAS_NORMALMAP
OUT.vNormal = MixNormalMicro(IN.vNormal,
Color2Normal(g_txNormals.Sample(g_sScene, IN.vTexUV).xyz) * g_xMaterialConstants.nm_weight
);
float3 vNormalMap = Color2Normal(g_txNormals.Sample(g_sScene, IN.vTexUV).xyz) * g_xMaterialConstants.nm_weight;
OUT.vNormal = MixNormalMicro(vNormalMap, IN.vTangent, IN.vBinormal, IN.vNormal);
#else
OUT.vNormal = IN.vNormal;
#endif
......
......@@ -192,9 +192,15 @@ float GetLerpFactorDetail(float fDistance)
}
//! смешивание макронормали (модели) с микронормалью (из normal map)
float3 MixNormalMicro(float3 vMacroNormal, float3 vMicroNormal)
/*float3 MixNormalMicro(float3 vMacroNormal, float3 vMicroNormal)
{
return normalize((vMacroNormal + float3(vMicroNormal.xy,vMacroNormal.z)));
}*/
float3 MixNormalMicro(float3 vNormalMap, float3 vTangent, float3 vBinormal, float3 vNormal)
{
float3x3 mTBN = float3x3(vTangent, vBinormal, vNormal);
return normalize(mul(vNormalMap, mTBN));
}
//! смешивание 2 детальных текстур по маске, где r канал маски для первой детальной текстуры, а g для второй
......
......@@ -68,6 +68,8 @@ struct VSI_Geometry
float3 vPosition :POSITION0;
float2 vTexUV :TEXCOORD0;
float3 vNormal :NORMAL0;
float3 vTangent : TANGENT0;
float3 vBinormal : BINORMAL0;
};
......@@ -112,6 +114,8 @@ struct VSO_SceneCommon
float2 vTexUV :TEXCOORD0;
float3 vNormal :TEXCOORD1;
float4 vPos :TEXCOORD2;
float3 vTangent :TEXCOORD3;
float3 vBinormal :TEXCOORD4;
};
struct GSO_SceneShadows
......
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment