DirectXTK12/Src/Shaders/Structures.fxh

266 строки
5.1 KiB
HLSL

// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// http://go.microsoft.com/fwlink/?LinkId=248929
// http://create.msdn.com/en-US/education/catalog/sample/stock_effects
// Vertex shader input structures.
struct VSInput
{
float4 Position : SV_Position;
};
struct VSInputVc
{
float4 Position : SV_Position;
float4 Color : COLOR;
};
struct VSInputTx
{
float4 Position : SV_Position;
float2 TexCoord : TEXCOORD0;
};
struct VSInputTxVc
{
float4 Position : SV_Position;
float2 TexCoord : TEXCOORD0;
float4 Color : COLOR;
};
struct VSInputNm
{
float4 Position : SV_Position;
float3 Normal : NORMAL;
};
struct VSInputNmVc
{
float4 Position : SV_Position;
float3 Normal : NORMAL;
float4 Color : COLOR;
};
struct VSInputNmTx
{
float4 Position : SV_Position;
float3 Normal : NORMAL;
float2 TexCoord : TEXCOORD0;
};
struct VSInputNmTxVc
{
float4 Position : SV_Position;
float3 Normal : NORMAL;
float2 TexCoord : TEXCOORD0;
float4 Color : COLOR;
};
struct VSInputNmTxTangent
{
float4 Position : SV_Position;
float3 Normal : NORMAL;
float4 Tangent : TANGENT;
float2 TexCoord : TEXCOORD0;
};
struct VSInputNmTxVcTangent
{
float4 Position : SV_Position;
float3 Normal : NORMAL;
float4 Tangent : TANGENT;
float2 TexCoord : TEXCOORD0;
float4 Color : COLOR;
};
struct VSInputTx2
{
float4 Position : SV_Position;
float2 TexCoord : TEXCOORD0;
float2 TexCoord2 : TEXCOORD1;
};
struct VSInputTx2Vc
{
float4 Position : SV_Position;
float2 TexCoord : TEXCOORD0;
float2 TexCoord2 : TEXCOORD1;
float4 Color : COLOR;
};
struct VSInputNmTxWeights
{
float4 Position : SV_Position;
float3 Normal : NORMAL;
float2 TexCoord : TEXCOORD0;
uint4 Indices : BLENDINDICES0;
float4 Weights : BLENDWEIGHT0;
};
// Vertex shader output structures.
struct VSOutput
{
float4 Diffuse : COLOR0;
float4 Specular : COLOR1;
float4 PositionPS : SV_Position;
};
struct VSOutputNoFog
{
float4 Diffuse : COLOR0;
float4 PositionPS : SV_Position;
};
struct VSOutputTx
{
float4 Diffuse : COLOR0;
float4 Specular : COLOR1;
float2 TexCoord : TEXCOORD0;
float4 PositionPS : SV_Position;
};
struct VSOutputTxNoFog
{
float4 Diffuse : COLOR0;
float2 TexCoord : TEXCOORD0;
float4 PositionPS : SV_Position;
};
struct VSOutputPixelLighting
{
float4 PositionWS : TEXCOORD0;
float3 NormalWS : TEXCOORD1;
float4 Diffuse : COLOR0;
float4 PositionPS : SV_Position;
};
struct VSOutputPixelLightingTx
{
float2 TexCoord : TEXCOORD0;
float4 PositionWS : TEXCOORD1;
float3 NormalWS : TEXCOORD2;
float4 Diffuse : COLOR0;
float4 PositionPS : SV_Position;
};
struct VSOutputPixelLightingTxTangent
{
float2 TexCoord : TEXCOORD0;
float4 PositionWS : TEXCOORD1;
float3 NormalWS : TEXCOORD2;
float3 TangentWS : TEXCOORD3;
float4 Diffuse : COLOR0;
float4 PositionPS : SV_Position;
};
struct VSOutputTx2
{
float4 Diffuse : COLOR0;
float4 Specular : COLOR1;
float2 TexCoord : TEXCOORD0;
float2 TexCoord2 : TEXCOORD1;
float4 PositionPS : SV_Position;
};
struct VSOutputTx2NoFog
{
float4 Diffuse : COLOR0;
float2 TexCoord : TEXCOORD0;
float2 TexCoord2 : TEXCOORD1;
float4 PositionPS : SV_Position;
};
struct VSOutputTxEnvMap
{
float4 Diffuse : COLOR0;
float4 Specular : COLOR1;
float2 TexCoord : TEXCOORD0;
float3 EnvCoord : TEXCOORD1;
float4 PositionPS : SV_Position;
};
// Pixel shader input structures.
struct PSInput
{
float4 Diffuse : COLOR0;
float4 Specular : COLOR1;
};
struct PSInputNoFog
{
float4 Diffuse : COLOR0;
};
struct PSInputTx
{
float4 Diffuse : COLOR0;
float4 Specular : COLOR1;
float2 TexCoord : TEXCOORD0;
};
struct PSInputTxNoFog
{
float4 Diffuse : COLOR0;
float2 TexCoord : TEXCOORD0;
};
struct PSInputPixelLighting
{
float4 PositionWS : TEXCOORD0;
float3 NormalWS : TEXCOORD1;
float4 Diffuse : COLOR0;
};
struct PSInputPixelLightingTx
{
float2 TexCoord : TEXCOORD0;
float4 PositionWS : TEXCOORD1;
float3 NormalWS : TEXCOORD2;
float4 Diffuse : COLOR0;
};
struct PSInputPixelLightingTxTangent
{
float2 TexCoord : TEXCOORD0;
float4 PositionWS : TEXCOORD1;
float3 NormalWS : TEXCOORD2;
float3 TangentWS : TEXCOORD3;
float4 Diffuse : COLOR0;
};
struct PSInputTx2
{
float4 Diffuse : COLOR0;
float4 Specular : COLOR1;
float2 TexCoord : TEXCOORD0;
float2 TexCoord2 : TEXCOORD1;
};
struct PSInputTx2NoFog
{
float4 Diffuse : COLOR0;
float2 TexCoord : TEXCOORD0;
float2 TexCoord2 : TEXCOORD1;
};
struct PSInputTxEnvMap
{
float4 Diffuse : COLOR0;
float4 Specular : COLOR1;
float2 TexCoord : TEXCOORD0;
float3 EnvCoord : TEXCOORD1;
};