Esempio n. 1
0
        private void SyncLightMeshList(List <LightMesh> list, float trackValue)
        {
            float listIntensity = DivideToPages(1.0f, 0, trackValue);
            float valuePerItem  = (1.0f / list.Count);

            for (int i = 0; i < list.Count; i++)
            {
                LightMesh lm        = list[i];
                float     itemValue = DivideToItems(valuePerItem, i, listIntensity);
                lm.activeRadius = lm.sphereRadius * itemValue;
                lm.light.SetAttenuation(lm.fullRange * itemValue);
                lm.mesh.Transform.Scale = lm.sphereRadius * itemValue;
            }
        }
Esempio n. 2
0
        void LoadLightMeshList(TunableManager tm, AssetManager assetManager, TransformComponent parentTransform, string lightArrayName, int amount, ShaderProgram shader, ref List <LightMesh> list)
        {
            for (int ml = 0; ml < amount; ml++)
            {
                LightMesh lm      = new LightMesh();
                string    lightId = lightArrayName + "." + (ml + 1);

                lm.sphereRadius = tm.GetFloat(lightId + "_size");
                Vector3 position = tm.GetVec3(lightId + "_pos") + parentTransform.GetWorldPosition();
                lm.mesh = assetManager.CreateMesh(lightId
                                                  , MeshDataGenerator.CreateCubeMesh(new Vector3(lm.sphereRadius), false, false)
                                                  , "default"
                                                  , shader
                                                  , position);
                // lm.mesh.Transform.Parent = parentTransform;

                lm.fullRange = tm.GetFloat(lightId + "_range");
                Vector3 color = tm.GetVec3(lightId + "_color");
                lm.light = Light.CreatePointLight(color, lm.fullRange, position);

                list.Add(lm);
            }
        }