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 :

error c5041: cannot locate suitable resource to bind variable Possibly large array


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Par défaut error c5041: cannot locate suitable resource to bind variable Possibly large array
    Salut,
    J'ai un petit probléme avec GLSL (Shader)
    un message d'erreur s'affiche ( error c5041: cannot locate suitable resource to bind variable Possibly large array)
    Qui peut me donner une solution ?

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 156
    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 156
    Billets dans le blog
    151
    Par défaut
    Bonjour,

    Pouvons nous voir votre shader et si possible, la ligne de l'erreur, merci.
    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
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 034
    Billets dans le blog
    12
    Par défaut
    Salut !

    On ne peut pas t'aider car on n'a pas le code du shader incriminé.
    Je pense seulement que tu as une variable uniforme de type tableau trop grosse (4096 éléments de 4 octets pour un UBO si je me souviens bien).
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Par défaut
    Bonjour a tous,
    Merci de me répondre.
    Le code du Vertex Shader le voila :

    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 450
    #pragma optionNV(unroll all)
    #pragma optionNV(fastmath on)
    #pragma optionNV(fastprecision on)
    #pragma optionNV(ifcvt none)
    #pragma optionNV(inline all)
    #pragma optionNV(strict on)
     
    uniform vec3 LightPosition, CameraPosition;
    uniform mat4x4 LightTextureMatrices[250];
    uniform mat4 gl_ModelViewProjectionMatrix;
     
    out vec3 LightDirection, LightDirectionReflected, CameraDirection, Normal;
    out vec4 ShadowTexCoord[250];
    in vec4 gl_Vertex;
    in vec3 gl_Normal;
    vec4 gl_TexCoord[];
    in vec4 gl_MultiTexCoord0;
     
    void main()
    {
    	LightDirection = LightPosition - gl_Vertex.xyz;
    	LightDirectionReflected = reflect(-LightDirection, gl_Normal);
    	LightDirectionReflected = vec3(0,0,0);
    	CameraDirection = CameraPosition - gl_Vertex.xyz;
    	Normal = gl_Normal;
    	gl_TexCoord[0] = gl_MultiTexCoord0;
    	for(int i = 0; i < 81; i++)
    	ShadowTexCoord[i] = LightTextureMatrices[i] * gl_Vertex;
     
    	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
    }


    Le code de fragment shader le voila :

    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
    33
    34
    35
    36
    37
    38
    39
    #version 450
    #pragma optionNV(unroll all)
    #pragma optionNV(unroll count=81)
    #pragma optionNV(fastmath on)
    #pragma optionNV(fastprecision on)
    #pragma optionNV(ifcvt none)
    #pragma optionNV(inline all)
    #pragma optionNV(strict on)
     
    #extension GL_EXT_texture_array : enable
    #extension GL_EXT_gpu_shader4 : enable
     
    uniform sampler2D Texture;
    uniform sampler2DArrayShadow ShadowMap;
     
    in vec3 LightDirection, LightDirectionReflected, CameraDirection, Normal;
    in vec4 ShadowTexCoord[30];
    out vec4 gl_FragColor;
    vec4 gl_TexCoord[];
     
    void main(void)
    {
    	float Shadow = 0.0;
     
    	for(int i = 0; i < 29; i++)
    	{
    		Shadow += shadow2DArray(ShadowMap, vec4(ShadowTexCoord[i].xy / ShadowTexCoord[i].w, i, ShadowTexCoord[i].z / ShadowTexCoord[i].w)).r;
    	}
     
    	Shadow /= 29.0;
     
     
    	float NdotLD = max(dot(normalize(LightDirection), Normal), 0.0) * Shadow;
    	float Spec = pow(max(dot(normalize(LightDirectionReflected), normalize(CameraDirection)), 0.0), 32.0) * Shadow;
     
     
    	gl_FragColor = vec4(texture2D(Texture, gl_TexCoord[0].st).rgb * ( NdotLD ), 1.0);
     
    }

    Le probléme ce situe au niveaux du fragment shader dans cette ligne :
    Code glsl : Sélectionner tout - Visualiser dans une fenêtre à part
    in vec4 ShadowTexCoord[30];
    moi j'ai besoin de ShadowTexCoord[81] et non pas ShadowTexCoord[30];
    et meme problème dans la boucle :
    Code glsl : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int i = 0; i < 29; i++)
    	{
    		Shadow += shadow2DArray(ShadowMap, vec4(ShadowTexCoord[i].xy / ShadowTexCoord[i].w, i, ShadowTexCoord[i].z / ShadowTexCoord[i].w)).r;
    	}
    moi j'ai besoin de for(int i = 0; i < 81; i++) et pas for(int i = 0; i < 29; i++)
    Merci .

  5. #5
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 034
    Billets dans le blog
    12
    Par défaut
    En sortie du vertex shader tu as out vec4 ShadowTexCoord[250]; et en entrée de ton fragment shader tu as in vec4 ShadowTexCoord[30];.
    Commence déjà par choisir si tu en veux 250 ou 30.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 9
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    En sortie du vertex shader tu as out vec4 ShadowTexCoord[250]; et en entrée de ton fragment shader tu as in vec4 ShadowTexCoord[30];.
    Commence déjà par choisir si tu en veux 250 ou 30.
    Merci pour ta réponse , je veut 250 .

  7. #7
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 034
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 034
    Billets dans le blog
    12
    Par défaut
    Donc fais le changement en conséquence (remplacer 30 par 250?) et vois si cela résout ton problème.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. [STRUTS] [Debutant] Cannot find message resources...
    Par grizzz dans le forum Struts 1
    Réponses: 14
    Dernier message: 05/05/2011, 16h08
  2. Cannot locate resource ogrehead.mesh
    Par AYNIL dans le forum Ogre
    Réponses: 2
    Dernier message: 29/03/2011, 13h24
  3. Réponses: 2
    Dernier message: 06/04/2007, 15h04
  4. Encore un problème de locate de resources
    Par zegreg dans le forum Langage
    Réponses: 5
    Dernier message: 19/12/2006, 17h27
  5. Réponses: 3
    Dernier message: 26/10/2006, 18h21

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