乌啦呀哈呀哈乌啦!

欢迎光临,这里是喵pass的个人博客,希望有能帮到你的地方

0%

着色器

顶点着色器 vs 片元着色器

One main difference is that a vertex shader can manipulate the attributes of vertices. which are the corner points of your polygons.
The fragment shader on the other hand takes care of how the pixels between the vertices look. They are interpolated between the defined vertices following specific rules.

白话:顶点着色器负责定位三角形位置!片段着色器负责修改像素颜色!!

顶点着色器(Vertex Shader)

顶点着色器是图形渲染管线中的第一个可编程阶段。它的主要任务是处理从CPU发送到GPU的顶点数据。每个顶点都会通过顶点着色器进行一次,通常用于执行以下操作:

  • 变换:将顶点从模型空间转换到世界空间,然后进一步转换到视图空间和投影空间。这通常涉及到矩阵乘法运算,用于实现平移、旋转和缩放等变换。
  • 光照计算(可选):在某些情况下,顶点着色器也用于执行初步的光照计算,但这通常是在更简单的渲染场景中,或者作为更复杂的片元级光照计算的一个初步步骤。
  • 传递数据:顶点着色器可以计算并传递额外的数据到后续的渲染阶段,如片元着色器。这些数据可以是颜色、纹理坐标或其他自定义属性。

片元着色器

片元着色器是图形渲染管线中处理像素级渲染的阶段。它接收由顶点着色器插值得到的片元(即屏幕上的像素或像素的候选者),并生成最终的颜色和其他与像素相关的数据。以下是片元着色器的一些主要用途:

  • 纹理映射:从纹理中读取颜色信息,并应用到相应的像素上。这可以用于实现贴图、细节增强等效果。
  • 光照计算:执行更详细的光照计算,如计算每个像素上的光照强度和颜色。这可以包括漫反射、镜面反射、环境光等多种光照模型。
  • 颜色混合和特殊效果:实现各种颜色混合模式,以及应用如模糊、发光、深度测试等后处理效果。
  • 输出最终颜色:基于上述计算,确定每个像素的最终颜色,并将其发送到渲染管线的下一个阶段(通常是帧缓冲区)。

Credits:

https://zhuanlan.zhihu.com/p/718015588