From 10a5dd3216855617b63ba1e18d0a12497065aae1 Mon Sep 17 00:00:00 2001 From: lhark Date: Fri, 1 Dec 2017 13:39:55 -0500 Subject: [PATCH] Fix Z conflict & remove dead code --- ripple.cpp | 102 +++++------------------------------------------------ 1 file changed, 8 insertions(+), 94 deletions(-) diff --git a/ripple.cpp b/ripple.cpp index 33e880f..848cdde 100644 --- a/ripple.cpp +++ b/ripple.cpp @@ -84,7 +84,6 @@ GLuint locTexRAA = -1; GLuint indLightSource; GLuint indFrontMaterial; GLuint indLightModel; -GLuint indvarsUnif; GLuint progBase; // le programme de nuanceurs de base GLint locVertexBase = -1; GLint locColorBase = -1; @@ -114,7 +113,7 @@ FormeCylindre *cylindre = NULL; FormeCylindre *cone = NULL; // variables pour définir le point de vue -double thetaCam = 0.0; // angle de rotation de la caméra (coord. sphériques) +double thetaCam = 180.0; // angle de rotation de la caméra (coord. sphériques) double phiCam = 0.0; // angle de rotation de la caméra (coord. sphériques) double distCam = 0.0; // distance (coord. sphériques) glm::vec3 cameraPos = glm::vec3(10.17, 22.13, 59.49); @@ -159,73 +158,8 @@ int printonce = 0; // déclaration des variables globales // //////////////////////////////////////// -// partie 1: illumination -int modele = 1; // le modèle à afficher - -// partie 3: texture +/* Heightmap for the terrain */ GLuint texTerrain = 0; -GLuint textureECHIQUIER = 0; - -// définition des lumières -struct LightSourceParameters -{ - glm::vec4 ambient; - glm::vec4 diffuse; - glm::vec4 specular; - glm::vec4 position; - glm::vec3 spotDirection; - float spotExposant; - float spotAngle; // ([0.0,90.0] ou 180.0) - float constantAttenuation; - float linearAttenuation; - float quadraticAttenuation; -} LightSource[1] = { { glm::vec4( 1.0, 1.0, 1.0, 1.0 ), - glm::vec4( 1.0, 1.0, 1.0, 1.0 ), - glm::vec4( 1.0, 1.0, 1.0, 1.0 ), - glm::vec4( 4, 1, 15, 1.0 ), - glm::vec3( -5.0, -2.0, -10.0 ), - 1.0, // l'exposant du cône - 15.0, // l'angle du cône du spot - 1., 0., 0. } }; - -// définition du matériau -struct MaterialParameters -{ - glm::vec4 emission; - glm::vec4 ambient; - glm::vec4 diffuse; - glm::vec4 specular; - float shininess; -} FrontMaterial = { glm::vec4( 0.0, 0.0, 0.0, 1.0 ), - glm::vec4( 0.1, 0.1, 0.1, 1.0 ), - glm::vec4( 1.0, 0.1, 1.0, 1.0 ), - glm::vec4( 1.0, 1.0, 1.0, 1.0 ), - 100.0 }; - -struct LightModelParameters -{ - glm::vec4 ambient; // couleur ambiante - int localViewer; // doit-on prendre en compte la position de l'observateur? (local ou à l'infini) - int twoSide; // éclairage sur les deux côtés ou un seul? -} LightModel = { glm::vec4(0,0,0,1), false, false }; - -struct -{ - // partie 1: illumination - int typeIllumination; // 0:Lambert, 1:Gouraud, 2:Phong - int utiliseBlinn; // indique si on veut utiliser modèle spéculaire de Blinn ou Phong - int utiliseDirect; // indique si on utilise un spot style Direct3D ou OpenGL - int afficheNormales; // indique si on utilise les normales comme couleurs (utile pour le débogage) - // partie 3: texture - int texnumero; // numéro de la texture appliquée - int utiliseCouleur; // doit-on utiliser la couleur de base de l'objet en plus de celle de la texture? - int afficheTexelNoir; // un texel noir doit-il être affiché 0:noir, 1:mi-coloré, 2:transparent? -} varsUnif = { 2, false, false, false, - 0, true, 0 }; -// ( En glsl, les types 'bool' et 'int' sont de la même taille, ce qui n'est pas le cas en C++. -// Ci-dessus, on triche donc un peu en déclarant les 'bool' comme des 'int', mais ça facilite la -// copie directe vers le nuanceur où les variables seront bien de type 'bool'. ) - /* Forward declarations */ void displayPacketOutlined(int count); @@ -638,11 +572,6 @@ void initHeightFieldMesh() // initialisation d'openGL void initialiser() { - // donner l'orientation du modèle - thetaCam = 0.0; - phiCam = 0.0; - distCam = 90.0; - // Create FBOs posFBO = new FBO(); heightFBO = new FBO(); @@ -726,9 +655,11 @@ void addPacketDisplacement(int count) glUniformMatrix4fv(locmatrVisuAPD, 1, GL_FALSE, matrVisu); glUniformMatrix4fv(locmatrProjAPD, 1, GL_FALSE, matrProjWide); glEnable(GL_BLEND); + glDisable(GL_DEPTH_TEST); glBlendFunc(GL_ONE, GL_ONE); glBlendEquation(GL_FUNC_ADD); glDrawArrays(GL_POINTS, 0, count); + glEnable(GL_DEPTH_TEST); glDisable(GL_BLEND); glBindVertexArray(0); glUseProgram(0); @@ -1040,14 +971,9 @@ void FenetreTP::sourisClic( int button, int state, int x, int y ) } } -void FenetreTP::sourisWheel( int x, int y ) // Changer la taille du spot -{ - const int sens = +1; - LightSource[0].spotAngle += sens*y; - if ( LightSource[0].spotAngle > 90.0 ) LightSource[0].spotAngle = 90.0; - if ( LightSource[0].spotAngle < 0.0 ) LightSource[0].spotAngle = 0.0; - std::cout << " spotAngle=" << LightSource[0].spotAngle << std::endl; -} + +void FenetreTP::sourisWheel(int x, int y) {} + // fonction de mouvement de la souris void FenetreTP::sourisMouvement( int x, int y ) @@ -1062,18 +988,6 @@ void FenetreTP::sourisMouvement( int x, int y ) thetaCam -= dx / 9.0; phiCam -= dy / 9.0; break; - case deplaceSpotDirection: - LightSource[0].spotDirection.x += 0.06 * dx; - LightSource[0].spotDirection.y -= 0.06 * dy; - // std::cout << " LightSource[0].spotDirection=" << glm::to_string(LightSource[0].spotDirection) << std::endl; - break; - case deplaceSpotPosition: - LightSource[0].position.x += 0.03 * dx; - LightSource[0].position.y -= 0.03 * dy; - // std::cout << " LightSource[0].position=" << glm::to_string(LightSource[0].position) << std::endl; - //glm::vec3 ecranPos( x, hauteur_-y, ecranLumi[2] ); - //LightSource[0].position = glm::vec4(glm::unProject( ecranPos, VM, P, cloture ), 1.0); - break; } dernierX = x; @@ -1086,7 +1000,7 @@ void FenetreTP::sourisMouvement( int x, int y ) int main( int argc, char *argv[] ) { // créer une fenêtre - FenetreTP fenetre( "INF2705 TP" ); + FenetreTP fenetre( "Ripple" ); // allouer des ressources et définir le contexte OpenGL initialiser();