Paradox Game Engine  v1.0.0 beta06
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros Pages
LightKeys.cs
Go to the documentation of this file.
1 // Copyright (c) 2014 Silicon Studio Corp. (http://siliconstudio.co.jp)
2 // This file is distributed under GPL v3. See LICENSE.md for details.
3 using SiliconStudio.Core.Mathematics;
4 
5 namespace SiliconStudio.Paradox.Effects.Modules
6 {
7  /// <summary>
8  /// Keys used for Lighting plugin.
9  /// </summary>
10  public static class LightKeys
11  {
12  internal static readonly ParameterKey<int> ConfigurationIndex = ParameterKeys.New(-1);
13 
14  /// <summary>
15  /// Diffuse color.
16  /// </summary>
17  public static readonly ParameterKey<Color3> LightColor = ParameterKeys.New(new Color3(1.0f, 1.0f, 1.0f));
18 
19  /// <summary>
20  /// Light radius for point light.
21  /// </summary>
22  public static readonly ParameterKey<float> LightRadius = ParameterKeys.New(50.0f);
23 
24  /// <summary>
25  /// Light intensity..
26  /// </summary>
27  public static readonly ParameterKey<float> LightIntensity = ParameterKeys.New(1.0f);
28 
29  /// <summary>
30  /// Light cutoff for point light.
31  /// </summary>
32  public static readonly ParameterKey<float> LightAttenuationCutoff = ParameterKeys.New(0.1f);
33 
34  /// <summary>
35  /// Light position.
36  /// </summary>
37  public static readonly ParameterKey<Vector3> LightPosition = ParameterKeys.New(Vector3.Zero);
38 
39  /// <summary>
40  /// Light direction.
41  /// </summary>
42  public static readonly ParameterKey<Vector3> LightDirection = ParameterKeys.New(new Vector3(-1.0f, -1.0f, -1.0f));
43 
44  /// <summary>
45  /// Light direction VS.
46  /// </summary>
47  public static readonly ParameterKey<Vector3> LightDirectionVS = ParameterKeys.NewDynamic(ParameterDynamicValue.New<Vector3, Vector3, Matrix>(LightDirection, TransformationKeys.WorldView, LightDirectionVSUpdate));
48 
49  public static void LightDirectionVSUpdate(ref Vector3 lightDirection, ref Matrix viewProj, ref Vector3 lightDirectionVS)
50  {
51  var temp = Vector3.TransformNormal(lightDirection, viewProj);
52  temp.Normalize();
53  lightDirectionVS = temp;
54  }
55  }
56 }
Key of an effect parameter.
Definition: ParameterKey.cs:15
Represents a color in the form of rgb.
Definition: Color3.cs:41
Keys used for Lighting plugin.
Definition: LightKeys.cs:10
static void LightDirectionVSUpdate(ref Vector3 lightDirection, ref Matrix viewProj, ref Vector3 lightDirectionVS)
Definition: LightKeys.cs:49
Represents a three dimensional mathematical vector.
Definition: Vector3.cs:42
SiliconStudio.Core.Mathematics.Vector3 Vector3
Represents a 4x4 mathematical matrix.
Definition: Matrix.cs:47