コード例 #1
0
        public IslandScene(IContentLoader contentLoader, DeferredRenderer renderer)
        {
            this.contentLoader     = contentLoader;
            pointLightList         = GetPointLights();
            ambientColor           = new Vector4(0.1f, 0.10f, 0.074f, 1);
            entityList             = GetGeometry(renderer);
            directionalLight       = new DirectionalLight(new Vector4(1f, 0.968f, 0.878f, 1), new Vector3(0.1f, -0.5f, 1f), 1f, new Vector4(1, 1, 1, 1), 255, 0f);
            directionalLightCamera = new FirstPersonCamera(new Vector3(0, 5f, 5f), 25, 180, Camera.ProjectionType.Orthographic, fov: 1f, width: 100, height: 100, zPlaneNear: 0.1f, zPlaneFar: 700);

            ITexture2D     particleText = contentLoader.Load <ITexture2D>("smoke.jpg");
            ParticleSystem system       = new ParticleSystem(renderer, contentLoader);

            //system.SetMaxParticles(1);
            system.GetDeferredRenderable().SetAlbedoTexture(particleText);
            system.GetDeferredRenderable().SetAlphaMap(particleText);
            system.GetShadowRenderable().SetAlbedoTexture(particleText);
            system.GetShadowRenderable().SetAlphaMap(particleText);
            system.transform.position  = new Vector3(-7.288709f, 12f, 5.872631f);
            system.spawnIntervallRange = new Range(0.5f, 0.5f);
            system.lifeTimeRange       = new Range(8, 10);
            system.spawnArea           = new Range3D(Vector3.Zero); //new Range3D(new Vector3(-0.5f, 0, -0.5f), new Vector3(0.5f, 0, 0.5f));
            system.spawnAcceleration   = new Range3D(new Vector3(0, 1.5f, 0), new Vector3(0, 2f, 0));
            system.spawnScale          = new Range3D(new Vector3(3f, 3f, 3f), new Vector3(5f, 5f, 5));
            PModuleAddScale scaleModule = new PModuleAddScale(1f);

            system.AddParticleGlobalModule(scaleModule);
            PModuleApplyWind windModule = new PModuleApplyWind(2f, new Vector3(0, 0.3f, 1f), 2);

            system.AddPerParticleModule(windModule);
            AddParticleSystem(system);
        }