10 using SiliconStudio.Core;
11 using SiliconStudio.Paradox.Effects;
12 using SiliconStudio.Paradox.Graphics;
13 using SiliconStudio.Paradox.Shaders;
14 using SiliconStudio.Core.Mathematics;
18 #line 3 "D:\Code\Paradox\sources\shaders\DefaultForwardEffect.pdxfx"
19 using SiliconStudio.Paradox.Effects.Data;
22 using SiliconStudio.Paradox.Effects.Modules;
25 using SiliconStudio.Paradox.Engine;
28 using SiliconStudio.Paradox.DataModel;
31 namespace DefaultForward
35 internal static partial class ShaderMixins
47 context.Mixin(mixin,
"ShadingDiffusePerPixel");
57 context.Mixin(mixin,
"ShadingDiffusePerVertex");
67 context.Mixin(mixin,
"ShadingDiffuseSpecularPerPixel");
77 context.Mixin(mixin,
"ShadingDiffusePerVertexSpecularPerPixel");
82 internal static void __Initialize__()
85 ShaderMixinManager.Register(
"ParadoxLightingTypeShader",
new ParadoxLightingTypeShader());
91 internal static partial class ShaderMixins
99 mixin.Mixin.AddMacro(
"LIGHTING_MAX_LIGHT_COUNT", context.GetParam(LightingKeys.MaxPointLights));
102 context.Mixin(mixin,
"ParadoxLightingTypeShader");
105 context.Mixin(mixin,
"PointShading");
108 context.Mixin(mixin,
"ShadingEyeNormalVS");
112 internal static void __Initialize__()
115 ShaderMixinManager.Register(
"ParadoxPointLightsShader",
new ParadoxPointLightsShader());
121 internal static partial class ShaderMixins
129 mixin.Mixin.AddMacro(
"LIGHTING_MAX_LIGHT_COUNT", context.GetParam(LightingKeys.MaxSpotLights));
132 context.Mixin(mixin,
"ParadoxLightingTypeShader");
135 context.Mixin(mixin,
"SpotShading");
138 context.Mixin(mixin,
"ShadingEyeNormalVS");
142 internal static void __Initialize__()
145 ShaderMixinManager.Register(
"ParadoxSpotLightsShader",
new ParadoxSpotLightsShader());
151 internal static partial class ShaderMixins
159 mixin.Mixin.AddMacro(
"LIGHTING_MAX_LIGHT_COUNT", context.GetParam(LightingKeys.MaxDirectionalLights));
162 context.Mixin(mixin,
"ParadoxLightingTypeShader");
165 context.Mixin(mixin,
"DirectionalShading");
168 context.Mixin(mixin,
"ShadingEyeNormalVS");
172 internal static void __Initialize__()
175 ShaderMixinManager.Register(
"ParadoxDirectionalLightsShader",
new ParadoxDirectionalLightsShader());
181 internal static partial class ShaderMixins
189 mixin.Mixin.AddMacro(
"LIGHTING_MAX_LIGHT_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));
192 context.Mixin(mixin,
"ParadoxLightingTypeShader");
195 context.Mixin(mixin,
"ShadingPerPixelShadow");
198 context.Mixin(mixin,
"DirectionalShading");
201 context.Mixin(mixin,
"ShadingEyeNormalVS");
204 context.Mixin(mixin,
"ForwardShadowMapBase");
207 context.Mixin(mixin,
"ShadowMapCascadeBase");
210 mixin.Mixin.AddMacro(
"SHADOWMAP_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));
213 mixin.Mixin.AddMacro(
"SHADOWMAP_CASCADE_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));
222 context.
Mixin(mixin,
"ShadowMapFilterDefault");
230 context.
Mixin(mixin,
"ShadowMapFilterPcf");
238 context.
Mixin(mixin,
"ShadowMapFilterVsm");
242 internal static void __Initialize__()
245 ShaderMixinManager.Register(
"ParadoxDirectionalShadowLightsShader",
new ParadoxDirectionalShadowLightsShader());
251 internal static partial class ShaderMixins
259 mixin.Mixin.AddMacro(
"LIGHTING_MAX_LIGHT_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));
262 context.Mixin(mixin,
"ParadoxLightingTypeShader");
265 context.Mixin(mixin,
"ShadingPerPixelShadow");
268 context.Mixin(mixin,
"SpotShading");
271 context.Mixin(mixin,
"ShadingEyeNormalVS");
274 context.Mixin(mixin,
"ForwardShadowMapBase");
277 context.Mixin(mixin,
"ShadowMapCascadeBase");
280 mixin.Mixin.AddMacro(
"SHADOWMAP_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCount));
283 mixin.Mixin.AddMacro(
"SHADOWMAP_CASCADE_COUNT", context.GetParam(ShadowMapParameters.ShadowMapCascadeCount));
292 context.
Mixin(mixin,
"ShadowMapFilterDefault");
300 context.
Mixin(mixin,
"ShadowMapFilterPcf");
308 context.
Mixin(mixin,
"ShadowMapFilterVsm");
312 internal static void __Initialize__()
315 ShaderMixinManager.Register(
"ParadoxSpotShadowLightsShader",
new ParadoxSpotShadowLightsShader());
321 internal static partial class ShaderMixins
329 context.Mixin(mixin,
"BRDFDiffuseBase");
332 context.Mixin(mixin,
"BRDFSpecularBase");
339 context.Mixin(mixin,
"AlbedoDiffuseBase");
347 context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse));
348 mixin.Mixin.AddComposition(
"albedoDiffuse", __subMixin.Mixin);
360 context.Mixin(mixin,
"GroupShadingBase");
371 context.Mixin(__subMixin,
"ParadoxDirectionalLightsShader");
372 mixin.Mixin.AddCompositionToArray(
"ShadingGroups", __subMixin.Mixin);
384 context.Mixin(__subMixin,
"ParadoxSpotLightsShader");
385 mixin.Mixin.AddCompositionToArray(
"ShadingGroups", __subMixin.Mixin);
397 context.Mixin(__subMixin,
"ParadoxPointLightsShader");
398 mixin.Mixin.AddCompositionToArray(
"ShadingGroups", __subMixin.Mixin);
407 context.Mixin(mixin,
"ShadowMapReceiver");
415 context.PushParameters(____1);
426 context.Mixin(__subMixin,
"ParadoxDirectionalShadowLightsShader");
427 mixin.Mixin.AddCompositionToArray(
"shadows", __subMixin.Mixin);
441 context.Mixin(__subMixin,
"ParadoxSpotShadowLightsShader");
442 mixin.Mixin.AddCompositionToArray(
"shadows", __subMixin.Mixin);
446 context.PopParameters();
460 context.Mixin(__subMixin,
"ComputeBRDFDiffuseLambert");
461 mixin.Mixin.AddComposition(
"DiffuseLighting", __subMixin.Mixin);
477 context.Mixin(__subMixin,
"ComputeBRDFDiffuseOrenNayar");
478 mixin.Mixin.AddComposition(
"DiffuseLighting", __subMixin.Mixin);
488 context.Mixin(mixin,
"AlbedoFlatShading");
494 internal static void __Initialize__()
497 ShaderMixinManager.Register(
"ParadoxDiffuseForward",
new ParadoxDiffuseForward());
503 internal static partial class ShaderMixins
515 context.Mixin(mixin,
"ComputeBRDFColorSpecularPhong");
525 context.Mixin(mixin,
"ComputeBRDFColorSpecularBlinnPhong");
535 context.Mixin(mixin,
"ComputeBRDFColorSpecularCookTorrance");
543 context.Mixin(mixin,
"SpecularPower");
551 context.Mixin(__subMixin, context.GetParam(MaterialParameters.SpecularPowerMap));
552 mixin.Mixin.AddComposition(
"SpecularPowerMap", __subMixin.Mixin);
566 context.Mixin(__subMixin, context.GetParam(MaterialParameters.SpecularIntensityMap));
567 mixin.Mixin.AddComposition(
"SpecularIntensityMap", __subMixin.Mixin);
573 internal static void __Initialize__()
576 ShaderMixinManager.Register(
"ParadoxSpecularLighting",
new ParadoxSpecularLighting());
582 internal static partial class ShaderMixins
590 context.Mixin(mixin,
"BRDFDiffuseBase");
593 context.Mixin(mixin,
"BRDFSpecularBase");
600 context.Mixin(mixin,
"AlbedoSpecularBase");
608 context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoSpecular));
609 mixin.Mixin.AddComposition(
"albedoSpecular", __subMixin.Mixin);
618 context.Mixin(__subMixin,
"ParadoxSpecularLighting");
619 mixin.Mixin.AddComposition(
"SpecularLighting", __subMixin.Mixin);
625 internal static void __Initialize__()
628 ShaderMixinManager.Register(
"ParadoxSpecularForward",
new ParadoxSpecularForward());
634 internal static partial class ShaderMixins
642 context.Mixin(mixin,
"ParadoxBaseShader");
645 context.Mixin(mixin,
"ParadoxSkinning");
648 context.Mixin(mixin,
"ParadoxShadowCast");
651 context.Mixin(mixin,
"ParadoxDiffuseForward");
654 context.Mixin(mixin,
"ParadoxSpecularForward");
661 context.Mixin(mixin,
"AmbientMapShading");
669 context.Mixin(__subMixin, context.GetParam(MaterialParameters.AmbientMap));
670 mixin.Mixin.AddComposition(
"AmbientMap", __subMixin.Mixin);
679 context.Mixin(mixin,
"TransparentShading");
682 context.Mixin(mixin,
"DiscardTransparentThreshold", context.GetParam(MaterialParameters.AlphaDiscardThreshold));
692 context.Mixin(mixin,
"TransparentShading");
695 context.Mixin(mixin,
"DiscardTransparent");
700 internal static void __Initialize__()
703 ShaderMixinManager.Register(
"ParadoxDefaultForwardShader",
new ParadoxDefaultForwardShader());
static readonly ParameterKey< int > ShadowMapCascadeCount
number of shadow map cascades.
static readonly ParameterKey< LightType > LightType
Filter type of the shadow map.
static ParameterKey< MaterialSpecularModel > SpecularModel
Parameter key for the specular model.
static readonly ParameterKey< ShadowMapFilterType > FilterType
Filter type of the shadow map.
static readonly ParameterKey< ShaderMixinSource > AlbedoDiffuse
Contains a tree of ShaderMixinSource.
A context used when mixin ShaderSource.
static readonly ParameterKey< int > MaxDirectionalLights
Maximum number of directional lights.
static readonly ParameterKey< int > MaxPointLights
Maximum number of point lights.
MaterialDiffuseModel
Diffuse component model.
static readonly ParameterKey< ShadowMapParameters[]> ShadowMaps
List of all the shadow map configurations.
All-in-One Buffer class linked SharpDX.Direct3D11.Buffer.
static readonly ParameterKey< ShaderMixinSource > SpecularIntensityMap
static ParameterKey< MaterialLightingType > LightingType
Parameter key for the lighting type.
static readonly ParameterKey< ShaderMixinSource > AlbedoSpecular
static readonly ParameterKey< int > MaxSpotLights
Maximum number of spot lights.
void Mixin(ShaderMixinSourceTree mixinTree, string name, params object[] genericParameters)
Mixins a ShaderClassSource identified by its name/generic parameters into the specified mixin tree...
static readonly ParameterKey< bool > ReceiveShadows
Flag stating if the mesh receives shadows.
static readonly ParameterKey< ShaderMixinSource > SpecularPowerMap
MaterialSpecularModel
Specular component model.
static readonly ParameterKey< bool > UseTransparent
static readonly ParameterKey< ShaderMixinSource > AmbientMap
Interface to be implemented for dynamic mixin generation.
static ParameterKey< MaterialDiffuseModel > DiffuseModel
Parameter key for the diffuse model.
SiliconStudio.Paradox.Graphics.Buffer Buffer
static readonly ParameterKey< bool > UseTransparentMask