def affiche_rendu_shaders(cls):
        window_size=Demo.rendu.GetDefaultOutputWindow().GetSize()
        Demo.rendu.SetViewport(gs.fRect(0, 0, window_size.x, window_size.y))  # fit viewport to window dimensions
        Demo.rendu.Clear(gs.Color(0.,0.,0.,0.))
        Demo.rendu.EnableBlending(False)
        Demo.rendu.SetShader(cls.shader_terrain)
        Demo.rendu.SetShaderTexture("texture_terrain", cls.texture_terrain1)
        Demo.rendu.SetShaderTexture("texture_terrain2", cls.texture_terrain2)
        Demo.rendu.SetShaderTexture("texture_terrain3", cls.texture_terrain3)
        Demo.rendu.SetShaderFloat("ratio_ecran",window_size.y/window_size.x)
        Demo.rendu.SetShaderFloat("distanceFocale",Demo.calcul_distance_focale(cls.camera)) #cls.camera.GetCamera().GetZoomFactor()/2.)
        cam=cls.camera.GetTransform()
        camPos=cam.GetPosition()
        Demo.rendu.SetShaderFloat3("obs_pos",camPos.x,camPos.y,camPos.z)
        Demo.rendu.SetShaderMatrix3("obs_mat_normale",cam.GetWorld().GetRotationMatrix())
        Demo.rendu.SetShaderFloat2("facteur_echelle_terrain",1./cls.facteur_echelle_terrain_l1.x,1./cls.facteur_echelle_terrain_l1.y)
        Demo.rendu.SetShaderFloat2("facteur_echelle_terrain2",1./cls.facteur_echelle_terrain_l2.x,1./cls.facteur_echelle_terrain_l2.y)
        Demo.rendu.SetShaderFloat2("facteur_echelle_terrain3",1./cls.facteur_echelle_terrain_l3.x,1./cls.facteur_echelle_terrain_l3.y)
        Demo.rendu.SetShaderFloat("amplitude_terrain",cls.amplitude_l1)
        Demo.rendu.SetShaderFloat("amplitude_terrain2",cls.amplitude_l2)
        Demo.rendu.SetShaderFloat("amplitude_terrain3",cls.amplitude_l3)
        Demo.rendu.SetShaderFloat("facteur_precision_distance",cls.facteur_precision_distance)
        Demo.rendu.SetShaderFloat("altitude_eau",cls.altitude_eau)
        Demo.rendu.SetShaderFloat("intensite_ambiante",cls.terrain_intensite_ambiante)
        Demo.rendu.SetShaderFloat3("couleur_zenith",cls.couleur_zenith.r,cls.couleur_zenith.g,cls.couleur_zenith.b)
        Demo.rendu.SetShaderFloat3("couleur_horizon",cls.couleur_horizon.r,cls.couleur_horizon.g,cls.couleur_horizon.b)
        Demo.rendu.SetShaderFloat3("couleur_neige",cls.couleur_neige.r,cls.couleur_neige.g,cls.couleur_neige.b)
        Demo.rendu.SetShaderFloat3("couleur_eau",cls.couleur_eau.r,cls.couleur_eau.g,cls.couleur_eau.b)

        l_dir=cls.lumiere_soleil.GetTransform().GetWorld().GetRotationMatrix().GetZ()
        Demo.drapeau_erreur=True
        Demo.message_erreur={"x:"+str(l_dir.x),"y:"+str(l_dir.y),"z:"+str(l_dir.z)}
        Demo.rendu.SetShaderFloat3("l1_direction",l_dir.x,l_dir.y,l_dir.z)
        l_couleur=cls.lumiere_soleil.GetLight().GetDiffuseColor()
        Demo.rendu.SetShaderFloat3("l1_couleur",l_couleur.r,l_couleur.g,l_couleur.b)

        l_dir=cls.lumiere_ciel.GetTransform().GetWorld().GetRotationMatrix().GetZ()
        Demo.rendu.SetShaderFloat3("l2_direction",l_dir.x,l_dir.y,l_dir.z)
        l_couleur=cls.lumiere_ciel.GetLight().GetDiffuseColor()*cls.lumiere_ciel.GetLight().GetDiffuseIntensity()
        Demo.rendu.SetShaderFloat3("l2_couleur",l_couleur.r,l_couleur.g,l_couleur.b)

        Demo.rendu.SetShaderFloat2("zFrustum",cls.camera.GetCamera().GetZNear(),cls.camera.GetCamera().GetZFar())

        Demo.affiche_texture_rendu()
        pass
def affiche_donnees_camera(la_camera,xPos,c=gs.Color.White):
    yPos=850
    e=16
    cam=la_camera.GetCamera()
    render.text2d(xPos,yPos,"Caméra: "+la_camera.GetName(),16, c)
    render.text2d(xPos,yPos-2*e,"Zoom: "+str(round(cam.GetZoomFactor(),3)),16, c)
    Fov=gs.ZoomFactorToFov(cam.GetZoomFactor())
    render.text2d(xPos,yPos-3*e,"Fov: "+str(round(Fov/pi*180,3)),16, c)

    distanceFocale=Demo.calcul_distance_focale(la_camera)
    render.text2d(xPos,yPos-4*e,"Distance focale: "+str(round(distanceFocale,3)),16, c)
    render.text2d(xPos,yPos-5*e,"Z near: "+str(round(cam.GetZNear(),3)),16,c)
    render.text2d(xPos,yPos-6*e,"Z far: "+str(round(cam.GetZFar(),3)),16, c)
    affiche_matrice(la_camera.GetTransform(),xPos,yPos-8*e,c)
Example #3
0
# ================================================================
#               Départ programme
# ================================================================

