查看: 4517|回复: 0

GLSL教程(7) 创建GLSL应用程序

[复制链接]
  • TA的每日心情
    开心
    2019-11-11 10:36
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-6-2 23:50:11 | 显示全部楼层 |阅读模式
    GLSL教程

    译:FreeSouth
    创建应用程序


    下面的源码体现了上节所讲的创建shader的所有步骤。p,f,v是GLuint类型的全局变量(OpenGL2.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);
            }
    ________________________________________
    原文地址:http://www.lighthouse3d.com/opengl/glsl/index.php?oglexample1
    OpenGL-创建一个Shader.pdf (104.38 KB, 下载次数: 611)
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    OSG中国官方论坛-有您OSG在中国才更好

    网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

    联系我们

    • 工作时间:09:00--18:00
    • 反馈邮箱:1315785073@qq.com
    快速回复 返回顶部 返回列表