Beispiel #1
0
        /// <summary>
        /// Function to update the light data in the lighting shader.
        /// </summary>
        /// <param name="light">The light to retrieve data from.</param>
        private void UpdateLight(Gorgon2DLight light)
        {
            var lightData = new PointLightData
            {
                Position       = new DX.Vector4(new DX.Vector3(light.Position.X, light.Position.Y, -light.Position.Z), 1.0f),
                Color          = light.Color,
                LightDirection = new DX.Vector4(new DX.Vector3(light.LightDirection.X, light.LightDirection.Y, -light.LightDirection.Z), 0),
                LightAttribs   = new DX.Vector4(light.SpecularPower, light.Attenuation, light.Intensity, light.SpecularEnabled ? 1 : 0),
                LightType      = (int)light.LightType
            };

            _lightData.Buffer.SetData(ref lightData);
        }
Beispiel #2
0
    private void ParseScenePointLights()
    {
        Transform pointLights = GameObject.Find("SceneLights/PointLights").GetComponent <Transform>();

        foreach (Transform pointLight in pointLights)
        {
            PointLightData newPointLightData = new PointLightData();
            Light          light             = pointLight.GetComponent <Light>();

            newPointLightData._Position  = pointLight.position;
            newPointLightData._Intensity = light.intensity * new Vector3(
                light.color.r,
                light.color.g,
                light.color.b
                ) / 255;
            _SceneData._PointLightCount++;
            _SceneData._PointLightDatas.Add(newPointLightData);
        }
    }