VS.hlsl 839 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
// Simplified PBR HLSL Vertex Shader

cbuffer MVPBuffer : register( b0 )
{
	float4x4 mxWorld;                   //世界矩阵,这里其实是Model->World的转换矩阵
	float4x4 mxView;                    //视矩阵
	float4x4 mxProjection;				//投影矩阵
	float4x4 mxViewProj;                //视矩阵*投影
	float4x4 mxMVP;                     //世界*视矩阵*投影
};

struct PSInput
{
	float4 m_v4PosWVP : SV_POSITION;
	float4 m_v4PosWorld : POSITION;
	float4 m_v4Normal: NORMAL;
	float2 m_v2UV: TEXCOORD;
};

PSInput VSMain( float4 v4LocalPos : POSITION, float4 v4LocalNormal:NORMAL, float2 v2UV : TEXCOORD )
{
	PSInput stOutput;

	stOutput.m_v4PosWVP = mul( v4LocalPos, mxMVP );
	stOutput.m_v4PosWorld = mul( v4LocalPos, mxWorld);
	v4LocalNormal.w = 0.0f;
	stOutput.m_v4Normal = mul( v4LocalNormal, mxWorld);
	stOutput.m_v2UV = v2UV;
	return stOutput;
}