gpt4 book ai didi

opengl - 为什么 GLSL 更改为 in/out?

转载 作者:行者123 更新时间:2023-12-04 03:14:59 25 4
gpt4 key购买 nike

我知道如何同时使用输入/输出变量和可变变量。我完全意识到使用 in/out 变量会更好,因为它没有被弃用。

这是一件非常小的事情,但我真的不明白他们为什么改变了这一点。以前我可以将代码放在一个着色器中,然后将其复制并粘贴到另一个着色器中,这样就可以了。现在我必须将它粘贴到另一个并将所有内容更改为“out”(而不是“in”)。

我不介意这样做,我只是很好奇输入/输出变量是否有优势,如果没有,为什么 Khronos 小组要改变它。

最佳答案

这已更改,因为不再有 two shader stages . OpenGL 3.2 引入了几何着色器,它是顶点着色器和片段着色器之间的可选阶段。它从 VS 获取输入并向 FS 提供输出。

那么......当您只有一个关键字时,您将如何做到这一点?您不能将 VS 和 FS 中的接口(interface)变量复制并粘贴到同一个 GS 中。您需要某种方式来指定命名变量是从 VS 输入还是输出到 FS。不,你不能说一个变量是两者兼而有之。

另外,请注意nature of the input variables在 GS。它们排列整齐。所以你不能只复制 VS varying GS中的定义;无论如何,您都必须更改它们。

还应该注意的是,除了几何着色器,他们还添加了 input/output interface blocks ,它将多个接口(interface)变量分组在一个标题下。有了这些,您不必更改几个 in/out对;你只要换一个。

关于opengl - 为什么 GLSL 更改为 in/out?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34627576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com