# -----------Initialisation du système de fichiers:

gs.GetFilesystem().Mount(gs.StdFileDriver())  # Racine du projet
gs.GetFilesystem().Mount(gs.StdFileDriver("pkg.core"), "@core")  # Resources du runtime


# ------------Inits des moteurs de rendu:

render.init(1600, 900,"@core", 1)   #x,y, main path, antialiasing (1 à 8)

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)
    def affiche_rendu_shaders(cls):
        window_size = Demo.rendu.GetDefaultOutputWindow().GetSize()
        Demo.rendu.SetViewport(
            gs.fRect(0, 0, window_size.x,
                     window_size.y))  # fit viewport to window dimensions
        Demo.rendu.Clear(gs.Color(0., 0., 0., 0.))
        Demo.rendu.EnableBlending(False)
        Demo.rendu.SetShader(cls.shader_terrain)
        Demo.rendu.SetShaderTexture("texture_terrain", cls.texture_terrain1)
        Demo.rendu.SetShaderTexture("texture_terrain2", cls.texture_terrain2)
        Demo.rendu.SetShaderTexture("texture_terrain3", cls.texture_terrain3)
        Demo.rendu.SetShaderFloat("ratio_ecran", window_size.y / window_size.x)
        Demo.rendu.SetShaderFloat(
            "distanceFocale", Demo.calcul_distance_focale(
                cls.camera))  #cls.camera.GetCamera().GetZoomFactor()/2.)
        cam = cls.camera.GetTransform()
        camPos = cam.GetPosition()
        Demo.rendu.SetShaderFloat3("obs_pos", camPos.x, camPos.y, camPos.z)
        Demo.rendu.SetShaderMatrix3("obs_mat_normale",
                                    cam.GetWorld().GetRotationMatrix())
        Demo.rendu.SetShaderFloat2("facteur_echelle_terrain",
                                   1. / cls.facteur_echelle_terrain_l1.x,
                                   1. / cls.facteur_echelle_terrain_l1.y)
        Demo.rendu.SetShaderFloat2("facteur_echelle_terrain2",
                                   1. / cls.facteur_echelle_terrain_l2.x,
                                   1. / cls.facteur_echelle_terrain_l2.y)
        Demo.rendu.SetShaderFloat2("facteur_echelle_terrain3",
                                   1. / cls.facteur_echelle_terrain_l3.x,
                                   1. / cls.facteur_echelle_terrain_l3.y)
        Demo.rendu.SetShaderFloat("amplitude_terrain", cls.amplitude_l1)
        Demo.rendu.SetShaderFloat("amplitude_terrain2", cls.amplitude_l2)
        Demo.rendu.SetShaderFloat("amplitude_terrain3", cls.amplitude_l3)
        Demo.rendu.SetShaderFloat("facteur_precision_distance",
                                  cls.facteur_precision_distance)
        Demo.rendu.SetShaderFloat("altitude_eau", cls.altitude_eau)
        Demo.rendu.SetShaderFloat("intensite_ambiante",
                                  cls.terrain_intensite_ambiante)
        Demo.rendu.SetShaderFloat3("couleur_zenith", cls.couleur_zenith.r,
                                   cls.couleur_zenith.g, cls.couleur_zenith.b)
        Demo.rendu.SetShaderFloat3("couleur_horizon", cls.couleur_horizon.r,
                                   cls.couleur_horizon.g,
                                   cls.couleur_horizon.b)
        Demo.rendu.SetShaderFloat3("couleur_neige", cls.couleur_neige.r,
                                   cls.couleur_neige.g, cls.couleur_neige.b)
        Demo.rendu.SetShaderFloat3("couleur_eau", cls.couleur_eau.r,
                                   cls.couleur_eau.g, cls.couleur_eau.b)

        l_dir = cls.lumiere_soleil.GetTransform().GetWorld().GetRotationMatrix(
        ).GetZ()
        Demo.drapeau_erreur = True
        Demo.message_erreur = {
            "x:" + str(l_dir.x), "y:" + str(l_dir.y), "z:" + str(l_dir.z)
        }
        Demo.rendu.SetShaderFloat3("l1_direction", l_dir.x, l_dir.y, l_dir.z)
        l_couleur = cls.lumiere_soleil.GetLight().GetDiffuseColor()
        Demo.rendu.SetShaderFloat3("l1_couleur", l_couleur.r, l_couleur.g,
                                   l_couleur.b)

        l_dir = cls.lumiere_ciel.GetTransform().GetWorld().GetRotationMatrix(
        ).GetZ()
        Demo.rendu.SetShaderFloat3("l2_direction", l_dir.x, l_dir.y, l_dir.z)
        l_couleur = cls.lumiere_ciel.GetLight().GetDiffuseColor(
        ) * cls.lumiere_ciel.GetLight().GetDiffuseIntensity()
        Demo.rendu.SetShaderFloat3("l2_couleur", l_couleur.r, l_couleur.g,
                                   l_couleur.b)

        Demo.rendu.SetShaderFloat2("zFrustum",
                                   cls.camera.GetCamera().GetZNear(),
                                   cls.camera.GetCamera().GetZFar())

        Demo.affiche_texture_rendu()
        pass
Example #5
0
# ================================================================
#               Départ programme
# ================================================================

# -----------Initialisation du système de fichiers:

gs.GetFilesystem().Mount(gs.StdFileDriver())  # Racine du projet
gs.GetFilesystem().Mount(gs.StdFileDriver("pkg.core"),
                         "@core")  # Resources du runtime

# ------------Inits des moteurs de rendu:

render.init(1600, 900, "@core", 1)  #x,y, main path, antialiasing (1 à 8)

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)