Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
BasicEffect.cs
Go to the documentation of this file.
1 // <auto-generated>
2 // Do not edit this file yourself!
3 //
4 // This code was generated by Paradox Shader Mixin Code Generator.
5 // To generate it yourself, please install SiliconStudio.Paradox.VisualStudio.Package .vsix
6 // and re-save the associated .pdxfx.
7 // </auto-generated>
8 
9 using System;
10 using SiliconStudio.Core;
11 using SiliconStudio.Paradox.Effects;
12 using SiliconStudio.Paradox.Graphics;
13 using SiliconStudio.Paradox.Shaders;
14 using SiliconStudio.Core.Mathematics;
16 
17 
18 #line 3 "D:\Code\Paradox\sources\engine\SiliconStudio.Paradox.Engine\Effects\BasicEffect.pdxfx"
19 using SiliconStudio.Paradox.Effects.Data;
20 
21 #line 4
22 using SiliconStudio.Paradox.Shaders.Compiler;
23 
24 #line 6
25 namespace SiliconStudio.Paradox.Effects
26 {
27 
28  #line 8
29  internal static partial class ShaderMixins
30  {
31  internal partial class BasicEffect : IShaderMixinBuilder
32  {
33  public void Generate(ShaderMixinSourceTree mixin, ShaderMixinContext context)
34  {
35 
36  #line 15
37  context.Mixin(mixin, "ShaderBase");
38 
39  #line 16
40  context.Mixin(mixin, "TransformationWAndVP");
41 
42  #line 18
43  context.Mixin(mixin, "PositionVSStream");
44 
45  #line 20
46 
47  #line 20
48  var hasNormals = context.GetParam(MaterialParameters.NormalMap) != null;
49 
50  #line 21
51  if (hasNormals)
52  {
53 
54  #line 23
55  context.Mixin(mixin, "NormalMapTexture");
56 
57  {
58 
59  #line 24
60  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
61 
62  #line 24
63  context.Mixin(__subMixin, context.GetParam(MaterialParameters.NormalMap));
64  mixin.Mixin.AddComposition("normalMap", __subMixin.Mixin);
65  }
66  }
67 
68  #line 27
69  else
70  {
71 
72  #line 28
73  context.Mixin(mixin, "NormalVSStream");
74  }
75 
76  #line 31
77  context.Mixin(mixin, "BRDFDiffuseBase");
78 
79  #line 32
80  context.Mixin(mixin, "BRDFSpecularBase");
81 
82  #line 33
83  context.Mixin(mixin, "LightMultiDirectionalShadingPerPixel", 2);
84 
85  #line 34
86  context.Mixin(mixin, "TransparentShading");
87 
88  #line 35
89  context.Mixin(mixin, "DiscardTransparent");
90 
91  #line 37
92  if (context.GetParam(MaterialParameters.AlbedoDiffuse) != null)
93  {
94 
95  {
96 
97  #line 39
98  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
99 
100  #line 39
101  context.Mixin(__subMixin, "ComputeBRDFDiffuseLambert");
102  mixin.Mixin.AddComposition("DiffuseLighting", __subMixin.Mixin);
103  }
104 
105  {
106 
107  #line 40
108  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
109 
110  #line 40
111  context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoDiffuse));
112  mixin.Mixin.AddComposition("albedoDiffuse", __subMixin.Mixin);
113  }
114  }
115 
116  #line 43
117  if (context.GetParam(MaterialParameters.AlbedoSpecular) != null)
118  {
119 
120  {
121 
122  #line 45
123  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
124 
125  #line 45
126  context.Mixin(__subMixin, "ComputeBRDFColorSpecularBlinnPhong");
127  mixin.Mixin.AddComposition("SpecularLighting", __subMixin.Mixin);
128  }
129 
130  {
131 
132  #line 46
133  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
134 
135  #line 46
136  context.Mixin(__subMixin, context.GetParam(MaterialParameters.AlbedoSpecular));
137  mixin.Mixin.AddComposition("albedoSpecular", __subMixin.Mixin);
138  }
139 
140  #line 48
141  if (context.GetParam(MaterialParameters.SpecularPowerMap) != null)
142  {
143 
144  #line 50
145  context.Mixin(mixin, "SpecularPower");
146 
147  {
148 
149  #line 51
150  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
151 
152  #line 51
153  context.Mixin(__subMixin, context.GetParam(MaterialParameters.SpecularPowerMap));
154  mixin.Mixin.AddComposition("SpecularPowerMap", __subMixin.Mixin);
155  }
156  }
157 
158  #line 54
159  if (context.GetParam(MaterialParameters.SpecularIntensityMap) != null)
160  {
161 
162  {
163 
164  #line 56
165  var __subMixin = new ShaderMixinSourceTree() { Parent = mixin };
166 
167  #line 56
168  context.Mixin(__subMixin, context.GetParam(MaterialParameters.SpecularIntensityMap));
169  mixin.Mixin.AddComposition("SpecularIntensityMap", __subMixin.Mixin);
170  }
171  }
172  }
173 
174  #line 60
175  if (context.GetParam(MaterialParameters.HasSkinningPosition))
176  {
177 
178  #line 62
179  if (context.GetParam(MaterialParameters.SkinningBones) > context.GetParam(MaterialParameters.SkinningMaxBones))
180  {
181 
182  #line 65
183  context.SetParam(MaterialParameters.SkinningMaxBones, context.GetParam(MaterialParameters.SkinningBones));
184  }
185 
186  #line 67
187  mixin.Mixin.AddMacro("SkinningMaxBones", context.GetParam(MaterialParameters.SkinningMaxBones));
188 
189  #line 68
190  context.Mixin(mixin, "TransformationSkinning");
191 
192  #line 70
193  if (context.GetParam(MaterialParameters.HasSkinningNormal))
194  {
195 
196  #line 72
197  if (hasNormals)
198 
199  #line 73
200  context.Mixin(mixin, "TangentToViewSkinning");
201 
202  #line 75
203  else
204 
205  #line 75
206  context.Mixin(mixin, "NormalVSSkinning");
207 
208  #line 77
209  context.Mixin(mixin, "NormalSkinning");
210  }
211 
212  #line 80
213  if (context.GetParam(MaterialParameters.HasSkinningTangent))
214 
215  #line 81
216  context.Mixin(mixin, "TangentSkinning");
217  }
218  }
219 
220  [ModuleInitializer]
221  internal static void __Initialize__()
222 
223  {
224  ShaderMixinManager.Register("BasicEffect", new BasicEffect());
225  }
226  }
227  }
228 }
static readonly ParameterKey< ShaderMixinSource > AlbedoDiffuse
static readonly ParameterKey< bool > HasSkinningNormal
A context used when mixin ShaderSource.
static readonly ParameterKey< bool > HasSkinningTangent
static readonly ParameterKey< int > SkinningBones
All-in-One Buffer class linked SharpDX.Direct3D11.Buffer.
SiliconStudio.Paradox.Graphics.Buffer Buffer
Definition: BasicEffect.cs:15
static readonly ParameterKey< ShaderMixinSource > SpecularIntensityMap
static readonly ParameterKey< ShaderMixinSource > AlbedoSpecular
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 > HasSkinningPosition
static readonly ParameterKey< ShaderMixinSource > SpecularPowerMap
Interface to be implemented for dynamic mixin generation.