GLSL教程 OpenGL Setup for GLSL 创建着色器

下图展示了创建一个着色器的必要步骤:

oglshader

第一步:创建着色器容器对象。用于此目的的函数返回一个指向着色器容器对象的句柄。

在OpenGL 2.0中,该函数是:

GLuint glCreateShader(GLenum shaderType); 

Parameter: 

       shaderType - GL_VERTEX_SHADER or GL_FRAGMENT_SHADER. 

在ARB扩展中,该函数是:

GLhandleARB glCreateShaderObjectARB(GLenum shaderType);

Parameter:

    shaderType - GL_VERTEX_SHADER_ARB or GL_FRAGMENT_SHADER_ARB. 

你可以根据自己的需要,创建足够多的着色器以添加到应用程序中。但是记住:添加到单个程序的顶点着色器集中,只能有一个main函数,片段着色器也如此。

接下来的步骤:添加源代码。着色器的源代码是一个字符串数组,当然你也可以使用一个指向单个字符串的指针。

在OpenGL2.0中,设置源代码的函数是:

void glShaderSource(GLuint shader, int numOfStrings, const char **strings, int *lenOfStrings);

Parameters:

    shader - 着色器句柄.
    numOfStrings - 数组中字符串的个数.
    strings - 字符串数组.
    lenOfStrings - 包含每个字符串长度的数组或者为NULL, NULL表示每个字符串都已'/0’结尾.

在ARB扩展中,该函数是:

void glShaderSourceARB(GLhandleARB shader, int numOfStrings, const char **strings, int *lenOfStrings);

Parameters:

    shader - 着色器句柄.
    numOfStrings - 数组中字符串的个数.
    strings - 字符串数组.
    lenOfStrings - 包含每个字符串长度的数组或者为NULL, NULL表示每个字符串都已'/0’结尾. 

最后一步:编译着色器。

在OpenGL中,达到此目的的函数是:

void glCompileShader(GLuint shader);

Parameters:

    shader - 着色器句柄.

在ARB扩展中,该函数是:

void glCompileShaderARB(GLhandleARB shader);

Parameters:

    shader - 着色器句柄. 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值