Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我们需要OpenGL中的顶点着色器?_Opengl_Shader - Fatal编程技术网

为什么我们需要OpenGL中的顶点着色器?

为什么我们需要OpenGL中的顶点着色器?,opengl,shader,Opengl,Shader,据我所知,像素的颜色是由片段着色器决定的。为什么我们需要一个顶点着色器呢?是否存在片段着色器不能(或不容易)但顶点着色器可以(容易)的事情 但我仍然不太明白为什么它被命名为“着色器” 因为这就是作为渲染过程一部分执行的程序的调用。这是最早的可编程渲染过程之一,尽管它们并不都计算颜色 因此,“着色器”已成为描述任何此类程序的术语 顶点着色器转换顶点数据,创建从输入顶点到输出顶点的1:1映射。片段着色器在上操作。FS调用无法控制在何处执行。它们是在光栅化器所说的位置生成的,FS无法影响这一点 相比之

据我所知,像素的颜色是由片段着色器决定的。为什么我们需要一个顶点着色器呢?是否存在片段着色器不能(或不容易)但顶点着色器可以(容易)的事情

但我仍然不太明白为什么它被命名为“着色器”

因为这就是作为渲染过程一部分执行的程序的调用。这是最早的可编程渲染过程之一,尽管它们并不都计算颜色

因此,“着色器”已成为描述任何此类程序的术语

顶点着色器转换顶点数据,创建从输入顶点到输出顶点的1:1映射。片段着色器在上操作。FS调用无法控制在何处执行。它们是在光栅化器所说的位置生成的,FS无法影响这一点

相比之下,顶点着色器可以完全控制顶点的位置

但我仍然不太明白为什么它被命名为“着色器”

因为这就是作为渲染过程一部分执行的程序的调用。这是最早的可编程渲染过程之一,尽管它们并不都计算颜色

因此,“着色器”已成为描述任何此类程序的术语

顶点着色器转换顶点数据,创建从输入顶点到输出顶点的1:1映射。片段着色器在上操作。FS调用无法控制在何处执行。它们是在光栅化器所说的位置生成的,FS无法影响这一点


相比之下,顶点着色器可以完全控制顶点的位置。

除了着色器之外,渲染管道中还有多个步骤。首先,因为GPU已经为您完成了大部分工作,您完全没有理由自己编写代码。第二,你不需要无缘无故地简化着色器——它们是用来使用的,把乘法移回CPU也没有什么好处。如果你跳过顶点着色器,那么在你的应用程序中,你必须创建一系列纹理,其中包含要绘制的像素、深度等信息——这已经发生在背景中了。除此之外,现代图形卡上有5个着色器阶段,而不仅仅是2个。你太担心语义了。“顶点”,因为它处理顶点。“着色器”,因为它是一个GPU程序,属于渲染/着色管道。不要想得太多。仅仅因为您专门针对变换使用了顶点着色器,并不意味着这就是它的全部功能。小心你在缺乏信息的情况下所做的假设;)这不是关于能不能做的事。是的,显然,顶点着色器可以做一些片段着色器不能做的事情。顶点着色器为片段着色器稍后使用的基本体做好准备。片段着色器中可用的数据量在顶点着色器中确定。此外,环境贴图和其他渲染技术都需要使用顶点着色器。我不明白你为什么要责怪顶点着色器,也许你应该遵循更多教程并从经验中学习。这只是一个需要顶点着色器的技术示例,仅此而已。再说一次,你对语义想得太多了,看起来你没有读我的其他评论。看起来我帮不了你,但这里有一个有用的链接可以帮助你学习:除了着色器,renderind管道中还有多个步骤。首先,因为GPU已经为您完成了大部分工作,您完全没有理由自己编写代码。第二,你不需要无缘无故地简化着色器——它们是用来使用的,把乘法移回CPU也没有什么好处。如果你跳过顶点着色器,那么在你的应用程序中,你必须创建一系列纹理,其中包含要绘制的像素、深度等信息——这已经发生在背景中了。除此之外,现代图形卡上有5个着色器阶段,而不仅仅是2个。你太担心语义了。“顶点”,因为它处理顶点。“着色器”,因为它是一个GPU程序,属于渲染/着色管道。不要想得太多。仅仅因为您专门针对变换使用了顶点着色器,并不意味着这就是它的全部功能。小心你在缺乏信息的情况下所做的假设;)这不是关于能不能做的事。是的,显然,顶点着色器可以做一些片段着色器不能做的事情。顶点着色器为片段着色器稍后使用的基本体做好准备。片段着色器中可用的数据量在顶点着色器中确定。此外,环境贴图和其他渲染技术都需要使用顶点着色器。我不明白你为什么要责怪顶点着色器,也许你应该遵循更多教程并从经验中学习。这只是一个需要顶点着色器的技术示例,仅此而已。再说一次,你对语义想得太多了,看起来你没有读我的其他评论。看来我帮不了你,但这里有一个有用的链接可以帮助你学习:谢谢你的回答。我想我应该把shader这个词看作一个与shade无关的全新单词。谢谢你的回答。我想我应该把shader这个词看作是一个与shade无关的全新单词。