예제 #1
0
        //---------------------------------------------------------------
        #endregion
        //---------------------------------------------------------------

        //---------------------------------------------------------------
        #region Methods
        //---------------------------------------------------------------
        /// <summary>
        /// Binds a shader constant to the light.
        /// </summary>
        /// <param name="constant">The constant to bind to the light.</param>
        public override void Bind(IShaderConstant constant)
        {
            base.Bind(constant);
            if (constant.Children.Contains("Position"))
            {
                constant.Children["Position"].UpdateHandler += new UpdateHandler(UpdateObjectSpacePosition);
            }
        }
예제 #2
0
        //---------------------------------------------------------------
        #endregion
        //---------------------------------------------------------------

        //---------------------------------------------------------------
        #region Initialisation
        //---------------------------------------------------------------
        //---------------------------------------------------------------
        #endregion
        //---------------------------------------------------------------

        //---------------------------------------------------------------
        #region Methods
        //---------------------------------------------------------------
        /// <summary>
        /// Binds a shader constant to the light.
        /// </summary>
        /// <param name="constant">The constant to bind to the light.</param>
        public virtual void Bind(IShaderConstant constant)
        {
            if (constant.Children.Contains("Ambient"))
            {
                constant.Children["Ambient"].Set(AmbientVector);
            }
            if (constant.Children.Contains("Diffuse"))
            {
                constant.Children["Diffuse"].Set(DiffuseVector);
            }
        }
예제 #3
0
        //---------------------------------------------------------------
        #endregion
        //---------------------------------------------------------------

        //---------------------------------------------------------------
        #region Initialisation
        //---------------------------------------------------------------
        //---------------------------------------------------------------
        #endregion
        //---------------------------------------------------------------

        //---------------------------------------------------------------
        #region Methods
        //---------------------------------------------------------------
        /// <summary>
        /// Fills a shaderConstant with the material.
        /// </summary>
        /// <param name="constant">The constant that takes the material.</param>
        public virtual void Fill(IShaderConstant constant)
        {
            if (constant.Children.Contains("Ambient"))
            {
                constant.Children["Ambient"].Set(AmbientVector);
            }
            if (constant.Children.Contains("Diffuse"))
            {
                constant.Children["Diffuse"].Set(DiffuseVector);
            }
            if (constant.Children.Contains("Emissive"))
            {
                constant.Children["Emissive"].Set(EmissiveVector);
            }
            if (constant.Children.Contains("Specular"))
            {
                constant.Children["Specular"].Set(SpecularVector);
            }
            if (constant.Children.Contains("SpecularSharpness"))
            {
                constant.Children["SpecularSharpness"].Set(SpecularSharpness);
            }
        }
예제 #4
0
 /// <summary>
 /// Adds a new shader constant to the list.
 /// </summary>
 /// <param name="constant">The ShaderConstant object to add.</param>
 public void Add(IShaderConstant constant)
 {
     table.Add(constant.Name, constant);
 }
예제 #5
0
        //---------------------------------------------------------------
        #endregion
        //---------------------------------------------------------------

        //---------------------------------------------------------------
        #region Initialisation
        //---------------------------------------------------------------
        /// <summary>
        /// Creates a new ShaderConstantWrapper.
        /// </summary>
        /// <param name="constant">The constant to wrap.</param>
        /// <param name="mappingObject">The object that is used for mapping it to the constant table on the cpu or to a native shader parameter.</param>
        public ShaderConstantWrapper(IShaderConstant constant, object mappingObject)
        {
            this.internalConstant = constant;
            this.mappingObject    = mappingObject;
        }