Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Lash

Pages: [1]
1
Général / Re : [OpenGL] Opengl n'affiche rien
« le: Septembre 01, 2013, 04:20:01 pm »
D'accord, dans ce cas la je ne comprend pas pourquoi mon triangle ne n'affiche pas.
Pourtant j'ai bien changer #version 420 core en #version 420 compatibility.

2
Général / Re : [OpenGL] Opengl n'affiche rien
« le: Septembre 01, 2013, 04:14:56 am »
Je penses avoir trouvé l'origine de mon problème en relisant la page du tuto SFML pour utiliser OpenGL.
Etant donnée que SFML créé un contexte en compatibility profile, et vue que je veux faire du core profile ça pose un soucis.

Du coup je vais changer de système de fenêtrage pour le moment (mais je garde sfml pour tout le reste notamment le texte).

Désolée du dérangement.

3
Général / Re : [OpenGL] Opengl n'affiche rien
« le: Août 31, 2013, 11:02:15 pm »
Bonjour,

Merci pour ta réponse,
Du coup j'ai mis des glGetError() après chaque appel de fonction (j'espère que c'est comme ça qu'il faut faire).

program = glCreateProgram();

        err = glGetError();
        cout << "Create program : " << err << endl;

    GLuint fs = glCreateShader(GL_FRAGMENT_SHADER);

        err = glGetError();
        cout << "Create fs : " << err << endl;

    glShaderSource(fs, 1, fs_source, NULL);

        err = glGetError();
        cout << "Shader source : " << err << endl;


 


Et à chaque fois il me retourne 0 :




Du coup je ne suis pas trop avancé. Je vais essayer de continuer à chercher de mon coté.

4
Général / [OpenGL] Opengl n'affiche rien
« le: Août 31, 2013, 08:09:22 pm »
Bonjour,

Je suis en train d'apprendre OpenGL avec la superbible d'OpenGL. Etant donné que mon but final est de faire un appli, je test les codes d'exemples du bouquin avec SFML, cependant je n'arrive pas à affiché un stupide triangle.

Avec les samples du bouquin c'est sensé donner ça :


Cependant quand je test avec SFML je n'ai que le fond vert.

Voici mon code :

#include <SFML/Window.hpp>
#include <GL/glew.h>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
        sf::VideoMode videoMode(1280,720,32);

        sf::Window window(videoMode, "OpenGL", sf::Style::Default, sf::ContextSettings());
    window.setVerticalSyncEnabled(true);

        cout << window.getSettings().majorVersion << " " << window.getSettings().minorVersion << endl;

        glewExperimental=true;

        GLenum err = glewInit();

        cout << err << endl;

        //============<Sample>==============

        GLuint          program;
    GLuint          vao;

    static const char * vs_source[] =
    {
        "#version 420 core                                                 \n"
        "                                                                  \n"
        "void main(void)                                                   \n"
        "{                                                                 \n"
        "    const vec4 vertices[] = vec4[](vec4( 0.25, -0.25, 0.5, 1.0),  \n"
        "                                   vec4(-0.25, -0.25, 0.5, 1.0),  \n"
        "                                   vec4( 0.25,  0.25, 0.5, 1.0)); \n"
        "                                                                  \n"
        "    gl_Position = vertices[gl_VertexID];                          \n"
        "}                                                                 \n"
    };

    static const char * fs_source[] =
    {
        "#version 420 core                                                 \n"
        "                                                                  \n"
        "out vec4 color;                                                   \n"
        "                                                                  \n"
        "void main(void)                                                   \n"
        "{                                                                 \n"
        "    color = vec4(0.0, 0.8, 1.0, 1.0);                             \n"
        "}                                                                 \n"
    };

    program = glCreateProgram();
    GLuint fs = glCreateShader(GL_FRAGMENT_SHADER);
    glShaderSource(fs, 1, fs_source, NULL);
    glCompileShader(fs);

    GLuint vs = glCreateShader(GL_VERTEX_SHADER);
    glShaderSource(vs, 1, vs_source, NULL);
    glCompileShader(vs);

    glAttachShader(program, vs);
    glAttachShader(program, fs);

    glLinkProgram(program);

    glGenVertexArrays(1, &vao);
    glBindVertexArray(vao);

        //============</Sample>==============


    // la boucle principale
    bool running = true;
    while (running)
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
            {
                running = false;
            }
            else if (event.type == sf::Event::Resized)
            {
                glViewport(0, 0, event.size.width, event.size.height);
            }
        }

                //============<Sample>==============

        static const GLfloat green[] = { 0.0f, 0.25f, 0.0f, 1.0f };
        glClearBufferfv(GL_COLOR, 0, green);

        glUseProgram(program);
        glDrawArrays(GL_TRIANGLES, 0, 3);

                //============</Sample>==============


        window.display();
    }


        return 0;
}
 

Ce qui vient des samples du bouquin sont entourés de //============<Sample>==============

Mon glew s'est bien initialisé (err = 0). SFML et glew sont compiler en dynamique (j'ai essayé en statique mais ça ne change rien).
Quand j'affiche la version d'OpenGL j'ai bien la 4.2

Au début j'utilisais une RenderWindow parce que j'affichais un HUD grâce à SFML mais je suis passé avec un code minimaliste pour faire marcher le tout.

J'ai cherché un peu partout mais je n'ai rien trouvé qui m'aide.
Du coup je me demandais si quelqu'un pouvais m'aider, ou a déjà eu ce problème ?

Merci d'avance,

Pages: [1]