2012-07-19 99 views

回答

13

如果你想制服传递给片段着色器号,您可以轻松地做到这一点(见任何教程)。但是如果你想要类似于每个顶点属性的东西,那么这样做没有意义。你也可以做的是将属性传递给顶点着色器,然后在顶点着色器中将它们作为变化传递给片段着色器。它们将在基元上插值并作为片段着色器的输入提供。

+0

蒂姆,这个答案确实为我准备就绪,如何制服,属性和变化一起工作。谢谢! – Jackalope 2013-07-02 15:44:19

+1

插值有些可以控制吗?例如,(火炬)光源的情况下,您不希望变化在每个方块所用的三角形中产生高光。不幸的是,你可以用O或O来代替O或O。 – 2014-04-10 20:21:42

1

蒂姆的答案当然是正确的。

可能的解决方法是将您的float值存储在2D纹理中,并将纹理坐标(以及值的数量)传递给着色器。但是,如果每个顶点有大量浮点值(因为每个片段都有纹理查找),这可能会变得非常慢。另一个问题是,如果你有很多顶点,这会导致非常大的纹理。 无论如何,在某些情况下,这种方法可能很有用。