Пример #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RenderMesh" /> class.
        /// </summary>
        /// <param name="renderModel">The render model.</param>
        /// <param name="mesh">The mesh data.</param>
        /// <exception cref="System.ArgumentNullException">mesh</exception>
        public RenderMesh(RenderModel renderModel, Mesh mesh)
        {
            if (renderModel == null)
            {
                throw new ArgumentNullException("renderModel");
            }
            if (mesh == null)
            {
                throw new ArgumentNullException("mesh");
            }
            RenderModel                  = renderModel;
            Mesh                         = mesh;
            Enabled                      = true;
            parameterCollections         = new FastListStruct <ParameterCollection>(8);
            previousParameterCollections = new FastListStruct <ParameterCollection>(8);

            UpdateMaterial();

            // A RenderMesh is inheriting values from Mesh.Parameters
            // We are considering that Mesh.Parameters is not updated frequently (should be almost immutable)
            parameters = new ParameterCollection();
            if (mesh.Parameters != null)
            {
                parameters.AddSources(mesh.Parameters);
            }
        }
Пример #2
0
        public ShadowMap(DirectionalLight light)
        {
            Light = light;

            Parameters = new ParameterCollection("ShadowMap parameters");

            // Inherits light parameters (to have its color and direction or viewproj matrix).
            Parameters.AddSources(light.Parameters);

            CasterParameters = new ParameterCollection("ShadowMap Caster Parameters");
            CasterParameters.AddSources(Parameters);
            ShadowDistance = 1000.0f;
            ShadowMapSize  = 512;
        }