def init(cls):

        #-------- Environnement:
        cls.couleur_horizon=gs.Color(10./255.,1./255.,5./255.,1.)
        cls.couleur_zenith=gs.Color(70./255.,150./255.,255./255.,1.)
        cls.couleur_ambiante=gs.Color(70./255.,150./255.,255./255.,1.)
        #cls.couleur_ambiante=gs.Color(1,0,0,1)

        #-------- Création de la scène:
        cls.scene3d=scene.new_scene()

        cls.contexte=gs.SceneLoadContext(render.get_render_system())
        #cls.scene3d.Load("scene_terrain_marching/Terrain_Marching.scn",cls.contexte)
        cls.scene3d.Load("scene_01/Gare_test.scn",cls.contexte)
        #----------- Attend que la scène soit accessible:
        scene.update_scene(cls.scene3d,1/60)

        #----------- Prise en main de la scène:
        cls.noeuds=cls.contexte.GetNodes()
        cls.components=cls.scene3d.GetComponents()

        for comp in cls.components:
            if comp.GetAspect()=="Environment":
                cls.environnement=comp
                break

        #----------- Init billboards et shaders:

        cls.init_billboards(cls.noeuds,cls.liste_sprites_scene)
        cls.init_shaders(cls.noeuds)

        #----------- Init environnement:

        cls.environnement.SetBackgroundColor(gs.Color(0.,0.,0.,0))
        cls.environnement.SetFogColor(cls.couleur_zenith)
        cls.environnement.SetFogNear(10)
        cls.environnement.SetFogFar(6000)
        cls.environnement.SetAmbientIntensity(.1)
        cls.environnement.SetAmbientColor(cls.couleur_ambiante)

        cls.camera=cls.scene3d.GetNode("Camera")
        cls.camera.GetCamera().SetZNear(.1)
        cls.camera.GetCamera().SetZFar(10000.)
        cls.camera_start_pos_mem=cls.camera.GetTransform().GetPosition()
        #cls.camera.AddComponent(gs.Target())   #Si la caméra suit une cible

        cls.lumiere_ciel=cls.scene3d.GetNode("clair obscur")
        cls.lumiere_soleil=cls.scene3d.GetNode("soleil")
        cls.lumiere_ciel.GetLight().SetDiffuseColor(gs.Color(77./255.,158./255.,255./255.,1.))
        cls.lumiere_ciel.GetLight().SetDiffuseIntensity(0.2)
        cls.lumiere_soleil.GetLight().SetDiffuseColor(gs.Color(255./255.,250./255.,223./255.,1.))

        cls.lumiere_soleil.GetLight().SetShadow(gs.Light.Shadow_Map)    #Active les ombres portées
        cls.lumiere_soleil.GetLight().SetShadowRange(100)

        cls.lumiere_soleil.GetLight().SetDiffuseIntensity(1.)
        cls.lumiere_soleil.GetLight().SetSpecularIntensity(1.)

        orientation=gs.Vector3(54/180*pi,135/180*pi,0)
        cls.lumiere_ciel.GetTransform().SetRotation(orientation)

        orientation=gs.Vector3(54/180*pi,-45/180*pi,0)
        cls.lumiere_soleil.GetTransform().SetRotation(orientation)

        #cls.lumiere_ciel.GetLight().SetDiffuseIntensity(2.)
        #cls.lumiere_ciel.GetLight().SetSpecularIntensity(2.)



        #-------- Mémorise les intensités lumineuses pour le switch des éclairages:
        noeuds=cls.scene3d.GetNodes()
        for noeud in noeuds:
            if not noeud.GetLight()==None:
                cls.lumieres_intens_mem.append(noeud.GetLight().GetDiffuseIntensity())
                cls.lumieres_intens_mem.append(noeud.GetLight().GetSpecularIntensity())

        #--------Init les variables de shaders:

        #Couleur d'ambiance:
        """
        for noeud in cls.noeuds:
            if not noeud.GetObject()==None:
                obj=noeud.GetObject()
                geo=obj.GetGeometry()
                n=geo.GetMaterialCount()
                i=0
                while i<n:
                    materiau=geo.GetMaterial(i)
                    materiau.SetFloat3("ambient_color",cls.couleur_ambiante.r*0.,cls.couleur_ambiante.g*0.,cls.couleur_ambiante.b*0.)
                    i+=1
        """
        #--------- Init listes des sprites:
        #cls.liste_sprites_scene.append(...)


        #--------- Inits de l'éditeur embarqué
        cls.cube_l_soleil=scene.add_cube(cls.scene3d,gs.Matrix4.Identity,0.5,0.5,2.)
        cls.cube_l_ciel=scene.add_cube(cls.scene3d,gs.Matrix4.Identity,0.5,0.5,2.)

        cls.scene3d.SetCurrentCamera(cls.camera)

        scene.update_scene(cls.scene3d,1/60)

        #------------- Filtres:
        Demo.pr_alpha_rendu=1.
        Demo.pr_alpha_aura=0.
        Demo.pr_taille_aura=50
        Demo.pr_aura_contraste=2
        Demo.pr_aura_seuil_contraste=0.6

        #-------------- Init le shader de rendu de terrain:
        cls.shader_terrain=Demo.rendu.LoadShader("shaders_marching/terrain_marching_montagnes.isl")
        cls.texture_terrain1=Demo.rendu.LoadTexture("textures/bruit_1024.png")
        cls.texture_terrain2=Demo.rendu.LoadTexture("textures/bruit_512.png")
        cls.texture_terrain3=Demo.rendu.LoadTexture("textures/bruit_512.png")

        cls.facteur_echelle_terrain_l1 = gs.Vector2(20000,20000)
        cls.facteur_echelle_terrain_l2 = gs.Vector2(1000,1000)
        cls.facteur_echelle_terrain_l3 = gs.Vector2(90,90)

        cls.amplitude_l1=1000
        cls.amplitude_l2=37
        cls.amplitude_l3=4
        cls.terrain_intensite_ambiante=0.2

        cls.facteur_precision_distance=1.01
        cls.couleur_neige=gs.Color(0.91,0.91,1)
        cls.couleur_eau=gs.Color(117./255.,219./255.,211./255.)
        cls.altitude_eau=15
Esempio n. 2
0
    def init(cls):

        #-------- Environnement:
        cls.couleur_horizon = gs.Color(1., .699, .586)
        cls.couleur_zenith = gs.Color(1., 0.978, 0.407)
        cls.couleur_ambiante = gs.Color(0.19, 0.42, 0.34)
        #cls.couleur_ambiante=gs.Color(0.5,0.5,0.5)

        #-------- Création de la scène:
        cls.scene3d = scene.new_scene()

        cls.contexte = gs.SceneLoadContext(render.get_render_system())
        cls.scene3d.Load("scene_01/Gare_test.scn", cls.contexte)
        #----------- Attend que la scène soit accessible:
        scene.update_scene(cls.scene3d, 1 / 60)

        #----------- Prise en main de la scène:
        cls.noeuds = cls.contexte.GetNodes()
        cls.components = cls.scene3d.GetComponents()

        for comp in cls.components:
            if comp.GetAspect() == "Environment":
                cls.environnement = comp
                break

        #----------- Init billboards et shaders:

        cls.init_billboards(cls.noeuds, cls.liste_sprites_scene)
        cls.init_shaders(cls.noeuds)

        #----------- Init environnement:

        cls.environnement.SetBackgroundColor(cls.couleur_horizon)
        cls.environnement.SetFogColor(cls.couleur_horizon)
        cls.environnement.SetFogNear(1)
        cls.environnement.SetFogFar(100)
        cls.environnement.SetAmbientIntensity(2)
        cls.environnement.SetAmbientColor(cls.couleur_ambiante)

        cls.camera = cls.scene3d.GetNode("Camera")
        cls.camera.GetCamera().SetZNear(.1)
        cls.camera.GetCamera().SetZFar(1000.)
        cls.camera_start_pos_mem = cls.camera.GetTransform().GetPosition()
        #cls.camera.AddComponent(gs.Target())   #Si la caméra suit une cible

        cls.lumiere_clair_obscur = cls.scene3d.GetNode("clair obscur")
        cls.lumiere_soleil = cls.scene3d.GetNode("soleil")

        cls.lumiere_soleil.GetLight().SetShadow(
            gs.Light.Shadow_Map)  #Active les ombres portées
        cls.lumiere_soleil.GetLight().SetShadowRange(100)

        cls.lumiere_soleil.GetLight().SetDiffuseIntensity(1.)
        cls.lumiere_soleil.GetLight().SetSpecularIntensity(1.)

        orientation = gs.Vector3(54 / 180 * pi, 135 / 180 * pi, 0)
        cls.lumiere_clair_obscur.GetTransform().SetRotation(orientation)

        orientation = gs.Vector3(54 / 180 * pi, -45 / 180 * pi, 0)
        cls.lumiere_soleil.GetTransform().SetRotation(orientation)

        #cls.lumiere_clair_obscur.GetLight().SetDiffuseIntensity(2.)
        #cls.lumiere_clair_obscur.GetLight().SetSpecularIntensity(2.)

        #-------- Mémorise les intensités lumineuses pour le switch des éclairages:
        noeuds = cls.scene3d.GetNodes()
        for noeud in noeuds:
            if not noeud.GetLight() == None:
                cls.lumieres_intens_mem.append(
                    noeud.GetLight().GetDiffuseIntensity())
                cls.lumieres_intens_mem.append(
                    noeud.GetLight().GetSpecularIntensity())

        #--------Init les variables de shaders:

        #Couleur d'ambiance:
        """
        for noeud in cls.noeuds:
            if not noeud.GetObject()==None:
                obj=noeud.GetObject()
                geo=obj.GetGeometry()
                n=geo.GetMaterialCount()
                i=0
                while i<n:
                    materiau=geo.GetMaterial(i)
                    materiau.SetFloat3("ambient_color",cls.couleur_ambiante.r*0.,cls.couleur_ambiante.g*0.,cls.couleur_ambiante.b*0.)
                    i+=1
        """
        #--------- Init listes des sprites:
        #cls.liste_sprites_scene.append(...)

        #--------- Inits de l'éditeur embarqué
        cls.cube_l_soleil = scene.add_cube(cls.scene3d, gs.Matrix4.Identity,
                                           0.5, 0.5, 2.)
        cls.cube_l_clair_obscur = scene.add_cube(cls.scene3d,
                                                 gs.Matrix4.Identity, 0.5, 0.5,
                                                 2.)

        cls.scene3d.SetCurrentCamera(cls.camera)

        scene.update_scene(cls.scene3d, 1 / 60)
    def init(cls):

        #-------- Environnement:
        cls.couleur_horizon = gs.Color(10. / 255., 1. / 255., 5. / 255., 1.)
        cls.couleur_zenith = gs.Color(70. / 255., 150. / 255., 255. / 255., 1.)
        cls.couleur_ambiante = gs.Color(70. / 255., 150. / 255., 255. / 255.,
                                        1.)
        #cls.couleur_ambiante=gs.Color(1,0,0,1)

        #-------- Création de la scène:
        cls.scene3d = scene.new_scene()

        cls.contexte = gs.SceneLoadContext(render.get_render_system())
        #cls.scene3d.Load("scene_terrain_marching/Terrain_Marching.scn",cls.contexte)
        cls.scene3d.Load("scene_01/Gare_test.scn", cls.contexte)
        #----------- Attend que la scène soit accessible:
        scene.update_scene(cls.scene3d, 1 / 60)

        #----------- Prise en main de la scène:
        cls.noeuds = cls.contexte.GetNodes()
        cls.components = cls.scene3d.GetComponents()

        for comp in cls.components:
            if comp.GetAspect() == "Environment":
                cls.environnement = comp
                break

        #----------- Init billboards et shaders:

        cls.init_billboards(cls.noeuds, cls.liste_sprites_scene)
        cls.init_shaders(cls.noeuds)

        #----------- Init environnement:

        cls.environnement.SetBackgroundColor(gs.Color(0., 0., 0., 0))
        cls.environnement.SetFogColor(cls.couleur_zenith)
        cls.environnement.SetFogNear(10)
        cls.environnement.SetFogFar(6000)
        cls.environnement.SetAmbientIntensity(.1)
        cls.environnement.SetAmbientColor(cls.couleur_ambiante)

        cls.camera = cls.scene3d.GetNode("Camera")
        cls.camera.GetCamera().SetZNear(.1)
        cls.camera.GetCamera().SetZFar(10000.)
        cls.camera_start_pos_mem = cls.camera.GetTransform().GetPosition()
        #cls.camera.AddComponent(gs.Target())   #Si la caméra suit une cible

        cls.lumiere_ciel = cls.scene3d.GetNode("clair obscur")
        cls.lumiere_soleil = cls.scene3d.GetNode("soleil")
        cls.lumiere_ciel.GetLight().SetDiffuseColor(
            gs.Color(77. / 255., 158. / 255., 255. / 255., 1.))
        cls.lumiere_ciel.GetLight().SetDiffuseIntensity(0.2)
        cls.lumiere_soleil.GetLight().SetDiffuseColor(
            gs.Color(255. / 255., 250. / 255., 223. / 255., 1.))

        cls.lumiere_soleil.GetLight().SetShadow(
            gs.Light.Shadow_Map)  #Active les ombres portées
        cls.lumiere_soleil.GetLight().SetShadowRange(100)

        cls.lumiere_soleil.GetLight().SetDiffuseIntensity(1.)
        cls.lumiere_soleil.GetLight().SetSpecularIntensity(1.)

        orientation = gs.Vector3(54 / 180 * pi, 135 / 180 * pi, 0)
        cls.lumiere_ciel.GetTransform().SetRotation(orientation)

        orientation = gs.Vector3(54 / 180 * pi, -45 / 180 * pi, 0)
        cls.lumiere_soleil.GetTransform().SetRotation(orientation)

        #cls.lumiere_ciel.GetLight().SetDiffuseIntensity(2.)
        #cls.lumiere_ciel.GetLight().SetSpecularIntensity(2.)

        #-------- Mémorise les intensités lumineuses pour le switch des éclairages:
        noeuds = cls.scene3d.GetNodes()
        for noeud in noeuds:
            if not noeud.GetLight() == None:
                cls.lumieres_intens_mem.append(
                    noeud.GetLight().GetDiffuseIntensity())
                cls.lumieres_intens_mem.append(
                    noeud.GetLight().GetSpecularIntensity())

        #--------Init les variables de shaders:

        #Couleur d'ambiance:
        """
        for noeud in cls.noeuds:
            if not noeud.GetObject()==None:
                obj=noeud.GetObject()
                geo=obj.GetGeometry()
                n=geo.GetMaterialCount()
                i=0
                while i<n:
                    materiau=geo.GetMaterial(i)
                    materiau.SetFloat3("ambient_color",cls.couleur_ambiante.r*0.,cls.couleur_ambiante.g*0.,cls.couleur_ambiante.b*0.)
                    i+=1
        """
        #--------- Init listes des sprites:
        #cls.liste_sprites_scene.append(...)

        #--------- Inits de l'éditeur embarqué
        cls.cube_l_soleil = scene.add_cube(cls.scene3d, gs.Matrix4.Identity,
                                           0.5, 0.5, 2.)
        cls.cube_l_ciel = scene.add_cube(cls.scene3d, gs.Matrix4.Identity, 0.5,
                                         0.5, 2.)

        cls.scene3d.SetCurrentCamera(cls.camera)

        scene.update_scene(cls.scene3d, 1 / 60)

        #------------- Filtres:
        Demo.pr_alpha_rendu = 1.
        Demo.pr_alpha_aura = 0.
        Demo.pr_taille_aura = 50
        Demo.pr_aura_contraste = 2
        Demo.pr_aura_seuil_contraste = 0.6

        #-------------- Init le shader de rendu de terrain:
        cls.shader_terrain = Demo.rendu.LoadShader(
            "shaders_marching/terrain_marching_montagnes.isl")
        cls.texture_terrain1 = Demo.rendu.LoadTexture(
            "textures/bruit_1024.png")
        cls.texture_terrain2 = Demo.rendu.LoadTexture("textures/bruit_512.png")
        cls.texture_terrain3 = Demo.rendu.LoadTexture("textures/bruit_512.png")

        cls.facteur_echelle_terrain_l1 = gs.Vector2(20000, 20000)
        cls.facteur_echelle_terrain_l2 = gs.Vector2(1000, 1000)
        cls.facteur_echelle_terrain_l3 = gs.Vector2(90, 90)

        cls.amplitude_l1 = 1000
        cls.amplitude_l2 = 37
        cls.amplitude_l3 = 4
        cls.terrain_intensite_ambiante = 0.2

        cls.facteur_precision_distance = 1.01
        cls.couleur_neige = gs.Color(0.91, 0.91, 1)
        cls.couleur_eau = gs.Color(117. / 255., 219. / 255., 211. / 255.)
        cls.altitude_eau = 15