我是一名相对较新的图形编程人员,刚刚阅读了一些书籍并扫描了一些教程,所以请原谅如果这个问题看起来很愚蠢。
我已经掌握了directx11的基础知识,并且现在想要寻找一些乐趣。因此,我自然而然地深入研究了着色器管道,我已经着迷了。编写一个简单的、微小的代码,必须足够高效地运行,每秒可能运行数万次,而不浪费资源,让我急于掌握概念,以免在继续之前可能会弄乱事情。我遇到的问题是难以理解像素着色器实际在做什么。
顶点着色器很容易理解,你将对象的顶点组织成统一的数据结构,与其相关的信息如位置和纹理坐标,然后将每个顶点传递到着色器中,通过转换矩阵从3D转换为2D。只要我理解了它,我就可以找出如何编码。
但是我不太理解像素着色器。我理解的是,顶点着色器的输出是像素着色器的输入。那么这不只是把多边形顶点的2D坐标交给像素着色器吗?我所理解的是,像素着色器接收到单个像素并对它们进行计算,以确定颜色和光照等属性。但如果是这样的话,那些像素呢?整个屏幕还是仅在变换后的2D多边形内的像素?
或者我完全误解了什么?