OpenGL--基础知识(1)

本文介绍了OpenGL的基础渲染管线,包括顶点着色器和片元着色器的作用,以及如何通过Attributes、Uniforms和Texture传递数据。此外,还探讨了正交投影和透视投影两种坐标系统的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.基础渲染管线

在OpenGL中,最基础的元素就是点,一些点组合在一起,按照预定的方式连线,另外加上光照、贴图、颜色等就组成了我们在屏幕上所看到的图形图像。例如,一个顶点的基础就是一个点,只是这个顶点包含位置、颜色等属性;一个三角形的基础就是三个点,按照预定的方式进行连线。我们来看一个大致的渲染流程图(摘自OpenGL SuperBible):
在这里插入图片描述

这是一个简化版本,我们可以看到,渲染管线把三个顶点输入顶点着色器中,新手暂时不用管顶点着色器是什么,只需要知道这是一个类似方法(函数)的东西,输入3个顶点及其附带的属性,输出一个连线的三角形。它也可以应用颜色,一个或多个纹理,并移动它们,这条管道也是可编程的,可以编写两个由图形硬件执行的程序来处理顶点数据并填充屏幕上的像素(称为片段着色器,实际上每个像素可以有多个片段)

2.Shaders

上图中最大的两个框框中的处理,VertexShader(顶点着色器) FragmentShader(片元着色器)

VertexShader(顶点着色器)

顶点着色器处理来自Client(客户端)的传入数据,顶点着色器将位置信息进行转换,如应用数学运算来计算光照效果、位移、颜色值等等。要呈现一个有三个顶点的三角形,顶点着色器要执行三次,每个顶点执行一次,不过现在的硬件,有多个单元可以同时计算,三个顶点可以同时被处理

FragmentShader(片元着色器)

经过顶点着色器以后,现在可以对三个顶点进行光栅化。将这三个顶点放在一起,然后将三角形逐段栅格化。通过执行片段着色器填充每个片段,它输出我们将在屏幕上看到的最终颜色值。今天的硬件是大规模并行的,很有可能有多个这样的片段程序可以同时执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值