GLSL教程 介绍

本教程讲授如何使用GLSL进行着色器编程。着色器是一个热门话题,3D游戏表明有效地使用着色器可以取得非凡的效果。本教程的目的就是带领大家走入着色器世界。

虽然本教程对规范有所介绍,但是如果你想了解更多权威的知识,我们推荐你阅读OpenGL2.0和GLSL的官方规范。因为理解本教程的某些部分需要OpenGL编程的知识,所以本教程假定你已经熟悉OpenGL编程。

GLSL即GL着色语言,简称为glslang,由OpenGL管理机构OpenGL ARB定义。

本教程不打算比较GLSL和Cg(Cg是Nvidia提议的着色语言,与OpenGL兼容)。选择GLSL而不是Cg用于本教程的唯一理由是GLSL与OpenGL结合更紧密。

在使用任一门语言编写着色器之前,都很有必要了解图形管线的基本知识。这样能够提供引入着色器的上下文,能够了解哪些类型的着色器是可用的,着色器应该做些什么,还能够知道着色器不能做什么,这也是同等重要的。

本节结束之后,接着讨论为GLSL设置OpenGL。我们相当详细地讨论在一个OpenGL应用程序中,使用着色器的必需步骤。最后向大家展示,一个OpenGL应用程序如何向着色器提供程序,才能使其更加灵活和强大。

接着介绍一些基本的概念如数据类型、变量、语句和函数定义。

本教程覆盖了ARB扩展和OpenGL2.0版本。覆盖前者是为了获得更大的兼容性,覆盖后者是因为在不久的将来它将是一个标准。它们俩之间的区别很小,大部分都是函数名和常量名的细微区别。通过给代码着上不同的颜色可以帮助读者区分他们。ARB扩展的代码着以灰色,OpenGL2.0的代码着以橙色。

两者兼顾(指ARB扩展和OpenGL2.0)更易于出错,如果你从中发现了错误,那么告诉我。

记住这只是一个半成品,因此正文和demo中都有可能存在bug。如果你找到任何的bug,不管它多么微不足道,请告知我,这样我就能够将它清理掉。当然,也欢迎大家给出建议。我希望你能够喜欢本教程。

———————————————————————————————————————————————————————————————

本文英文原文为《GLSL Tutorial - Introduction》

如果文中有一些地方翻译得不符合您的阅读习惯,您可以直接阅读英文原文,或者把您的翻译建议发给我,我一定会认真对待您的建议。

相关文章
相关标签/搜索