IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Shader phong Material [OpenGL 4.x]


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 22
    Par défaut Shader phong Material
    Bonjour,
    Je voulais savoir où sont les erreurs de mon shader pour afficher du phong.
    Voici les vertex et fragment shaders :
    Code glsl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    #version 440
     
    //vertexs
    layout(location = 0) in vec3 Position;
    layout(location = 1) in vec3 Normal;
    layout(location = 2) in vec3 Tangent;
    layout(location = 3) in vec2 UVcoord;
     
    uniform mat4 MVP;
    uniform mat4 V;
    uniform mat4 M;
    uniform mat4 NormalMatrix;
     
    out vec3 L;
    out vec3 C;
    out vec3 N;
    out vec2 UV;
     
    void main()
    {
    	vec4 Ltmp = V * vec4(3.0, 5.0, 0.0, 1.0);
    	vec4 Ptmp = V * M * vec4(Position, 1.0);
    	vec3 P = Ptmp.xyz / Ptmp.w;
    	L = normalize((Ltmp.xyz / Ltmp.w) - P);
    	C = normalize(P - vec3(0.0));
    	N = normalize(mat3(NormalMatrix) * Normal);
    	UV = UVcoord;
     
     
    	gl_Position = MVP * vec4(Position, 1.0);
    }

    Code glsl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #version 440
     
    in vec3 L;
    in vec3 C;
    in vec3 N;
    in vec2 UV;
     
    out vec4 Color;
     
    uniform sampler2D samplerTexture;
     
    void main()
    {
    	vec3 texcolor = vec3(texture(samplerTexture, UV));
    	vec3 Ia = 0.1 * texcolor;
    	vec3 Id = 0.5 * texcolor * max(dot(L, N), 0);
    	vec3 R = normalize(-reflect(L, N));
    	vec3 Is = 0.4 * vec3(1.0) * pow(max(dot(R, C), 0), 100.0);
    	Color = vec4(Id, 1.0);
    }

    Ici NormalMatrix est égal à la transposée de l'inverse de la matrice modelview.

    Mon résultat est bizarre quand mon cube tourne en autour de l'axe y :
    Nom : Capture.JPG
Affichages : 205
Taille : 33,7 Ko

    Je vous remercie d'avance

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 150
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    Ainsi, je n'arrive pas à voir l'erreur. Je vous conseille de simplifier le code au maximum, notamment enlever la transformation par la normalMatrix ou des trucs comme ça. Aussi, de mémoire, je me rappelais qu'il fallait faire -L dans le dot.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 22
    Par défaut
    Alors j'ai fais la transformation dans l'espace world finalement et cela fonctionne. Je pense essayer plus tard dans l'espace caméra pour bien maitriser les transformations.

    Je vous remercie,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OpenGL 3.x] [GLSL] Phong shader
    Par robinsondesbois dans le forum OpenGL
    Réponses: 11
    Dernier message: 02/11/2016, 19h21
  2. Phong tessellation dans les Vertex Shader
    Par gbdivers dans le forum OpenGL
    Réponses: 0
    Dernier message: 21/12/2010, 03h30
  3. Réponses: 2
    Dernier message: 14/12/2007, 01h47
  4. Phong, Gouraud, Shaders et carte graphique
    Par bouba dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 23/11/2006, 09h31
  5. pas d'éclairage du tout avec un shader "phong shading&q
    Par captainSeb dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/06/2005, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo