OpenGL官方教程——着色器语言概述
OpenGL官方教程——着色器语言概述
可编程图形硬件管线(流水线)#
将 Pertransformed Vertices (每一个待转换顶点) 传人 Programmable Vertex Processor (可编程的顶点处理器) 得到 Transformed Vertices (转换的顶点) 将 Transformed Vertices (转换的顶点) 传入 Programmable Geometry Processor (可编程的几何处理器) 得到 Assenbled Polygons,Lines,or Points (组装 多边形、线或点) 进行 Clipping,Rasterization and Interpolation (裁剪,光栅化和插值) 得到 Rasterized Pertransformed Fragments (光栅化待转换的片元[片段]) 传入 Programmable Fragment Processor (可编程的片元处理器) 得到 Transformed Ftagment (转换的片元) 进行 Raster Operations (光栅运算) 进行 Pixel Update (像素更新) 传入 Frame Buffer (帧缓冲区)
可编程顶点处理器#
顶点处理器是一个可编程的单元,该单元对传入的顶点属性,如位置、颜色、纹理坐标等进行操作。顶点处理器的目的是执行传统的图形操作,如顶点变换,法线变换/归一化,纹理坐标的生成,和纹理坐标变换。
顶点处理器只有一个顶点作为输入,只写一个顶点作为输出。顶点的拓扑信息是不可用的。
可编程几何处理器#
几何处理器允许访问几何形状(线、三角形、四边形等),它甚至可以创建新的几何形状。然而,几何着色器并不是OpenGL着色器语言规范的一部分。这是一个多厂商的扩展(multivendor extension),目前可用的(开发商)显卡是NVIDIA GeForce 8系列显卡。因为这是OpenGL着色器语言中非常重要的一个扩展,所以在这个教程提到它。(如果你不想或不能使用几何着色器,简单的忽略它,使用固定功能管线来做)
可编程片元处理器#
片元(片段)处理器的目的是用于执行一些传统的图形操作。例如计算插值、纹理访问、纹理应用、雾化、颜色求和等。
语言#
OpenGL着色器语言有点类似于C语言。顶点着色器、几何着色器和片元(片段)着色器都必须有一个入口函数"void main()"
。
我可以在这里写一个完整的语言规范,但我认为,更好的方法是看学习示例。在下一节中介绍了一个简单的着色源代码。每一段都有一个简单的源代码下载。下载那些例子和修改它是学习GLSL的一个很好的方式,你自己进行实践!
你也应该下载官方GLSL语言规范。你可以点击这里获取(在”Miscellaneous Documents”下面)。
分类:
图形图像
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理