Array ( )
Вход:




Главная | OpenGL | GLSL | AI | Сеть | Примеры | Библиотека

GLSL: Настройка OpenGL для GLSL: Исходный код






Следующий исходный код содержит все шаги, описанные выше.
Переменные p, f, v обьявлены выше как глобальные, как
GLuint для OpenGL 2.0
и GLhandleARB для расширений шейдеров ARB.



Синтаксис OpenGL 2.0:
    void setShaders() {
   
        char *vs,*fs;
   
        v = glCreateShader(GL_VERTEX_SHADER);
        f = glCreateShader(GL_FRAGMENT_SHADER);
   
        vs = textFileRead("toon.vert");
        fs = textFileRead("toon.frag");
   
        const char * vv = vs;
        const char * ff = fs;
   
        glShaderSource(v, 1, &vv,NULL);
        glShaderSource(f, 1, &ff,NULL);
   
        free(vs);free(fs);
   
        glCompileShader(v);
        glCompileShader(f);
   
        p = glCreateProgram();
       
        glAttachShader(p,v);
        glAttachShader(p,f);
   
        glLinkProgram(p);
        glUseProgram(p);
    }




Синтаксис расширений шейдеров ARB:
    void setShaders() {
   
        char *vs,*fs;
   
        v = glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB);
        f = glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);   
   
        vs = textFileRead("toon.vert");
        fs = textFileRead("toon.frag");
   
        const char * vv = vs;
        const char * ff = fs;
   
        glShaderSourceARB(v, 1, &vv,NULL);
        glShaderSourceARB(f, 1, &ff,NULL);
   
        free(vs);free(fs);
   
        glCompileShaderARB(v);
        glCompileShaderARB(f);
   
        p = glCreateProgramObjectARB();
       
        glAttachObjectARB(p,v);
        glAttachObjectARB(p,f);
   
        glLinkProgramARB(p);
        glUseProgramObjectARB(p);
    }



Полный GLUT-пример доступен здесь:
Синтаксис OpenGL 2.0
Синтаксис расширений ARB

Код содержит два простых шейдера и функции чтения текстовых файлов.

Пример кода для *nix (только расширения ARB) доступен здесь благодаря Wojciech Milkowski.

Пожалуйста, дайте ему знать, если вы используете этот код: wmilkowski 'at' gazeta.pl










Комментарии:

Войдите, чтобы оставить комментарий:












Яндекс.Метрика
 Яндекс цитирования.