跳转至内容

GLSL 编程/GLUT

来自维基教科书,开放的书籍,开放的世界

在本节中,我们将介绍如何使用 C/C++ 实现 GLSL 概念,并以 GLUT 作为基本的 OpenGL 包装器。

我们将依赖于 OpenGL 编程维基教科书 中逐步构建的基础代码模板,用于加载纹理、模型,以及将顶点和制服传递给着色器。几乎所有的编码都将在着色器中进行。

注意:Android 用户可能需要查看 GLUT 包装器

当使用着色器重新实现过时的 OpenGL 1.x 功能(如光照)时,我们将尝试使用类似的变量名称,以便熟悉先前版本的人可以轻松地升级他们的知识。

请注意,这些教程假设您按照此处显示的顺序阅读它们,即每个教程都假定您熟悉先前教程中介绍的概念和技术。如果您不熟悉 GLSL,至少应该通读“基础”部分中的教程。

其中许多教程已可用于 BlenderUnity - 如果你可以移植它们,欢迎贡献!

透明表面

[编辑 | 编辑源代码]

基础光照

[编辑 | 编辑源代码]

基础纹理

[编辑 | 编辑源代码]

3D 纹理

[编辑 | 编辑源代码]

环境映射

[编辑 | 编辑源代码]

光照的变体

[编辑 | 编辑源代码]

非标准顶点变换

[编辑 | 编辑源代码]
  • 屏幕叠加(关于从对象空间到屏幕空间的直接变换)
  • 公告板(关于视图对齐的物体投影)
  • 非线性变形(关于顶点混合)
  • 平面阴影(关于将阴影投影到平面上)
  • 镜子(关于镜像物体和使用 alpha 缓冲区进行模板化)


< GLSL 编程

除非另有说明,本页面上的所有示例源代码均归属公有领域。
华夏公益教科书