Advertisement
AniCator

%y-%mo

Dec 20th, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. VS_OUTPUT main( const VS_INPUT Input )
  2. {
  3.     VS_OUTPUT Output;
  4.  
  5.     float3 worldPos;
  6.     float3 worldNormal;
  7.  
  8. #if MODEL
  9.     float4 vPos = Input.vPos;
  10.     float3 vNormal = 0;
  11.  
  12.     DecompressVertex_Normal(Input.vNormal, vNormal);
  13.  
  14. #if ( !defined( SHADER_MODEL_VS_3_0 ) || !MORPHING )
  15.     {
  16.         ApplyMorph( Input.vPosFlex, vPos.xyz );
  17.     }
  18. #else
  19.         {
  20.             ApplyMorph(morphSampler, cMorphTargetTextureDim, cMorphSubrect, Input.vVertexID, float3(0, 0, 0), vPos.xyz);
  21.         }
  22. #endif
  23.  
  24.     SkinPositionAndNormal(g_bSkinning, vPos, vNormal,
  25.         Input.vBoneWeights, Input.vBoneIndices,
  26.         worldPos, worldNormal);
  27.  
  28.     //worldNormal = normalize(worldNormal);
  29. #else
  30.    
  31.     worldPos = mul( float4( Input.vPos, 1 ), cModel[0] );
  32.     worldNormal = mul( Input.vNormal, ( float3x3 )cModel[0] );
  33. #endif
  34.    
  35.     // Assign output values
  36.     Output.vProjPos = mul( float4( worldPos, 1 ), cViewProj );
  37.     Output.vTexCoord.xy = Input.vTexCoord_0;
  38.    
  39.     Output.worldNormal_Depth.xyz = worldNormal;
  40.     Output.worldNormal_Depth.w = Output.vProjPos.z / g_flDepthRange;
  41.    
  42.     return Output;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement