用于OpenGL ES20中的照明效果的顶点和片段着色器

时间:2016-08-24 05:49:15

标签: opengl-es glsl opengl-es-2.0 fragment-shader vertex-shader

我想通过着色器在我的模型中添加一个非常简单的灯光效果。我发现有一个顶点和一个片段着色器可以在OpenGL上工作:

<tbody>
    {% for post in posts %}
    <tr>
        <td class="td-title-area">
            <a href="{{ post.get_absolute_url }}" class="td-title truncate">   
                {{ post.title}}
            </a>
        </td>
        <td> {{post.author}} </td>
        <td> {{post.created_at|date:"SHORT_DATE_FORMAT"}} </td>
        <td> 11 </td>
    </tr>
    {% endfor%}
</tbody>

问题是我在OpenGL ES2中工作,因为我正在开发一个Android应用程序。似乎内置变量gl_FrontLightModelProduct不适用于GLES20,因为我在此行编译失败。

我的问题是:如何修改上面的着色器以使它们在OpenGL ES20上下文中工作?

1 个答案:

答案 0 :(得分:1)

gl_FrontLightModelProduct.sceneColor给出场景的环境色,如果您希望不受光影响的区域为全黑,则可以为0。您可以使用vec4(0.0, 0.0, 0.0, 1.0);

替换它

您还应删除这些变量并将其作为制服发送。

  1. gl_ModelViewMatrix(发送制服)
  2. gl_Vertex(从属性中读取)
  3. gl_NormalMatrix(发送制服)
  4. gl_Normal(从属性中读取)
  5. 或者不是在转换OpenGL着色器时进行战斗,而是可以搜索Simple OpenGL ES 2.0着色器