Esempio n. 1
0
    def restart(cls, id_point_depart=1):
        cls.signal = Scene_base.SIG_RIEN
        cls.raz_temps()
        if id_point_depart == 1:
            cls.raz_camera()

        elif id_point_depart == 2:
            pass

        scene.update_scene(cls.scene3d, 1. / 60.)
    def restart(cls,id_point_depart=1):
        cls.signal=Scene_base.SIG_RIEN
        cls.raz_temps()
        if id_point_depart==1:
            cls.raz_camera()

        elif id_point_depart==2:
            pass


        scene.update_scene(cls.scene3d,1./60.)
Esempio n. 3
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)
Esempio n. 4
0
def render_mask_screen():
    mask_segment_list = wireframe_json_to_segment_list(
        "@assets/exxos_mask.json")

    scn = scene.new_scene()

    while not scn.IsReady():
        scene.update_scene(scn, 0.0)

    # Add an environment to the scene
    env = gs.Environment()
    env.SetBackgroundColor(gs.Color.Black)
    scn.AddComponent(env)

    # Add a camera
    render_camera = gs.Node()
    render_camera.AddComponent(gs.Transform())
    render_camera.AddComponent(gs.Camera())
    scn.AddNode(render_camera)
    scn.SetCurrentCamera(render_camera)
    render_camera.GetTransform().SetPosition(gs.Vector3(0, 0, -50))

    # Create a (parent) node to rotate the mask
    master_node = gs.Node()
    master_node.AddComponent(gs.Transform())
    scn.AddNode(master_node)

    # Init the starfield
    starfield.init_stars()
    starfield.set_camera_velocity(gs.Vector3(0, 0, -50))

    segment_nodes_list = []
    for seg in mask_segment_list:
        node_a, node_b = gs.Node(), gs.Node()
        tr_a, tr_b = gs.Transform(), gs.Transform()
        tr_a.SetPosition(gs.Vector3(seg[0][0], seg[0][1], seg[0][2]))
        tr_b.SetPosition(gs.Vector3(seg[1][0], seg[1][1], seg[1][2]))
        tr_a.SetParent(master_node)
        tr_b.SetParent(master_node)
        node_a.AddComponent(tr_a)
        node_b.AddComponent(tr_b)
        scn.AddNode(node_a)
        scn.AddNode(node_b)
        segment_nodes_list.append([node_a, node_b])

    seq_duration = 20.0
    fx_timer = 0.0
    while fx_timer < seq_duration:

        render.clear()
        dt_sec = clock.update()

        master_node.GetTransform().SetRotation(
            master_node.GetTransform().GetRotation() +
            gs.Vector3(1, 1, 1) * dt_sec * 0.25)
        scene.update_scene(scn, dt_sec)

        # render.commit_3d()
        # render.set_depth_write3d(False)

        starfield.update_stars(dt_sec)
        starfield.draw_stars(render)

        for seg in segment_nodes_list:
            pos_a = seg[0].GetTransform().GetWorld().GetTranslation()
            pos_b = seg[1].GetTransform().GetWorld().GetTranslation()
            render.line3d(pos_a.x,
                          pos_a.y,
                          pos_a.z,
                          pos_b.x,
                          pos_b.y,
                          pos_b.z,
                          start_color=gs.Color.Blue,
                          end_color=gs.Color.Blue)

        render.flip()

        fx_timer += dt_sec
                                                     length, 2)
        rigid_body.ApplyLinearImpulse(world.GetY() * -5)
        node_list.append(new_cube)

        world = gs.Matrix4.TransformationMatrix(make_solid_pos(-1.25, 58),
                                                gs.Vector3())
        new_cube, rigid_body = scene.add_physic_cube(scn, world, width, height,
                                                     length, 2)
        rigid_body.ApplyLinearImpulse(world.GetY() * -5)
        node_list.append(new_cube)

        thrown_bullet = True

    # fps.update_and_apply_to_node(cam, dt_sec)

    scene.update_scene(scn, dt_sec)

    if not record_motion and dt_sum > 2.0:
        record_motion = True
    else:
        if record_motion and dt_sum > 8.0:
            record_motion = False
            record_done = True

    if record_motion:
        new_frame = []
        for current_node in node_list:
            new_motion = {
                'position':
                current_node.GetTransform().GetPosition() * scale_factor,
                'rotation': current_node.GetTransform().GetRotation()
        world = gs.Matrix4.TransformationMatrix(make_solid_pos(-0.65, 55), gs.Vector3())
        new_cube, rigid_body = scene.add_physic_cube(scn, world, width, height, length, 2)
        rigid_body.ApplyLinearImpulse(world.GetY() * -5)
        node_list.append(new_cube)

        world = gs.Matrix4.TransformationMatrix(make_solid_pos(-1.25, 58), gs.Vector3())
        new_cube, rigid_body = scene.add_physic_cube(scn, world, width, height, length, 2)
        rigid_body.ApplyLinearImpulse(world.GetY() * -5)
        node_list.append(new_cube)

        thrown_bullet = True

        # fps.update_and_apply_to_node(cam, dt_sec)

    scene.update_scene(scn, dt_sec)

    if not record_motion and dt_sum > 2.0:
        record_motion = True
    else:
        if record_motion and dt_sum > 8.0:
            record_motion = False
            record_done = True

    if record_motion:
        new_frame = []
        for current_node in node_list:
            new_motion = {
                "position": current_node.GetTransform().GetPosition() * scale_factor,
                "rotation": current_node.GetTransform().GetRotation(),
            }
Esempio n. 7
0
Demo.init()
Demo.signal_scene=Scene_base.SIG_RIEN

# -----------Init des scènes:
Scene_01.init()
Scene_Terrain_Marching.init()

Demo.Scene_actuelle=Scene_Terrain_Marching

# ----------- Positionnement initial:

active_scene_actuelle()
Demo.Scene_actuelle.restart()

scene.update_scene(Demo.Scene_actuelle.scene3d, 1 / 60)

# ============================================================================================================================
#                                                   BOUCLE PRINCIPALE
# ============================================================================================================================


Demo.depart_demo() #C'est bon, tout est prêt, Le Temps 0 de la demo commence ici...



while render.has_output_window() and not input.key_down(gs.InputDevice.KeyEscape):
    # ---- Mise à jour timing:
    Demo.horloge.Update()
    Demo.temps = Demo.horloge.Get().to_sec()
    Demo.delta_t = Demo.horloge.GetDelta().to_sec()
    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
    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. 10
0
Demo.init()
Demo.signal_scene = Scene_base.SIG_RIEN

# -----------Init des scènes:
Scene_01.init()
Scene_Terrain_Marching.init()

Demo.Scene_actuelle = Scene_Terrain_Marching

# ----------- Positionnement initial:

active_scene_actuelle()
Demo.Scene_actuelle.restart()

scene.update_scene(Demo.Scene_actuelle.scene3d, 1 / 60)

# ============================================================================================================================
#                                                   BOUCLE PRINCIPALE
# ============================================================================================================================

Demo.depart_demo(
)  #C'est bon, tout est prêt, Le Temps 0 de la demo commence ici...

while render.has_output_window() and not input.key_down(
        gs.InputDevice.KeyEscape):
    # ---- Mise à jour timing:
    Demo.horloge.Update()
    Demo.temps = Demo.horloge.Get().to_sec()
    Demo.delta_t = Demo.horloge.GetDelta().to_sec()
    Demo.numero_frame += 1
def update():
	global dt_sec
	dt_sec = clock.update()
	scene.update_scene(scn, dt_sec)
	if input.key_press(gs.InputDevice.KeyEnter):
		globals.current_scene = level_game