当前位置:  开发笔记 > 编程语言 > 正文

为什么GLSL变化为进/出?

如何解决《为什么GLSL变化为进/出?》经验,为你挑选了1个好方法。

我知道如何使用输入/输出变量和变量变量.我完全清楚使用输入/输出变量更好,因为它不被弃用.

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

我不介意这样做,我只是对进/出变量是否有优势感到非常好奇,如果没有,为什么Khronos组会改变它.



1> Nicol Bolas..:

这是因为不再有两个着色器阶段而改变了.OpenGL 3.2引入了几何着色器,它是Vertex和Fragment着色器之间的可选阶段.它从VS获取输入并向FS提供输出.

那么......当你只有一个关键词时,你会怎么做?您无法将VS和FS中的接口变量复制并粘贴到同一GS中.您需要某种方法来指定从VS输入命名变量或输出到FS.不,你不能只说一个变量都是.

另外,要注意GS中输入变量的性质.他们排成一列.所以你不能只将VS varying定义复制到GS中; 无论如何你必须改变它们.

还应注意,除了几何着色器之外,它们还添加了输入/输出接口块,它将多个接口变量组合在一个标题下.有了这些,您不必更改几个in/ out对; 你只需改变一个.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有